--- 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!