IRC logs for #openrisc Wednesday, 2013-07-10

--- Log opened Wed Jul 10 00:00:20 2013
stekernpoke53282: Or we have more bugs to catch ;)01:52
stekernone thing out of the way (for the moment at least):
stekernnow we can just hope they accept it01:54
stekernpoke53281: just remembered a thing I was supposed to ask you, IIRC you implemented some kind of hardware tlb refill in jor1k02:44
stekerndid you patch the kernel to use IMMUCR to get the page table base pointer, or how do you do that?02:45
poke53281No, in principle I wrote the Exception_Handler in Javascript. Have to know the pointer to the Linux pagetable.02:49
poke53281So I rewrote the the assembler to Javascript.02:51
poke53281But I am not sure if this really speeds up everything. It happens not so often as expected.02:51
stekernI'm asking, because on my list of things to do, I'm planning on adding hw pagetable walk in mor1kx02:53
stekernpatching the kernel to put the pagetable base pointer into I/DMMUCR is not a big problem, I'm just thinking if there are other (SW) obstacles02:55
poke53281CPU.prototype.AnalyzeImage = function() // get addresses for fast refill02:56
poke53281    this.boot_dtlb_misshandler_address = this.ram.int32mem[0x900 >> 2];02:56
poke53281    this.boot_itlb_misshandler_address = this.ram.int32mem[0xA00 >> 2];02:56
poke53281    this.current_pgd = ((this.ram.int32mem[0x2018>>2]&0xFFF)<<16) | (this.ram.int32mem[0x201C>>2] & 0xFFFF);02:56
poke53281Terrible solution as it depends on the specific kernel.02:56
poke53281As far as I know there are no problems.02:58
poke53281Have to restart my system. One moment02:58
stekernAh, I see. Otoh, those addresses rarely change, so you're pretty safe across kernel versions ;)03:08
stekernshould be pretty straight forward then to do the hw tlb refill in mor1kx I think03:15
poke53281Oh man, getting crazy here. I want to download a file from my web server. 512kb. Tried every browser I have (3). Everyone saves the wrong file size. wget does it right. Restarted everything. The same.03:19
stekerninteresting note about tlb misses not being significant, but perhaps you just haven't been memory hungry enough for it to notice?03:20
poke53281could be. I have a counter in
poke53281It is a slow version of the official version03:20
stekernah, nice, I've been thinking about adding something like that to the verilated model (or or1ksim)03:21
stekernnow I can just use yours ;)03:22
poke53281mount /dev/sda /mnt03:22
poke53281you can find more03:23
poke53281more software03:23
stekernI see you've also noticed the odd tick timer behaviour in or1ksim, where the timer is stopped when the spr is written with continous mode and the match reg matches03:23
stekernI'm thinking we should change or1ksim in that regard, none of the "hard" implementation I know of behaves like that, and it's against the spec03:24
stekernrunning gcc hello.c, there is approx. 1000 - 3000 itlb misses/s and 10 000 - 30 000 dtlb misses/s03:34
stekern(I'm assuming that the stats are updated 1 time/s?)03:35
poke53281yes, but they are not resetted03:35
stekernyeah, I get that, I just roughly looked at how much they increased at each update03:36
poke53281And in this emulator you have around works at around 6MIPS.03:36
poke53281In Hardware every miss takes I don't know around 100-200Instructions?03:37
poke53281that would mean that he spends 30% of his time in the miss handlers03:38
stekerndepending on how fast your machine is, I get around 4MIPS here03:38
poke53281If you try the official version you can get up to 20-30MIPS with Firefox.03:38
poke53281Ok, 100 instructions is maybe too much for the miss handler, but 50 should be Ok03:39
poke53281I use the same size as or1ksim for the tlb03:42
stekernyup, ~50 seems about right03:43
stekernso about 25% when taking my MIPS number into the equation03:47
poke53281Yes, so this is really a lot. Is there another architecture with a software miss handler?03:49
poke53281I found it fascinating.03:49
stekernMIPS I believe03:49
stekernbut it's this kind of numbers I need to motivate to do the hw implementation ;)03:50
poke53281So, ho much do you think you can reduce it by a hardware implementation?03:50
stekernwhen idling there's only about 30 itlb misses/s and 100 dtlb misses/s03:51
poke53281well we can try to increase the tlb first.03:53
stekernnot sure, I guess the mem access is the one that is going to take most time, but you kind of have that problem in the sw implementation too03:53
poke53281This is the main reason why the ips fluctuates by +-2MIPS03:54
stekerninteresting, I get those ata read errors on this laptop too, if you remember04:11
stekernon my home machine it doesn't happen04:11
poke53281What do you do. At the moment there is a bug hd0088 I try to fix. Some problem with apache04:13
poke53281startx does not work because of this04:13
poke53281And a problem are of course timeouts. And I am restarting the httpd server at the moment several times04:13
stekernrunning gcc hello.c04:14
stekern(restarting httpd) aha, yeah, that might explain it ;)04:14
poke53281What is written in the console?04:14
poke53281It shows you which part of the hd it is downloading at the moment04:15
stekernnow it worked on the laptop too04:15
poke53281can you give me the file size you downloaded from opencore4/hd/hd0088? Should be 512 kb04:16
poke53281compare between browser and wget.04:16
stekernit's 578 619 bytes04:18
stekernwget gives 524 288 bytes04:19
poke53281Yes, crazy. I think it has something to do with the gzip compression of this file. I am trying to disable it. But I don't find the correct config.04:20
stekernheh, yeah, that sounds crazy04:25
poke53281If you test this file it gives you an error. All other files are Ok04:26
stekernhexdumping the browser downloaded shows ".fcp" as the first thing in the file04:31
stekernthen there's some font related strings further down04:32
stekerngoogling .fcp you get hits about Final Cut Pro (some video formats)04:33
stekerncould it be that the file somehow get's confused with a video file, or is that just grasping at straws04:34
poke53281Yes, you are right. It thinks that this is a video Content-Type video/unknown.04:39
poke53281Yeah, this is the plug-in mod-mime magic which makes a file inspection04:45
poke53281Nope, X is still unstable06:01
stekernsyncing gcc against the 4.8.1 release was fairly painless09:53
stekernI've only built it so far though09:53
-!- Netsplit *.net <-> *.split quits: forkG_09:57
-!- Netsplit *.net <-> *.split quits: LoneTech, Guest4569613:29
-!- trevorman is now known as Guest9646813:31
-!- Netsplit *.net <-> *.split quits: poke53281, trevorman_, Amadiro13:57
-!- Netsplit *.net <-> *.split quits: poke53282, hle_14:17
-!- trevorma- is now known as trevorman14:18
-!- trevorman is now known as Guest4640715:04
-!- Netsplit *.net <-> *.split quits: Amadiro15:32
-!- Netsplit *.net <-> *.split quits: jonibo20:53
-!- Netsplit *.net <-> *.split quits: poke53282, jeremybennett21:17
--- Log closed Thu Jul 11 00:00:21 2013

Generated by 2.15.2 by Marius Gedminas - find it at!