| --- Log opened Sat Jan 07 00:00:02 2017 | ||
| shorne_ | wbx: olofk: are the de0 nano bitstreams timelocked? I seem to have to rebuild every few months or the the stream doesnt load correct? | 01:11 |
|---|---|---|
| shorne_ | Because I have a free internet license? | 01:11 |
| shorne_ | wallento: sorry I didnt look into the using multicore by default question, I dont really know what it will impact or why we need one or not? Which hardware/socs/fusesoc's support multicore openrisc right now? I have only ever used single core. | 01:13 |
| -!- shorne_ is now known as shorne | 01:15 | |
| wallento | shorne, mor1kx supports multicore by default, while not many may use it | 01:43 |
| wallento | the impact is limited but there, in the exception handling and for reentranc | 01:43 |
| wallento | y | 01:43 |
| wallento | its an extra lookup | 01:43 |
| wallento | but as olofk said reentrancy in itself already has an impact | 01:44 |
| wallento | so the extra two instructions are okay IMHO | 01:44 |
| wallento | and long term we may deprecate the single core version then | 01:44 |
| shorne | the lwa/swa instructions? | 01:51 |
| shorne | wallento: it seems ok to me, is there a way to check if my build uses multicore? I use the instructions on the newlib page. | 01:53 |
| shorne | and muls/cross | 01:53 |
| shorne | both gccs generate the lwa/swa code | 01:54 |
| shorne | Anyway, I am working on testing the futex's but getting SEGV. in the test | 02:01 |
| shorne | https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/futex/functional/futex_requeue_pi.c | 02:01 |
| shorne | I traced it via printfs to line 347 | 02:01 |
| shorne | which doesnt make sense pthread_join(waker, NULL); | 02:01 |
| shorne | Issue could be, linux, musl or something | 02:02 |
| shorne | d | 02:03 |
| shorne | will post more details if anyone is interested | 02:03 |
| shorne | I cant use gdb really because no gdb can debug openrisc linux processes yet | 02:03 |
| wallento | shorne: the multicore instructions are separate | 02:41 |
| wallento | the first frew instructions differ in crt0.S | 02:41 |
| wallento | multicore does writes to 0x4 | 02:41 |
| shorne | or right, the shadow regs | 03:11 |
| shorne | non uni processor writes to 0x4 I believe | 03:11 |
| shorne | I mean uni processor writes to 0x4 address, instead of shadow | 03:12 |
| shorne | meaning re-entry not possible | 03:12 |
| shorne | then it seems multicore has some exception stack at 0x4 | 03:13 |
| shorne | no... thats wrong, it stored nesting level at _or1k_exception_level | 03:14 |
| olofk | shorne: Weird. I think the bitstreams shouldn't have any timelocking built in | 18:14 |
| shorne | finally, making some progress on this pthread/futex testing SEGV | 22:26 |
| shorne | I dont have a debugger, so I modified the linux kernel to return the offending PC when it hits SEGV | 22:27 |
| shorne | and got a line in pthread_join | 22:27 |
| shorne | which is where my debug printf pointed me, so im on the right track, and I ahve the exact offending instruction in MUSL | 22:28 |
| shorne | on my machine "8d708: d4 12 18 00 l.sw 0(r18),r3" | 22:28 |
| shorne | what is r18, and why is is 0... | 22:29 |
| shorne | it looks like the 2nd arg to pthread_join which is NULL | 22:31 |
| shorne | http://git.musl-libc.org/cgit/musl/tree/src/thread/pthread_join.c if (res)... | 22:35 |
| shorne | it should check for null, the **res delcairation looks strange | 22:35 |
| shorne | Ill try to update musl, I see there are lots of patches related to futex in MUSL since the version I have | 22:43 |
| --- Log closed Sun Jan 08 00:00:04 2017 | ||
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!