IRC logs for #openrisc Tuesday, 2015-02-03

--- 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/2301:35
olofkCan I do instruction and GPR tracing with or1ksim?08:17
olofkaha08:17
olofk-t08:17
olofkStupid virtual memory.08:23
olofkWhy not just equip all boards with enough RAM to let each process have 4GB of real memory. I bet that could save a few headaches08:25
olofkAccording to ps, 137x4GB memory would be enough for me atm08:25
stekernolofk: you can dynamically turn on and off tracing with l.nop 0x8 and l.nop 0x9 too08:33
olofkstekern: Ah. cool08:33
olofkI just written a fancy memset routine. It works stand-alone, but the kernel doesn't seem to like it quite as much08:34
daliasfancy memset?08:35
olofkhttp://pastie.org/988298408:36
olofkYes, it's very fancy. You can set the memory to any colour that you like08:36
olofkAnd it writes 32-bit words instead of chars for buffers > 7 bytes08:37
daliasdoes it outperform the C one from musl? :)08:37
olofkdalias: Oh... haven't checked. Should do that08:37
olofkDoes the one in musl work?08:37
daliasyes08:38
olofkOk, that's one point where it's better than mine08:38
dalias:-p08:38
daliaswell it's just C (including some optional "GNUC" with may_alias)08:39
olofkGot a link for the lazy?08:39
daliasthe main trick is minimizing the number of branches at the expense of possibly doing some redundant writes08:39
daliashttp://git.musl-libc.org/cgit/musl/tree/src/string/memset.c08:39
olofkYeah, I got at least one unnecessay branch that I could remove at the expense of always executing one or two extra instructions08:40
olofkthanks08:40
olofkBut I've filled all but one delay slots, so I'm regaining a bit lost performance there08:41
olofkstekern: Which is on, and which is off? Can't find the docs08:56
stekerni'm pretty sure 0x8 is on08:57
olofkAre 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 musl09:02
_franck__....then I stopped and did something else09:03
olofk_franck__: You do memcpy and I do memset then :)09:03
olofkAnd we can both get our names in the kernel :)09:03
olofk...and get laid09:03
_franck__:)09:03
olofkLooks like it works now!09:31
olofkAt least I can boot Linux..09:31
olofkdalias: Any easy way to plug my assembler memset into musl and do performance tests?11:44
wallentois the internet dying? sourceware, closedcisc, lkml..12:03
olofkWe should put it all on piratebay. That's one site that just refuses to die12:04
wallentohehe12:05
wallentoI will mirror them to github and cronjob this mirror, but I cannot complete the initial mirroring due to sourceware just dying on the connection12:06
olofkAha! There's something called local labels in gnu assembler. Looks like I should use those instead12:06
wallentothey say it's DoS and now I feel guilty ;)12:06
olofkwallento: Only newlib, or other stuff too?12:06
olofkhaha12:06
wallentoall12:06
wallentogit and website12:07
wallentohttp://thread.gmane.org/gmane.comp.gcc.devel/13864812:07
olofkThat you're going to mirror?12:07
wallentoi want to mirror newlib.git and binutils-gdb.git12:08
wallentoso that at least the continuous integration does not fail permanently12:08
olofkunless you kill github too :)12:09
wallentoI hope they have more than one webserver with short memory..12:09
olofkwallento: How should we do with the UART patch? Can you handle that?12:27
wallentoyes12:27
olofkGreat!12:27
wallentoI unfortunately did something bad :)12:27
wallentoI rebased the newlib repo12:27
olofkoh god12:27
wallentoto clarify the stuff12:28
wallentoif you don't like to do the same12:28
wallentojust send me the patch12:28
wallentoAnd I will apply it12:28
wallento:)12:28
wallentoI changed the branch naming in https://github.com/wallento/newlib12:28
olofk-       while (!REG8(LSR) & LSR_TFE) {}12:28
olofk+  while (!(REG8(LSR) & LSR_TFE)) {}12:28
wallentonow it is identical to or1k-src and or1k-gcc12:28
olofkThere you go :)12:29
wallentothanks :)12:29
olofkjeremybennett suggested also that we should enable long-long by default to be c99-compatible12:29
olofkBut 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 there12:30
wallentommh, I will have a look at it. there also was a thread about C99 on the newlib list recently12:30
olofkI 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 it12:31
wallentoolofk: I added this and some documentation: https://github.com/openrisc/newlib/commit/4ac2e9d97f181563404c8c7c3e841b9cc1c0f0e013:05
olofkwallento: Nice13:11
olofkIt would be great to have this sent in for newlib-2.2.0-2, which should be out around feb 1913:12
wallentoyep, I just let the ci compile it13:22
wallentobut code-wise this is the only change, so there should not be a change13:23
olofkwallento: http://www.juliusbaxter.net/openrisc-irc/%23openrisc.2015-01-20.log.html#t12:1413:25
wallentoHEHE13:26
olofk:)13:26
wallentomaybe you can test it then ;)13:26
wallentobuilds are running13:26
olofknaaa... it will work :)13:26
olofkwallento: Have you tried writing to the UART?14:41
olofkNo, reading from I mean14:42
olofkI only get -1 back from getchar14:43
wallentoyes, thats a missing feature14:48
wallentoproblem is that I changed from reading directly to interrupts14:48
olofkahh14:48
wallentoI am still thinking of a way to do it properly14:49
wallentoso that both are supported14:49
wallentobecause reading is blocking I suppose14:49
wallentoand it primarily makes sense with threading then14:49
wallentobut I haven't thaught it through14:50
wallentomaybe we just support both14:50
wallentosetting a callback and blocking read14:50
olofkHow the hell does interrupts work?15:04
olofkI get an interrupt and it enters the function I set as the IRQ handler15:05
olofkFor debugging purposes, I just print IRQ in the call back function15:06
olofkIf I clear the interrupt source just prior to the printf, I don't see the printf15:06
olofk...or do I...?15:08
ysionneaustekern hi! https://github.com/openrisc/llvm-or1k is this llvm 3.4 or 3.5? I think it's 3.4 but not sure15:08
olofkFuck interrupts. I'm polling instead15:09
wallentoolofk: you set the handler and it is entered when the line gets an interrupt15:28
wallentowhat you experience is confusing15:29
wallentoso its kind of: REG32(MYDEVICE_RESET_IRQ); printf("IRQ\n"); ?15:29
wallentoand the other way around works?15:30
wallentomaybe it crashes? alignment? bus error?15:30
olofkwallento: 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
olofkIt was an IRQ from my dma streamer, and just a good ol' printf I used for debugging18: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!