| --- Log opened Tue Feb 03 00:00:24 2015 | ||
| mor1kx | [mor1kx] skristiansson closed pull request #23: Move localparam definition out from generate loops (master...master) https://github.com/openrisc/mor1kx/pull/23 | 01:35 |
|---|---|---|
| olofk | Can I do instruction and GPR tracing with or1ksim? | 08:17 |
| olofk | aha | 08:17 |
| olofk | -t | 08:17 |
| olofk | Stupid virtual memory. | 08:23 |
| olofk | Why not just equip all boards with enough RAM to let each process have 4GB of real memory. I bet that could save a few headaches | 08:25 |
| olofk | According to ps, 137x4GB memory would be enough for me atm | 08:25 |
| stekern | olofk: you can dynamically turn on and off tracing with l.nop 0x8 and l.nop 0x9 too | 08:33 |
| olofk | stekern: Ah. cool | 08:33 |
| olofk | I just written a fancy memset routine. It works stand-alone, but the kernel doesn't seem to like it quite as much | 08:34 |
| dalias | fancy memset? | 08:35 |
| olofk | http://pastie.org/9882984 | 08:36 |
| olofk | Yes, it's very fancy. You can set the memory to any colour that you like | 08:36 |
| olofk | And it writes 32-bit words instead of chars for buffers > 7 bytes | 08:37 |
| dalias | does it outperform the C one from musl? :) | 08:37 |
| olofk | dalias: Oh... haven't checked. Should do that | 08:37 |
| olofk | Does the one in musl work? | 08:37 |
| dalias | yes | 08:38 |
| olofk | Ok, that's one point where it's better than mine | 08:38 |
| dalias | :-p | 08:38 |
| dalias | well it's just C (including some optional "GNUC" with may_alias) | 08:39 |
| olofk | Got a link for the lazy? | 08:39 |
| dalias | the main trick is minimizing the number of branches at the expense of possibly doing some redundant writes | 08:39 |
| dalias | http://git.musl-libc.org/cgit/musl/tree/src/string/memset.c | 08:39 |
| olofk | Yeah, I got at least one unnecessay branch that I could remove at the expense of always executing one or two extra instructions | 08:40 |
| olofk | thanks | 08:40 |
| olofk | But I've filled all but one delay slots, so I'm regaining a bit lost performance there | 08:41 |
| olofk | stekern: Which is on, and which is off? Can't find the docs | 08:56 |
| stekern | i'm pretty sure 0x8 is on | 08:57 |
| olofk | Are there any special rules I need to follow when writing asm for the kernel? I'm a bit worried about my label names. Couldn't they conflict with something? | 09:00 |
| _franck__ | dalias: olofk : what I started to do some times ago is to optimize the assembly version of memcpy from musl | 09:02 |
| _franck__ | ....then I stopped and did something else | 09:03 |
| olofk | _franck__: You do memcpy and I do memset then :) | 09:03 |
| olofk | And we can both get our names in the kernel :) | 09:03 |
| olofk | ...and get laid | 09:03 |
| _franck__ | :) | 09:03 |
| olofk | Looks like it works now! | 09:31 |
| olofk | At least I can boot Linux.. | 09:31 |
| olofk | dalias: Any easy way to plug my assembler memset into musl and do performance tests? | 11:44 |
| wallento | is the internet dying? sourceware, closedcisc, lkml.. | 12:03 |
| olofk | We should put it all on piratebay. That's one site that just refuses to die | 12:04 |
| wallento | hehe | 12:05 |
| wallento | I will mirror them to github and cronjob this mirror, but I cannot complete the initial mirroring due to sourceware just dying on the connection | 12:06 |
| olofk | Aha! There's something called local labels in gnu assembler. Looks like I should use those instead | 12:06 |
| wallento | they say it's DoS and now I feel guilty ;) | 12:06 |
| olofk | wallento: Only newlib, or other stuff too? | 12:06 |
| olofk | haha | 12:06 |
| wallento | all | 12:06 |
| wallento | git and website | 12:07 |
| wallento | http://thread.gmane.org/gmane.comp.gcc.devel/138648 | 12:07 |
| olofk | That you're going to mirror? | 12:07 |
| wallento | i want to mirror newlib.git and binutils-gdb.git | 12:08 |
| wallento | so that at least the continuous integration does not fail permanently | 12:08 |
| olofk | unless you kill github too :) | 12:09 |
| wallento | I hope they have more than one webserver with short memory.. | 12:09 |
| olofk | wallento: How should we do with the UART patch? Can you handle that? | 12:27 |
| wallento | yes | 12:27 |
| olofk | Great! | 12:27 |
| wallento | I unfortunately did something bad :) | 12:27 |
| wallento | I rebased the newlib repo | 12:27 |
| olofk | oh god | 12:27 |
| wallento | to clarify the stuff | 12:28 |
| wallento | if you don't like to do the same | 12:28 |
| wallento | just send me the patch | 12:28 |
| wallento | And I will apply it | 12:28 |
| wallento | :) | 12:28 |
| wallento | I changed the branch naming in https://github.com/wallento/newlib | 12:28 |
| olofk | - while (!REG8(LSR) & LSR_TFE) {} | 12:28 |
| olofk | + while (!(REG8(LSR) & LSR_TFE)) {} | 12:28 |
| wallento | now it is identical to or1k-src and or1k-gcc | 12:28 |
| olofk | There you go :) | 12:29 |
| wallento | thanks :) | 12:29 |
| olofk | jeremybennett suggested also that we should enable long-long by default to be c99-compatible | 12:29 |
| olofk | But I saw that there's a separate c99-configure flag that could be enabled as well, so I'm not sure which would be the best way to go there | 12:30 |
| wallento | mmh, I will have a look at it. there also was a thread about C99 on the newlib list recently | 12:30 |
| olofk | I guess it's not big deal right now as it can be explicitly enabled (as stated in opencores bug 103), but I thought I should mention it before I forget it | 12:31 |
| wallento | olofk: I added this and some documentation: https://github.com/openrisc/newlib/commit/4ac2e9d97f181563404c8c7c3e841b9cc1c0f0e0 | 13:05 |
| olofk | wallento: Nice | 13:11 |
| olofk | It would be great to have this sent in for newlib-2.2.0-2, which should be out around feb 19 | 13:12 |
| wallento | yep, I just let the ci compile it | 13:22 |
| wallento | but code-wise this is the only change, so there should not be a change | 13:23 |
| olofk | wallento: http://www.juliusbaxter.net/openrisc-irc/%23openrisc.2015-01-20.log.html#t12:14 | 13:25 |
| wallento | HEHE | 13:26 |
| olofk | :) | 13:26 |
| wallento | maybe you can test it then ;) | 13:26 |
| wallento | builds are running | 13:26 |
| olofk | naaa... it will work :) | 13:26 |
| olofk | wallento: Have you tried writing to the UART? | 14:41 |
| olofk | No, reading from I mean | 14:42 |
| olofk | I only get -1 back from getchar | 14:43 |
| wallento | yes, thats a missing feature | 14:48 |
| wallento | problem is that I changed from reading directly to interrupts | 14:48 |
| olofk | ahh | 14:48 |
| wallento | I am still thinking of a way to do it properly | 14:49 |
| wallento | so that both are supported | 14:49 |
| wallento | because reading is blocking I suppose | 14:49 |
| wallento | and it primarily makes sense with threading then | 14:49 |
| wallento | but I haven't thaught it through | 14:50 |
| wallento | maybe we just support both | 14:50 |
| wallento | setting a callback and blocking read | 14:50 |
| olofk | How the hell does interrupts work? | 15:04 |
| olofk | I get an interrupt and it enters the function I set as the IRQ handler | 15:05 |
| olofk | For debugging purposes, I just print IRQ in the call back function | 15:06 |
| olofk | If I clear the interrupt source just prior to the printf, I don't see the printf | 15:06 |
| olofk | ...or do I...? | 15:08 |
| ysionneau | stekern hi! https://github.com/openrisc/llvm-or1k is this llvm 3.4 or 3.5? I think it's 3.4 but not sure | 15:08 |
| olofk | Fuck interrupts. I'm polling instead | 15:09 |
| wallento | olofk: you set the handler and it is entered when the line gets an interrupt | 15:28 |
| wallento | what you experience is confusing | 15:29 |
| wallento | so its kind of: REG32(MYDEVICE_RESET_IRQ); printf("IRQ\n"); ? | 15:29 |
| wallento | and the other way around works? | 15:30 |
| wallento | maybe it crashes? alignment? bus error? | 15:30 |
| olofk | wallento: Sorry. I was actually talking about something other than the UART problems, but reading it now I see that's not very obvious :) | 18:59 |
| olofk | It was an IRQ from my dma streamer, and just a good ol' printf I used for debugging | 18:59 |
| --- Log closed Wed Feb 04 00:00:01 2015 | ||
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!