--- Log opened Sat Aug 16 00:00:09 2014 | ||
Openthom | Hello ! I would like some advise on how I can install openbsd on a openrisc core | 01:57 |
---|---|---|
Openthom | I know theres a ubuntu image and I think there is a uboot image, but how to go about openbsd ? | 01:58 |
sb0 | stekern, interesting... I wonder if that's a new vivado "feature" | 02:09 |
sb0 | ise isn't that bad afair | 02:09 |
Openthom | Was asking about openbsd on openrisc, anyone ? | 02:34 |
-!- Netsplit *.net <-> *.split quits: simoncook, blueCmd, kiwichris, stekern, arokux, mboehnert, enghong | 02:44 | |
-!- Netsplit over, joins: kiwichris, enghong, stekern, blueCmd | 03:13 | |
-!- Netsplit over, joins: simoncook, arokux, mboehnert | 03:13 | |
poke53281 | stekern: I need a few minutes of your time. I would like, that you try the following. compile busybox with musl and try to run "ifup -a". I have here something like a Heisenbug. | 04:11 |
stekern | poke53281: I get this: http://pastie.org/9477322 | 05:49 |
stekern | sb0: I've had pretty inconsistent results from ISE too, but seems like vivado is even worse. | 05:59 |
stekern | I can pass the 200MHz constraint with mor1kx if I set OPTION_STORE_BUFFER_DEPTH_WIDTH=1 | 06:00 |
stekern | which is as close to disabling the store buffer as possible | 06:00 |
stekern | I'll take a look at making it possible to completely bypass it. if disabling means you can increase fmax by ~10% without it the performance increase by enabling it is evened out by the lower clk-freq | 06:02 |
poke53281 | Ok, this is expected behavior. | 06:04 |
poke53281 | So please, can you send me the static compiled busybox binary? | 06:05 |
poke53281 | stekern: Did you test with or1ksim? | 06:06 |
stekern | poke53281: no, with real hw | 06:08 |
stekern | http://oompa.chokladfabriken.org/openrisc/busybox | 06:09 |
poke53281 | perfect | 06:12 |
poke53281 | thanks | 06:12 |
poke53281 | same problem with your version here. Kernel and Emulator left. | 06:29 |
poke53281 | It's exactly in this function: http://git.busybox.net/busybox/tree/networking/ifupdown.c#n1017 | 06:30 |
poke53281 | vfork, execle, waitpid. A lot potential problems :) | 06:31 |
stekern | what happens with your version? | 06:39 |
stekern | speaking of heisenbugs, I thought I had came up with a clever way to catch the spinlock bug. I added a per-cpu counter to the spinlock struct and increment that individually for each cpu. The idea was to see if any cpu try to lock a lock that it already locked itself. | 06:40 |
poke53281 | 1. The function never returns. The program is stuck and I have kill it CTRL+C. (This happens before anyting is done with the ethernet device in the function) | 06:41 |
poke53281 | 2. The problem occurs also when I remove the execle function. | 06:41 |
poke53281 | 4. It works everytime when I add a printf after the safe_waitpid function. | 06:41 |
poke53281 | 5. Any attempt to reproduce it with a smaller, separated code failed. | 06:41 |
poke53281 | 6. Optimization independent | 06:41 |
poke53281 | 7. This problem (stuck + CTRL+c) happens also with gcc, but not in qemu-user. | 06:41 |
stekern | but *that* of course change the behaviour of the bug completely, now the kernel just ends up in idle() even though it should have things to do... | 06:42 |
stekern | poke53281: is that with jor1k? | 06:42 |
poke53281 | yes | 06:43 |
stekern | blueCmd was having similar problems in qemu iirc... | 06:43 |
poke53281 | interesting with the spinlock. | 06:43 |
poke53281 | in principle valgrind is doing something similar. | 06:44 |
poke53281 | Therefore I asked blueCmd for a kernel image which I can use with qemu | 06:44 |
stekern | yeah | 06:44 |
stekern | have you tried or1ksim? | 06:44 |
poke53281 | no, not yet | 06:45 |
poke53281 | But I will compile the kernel for the old jor1k version, where it worked. | 06:45 |
poke53281 | And then I will try or1ksim or qemu. | 06:46 |
stekern | what does strace say? | 06:46 |
poke53281 | But I spend already several hours to figure out, that the ethernet is not reponsible for that. | 06:46 |
poke53281 | I compiled strace today, but it gives me the same problem. No output, I have to kill with CTRL+c | 06:47 |
stekern | haha... ok | 06:47 |
stekern | that sounds odd | 06:47 |
poke53281 | strace, ifup, gcc. All have the same problem. | 06:47 |
stekern | strace works here too | 06:47 |
stekern | and I *know* that works in or1ksim too | 06:47 |
poke53281 | And I guess, every function uses fork | 06:48 |
poke53281 | every program I mean | 06:49 |
poke53281 | but fork works in my test programs | 06:49 |
poke53281 | do you use https://github.com/bluecmd/or1k-linux? | 06:50 |
stekern | no | 06:50 |
stekern | http://git.openrisc.net/cgit.cgi/stefan/linux/log/?h=smp | 06:50 |
stekern | but they are almost the same | 06:51 |
poke53281 | this.SR_F = (virtualoffset == this.EA)?true:false; | 06:57 |
poke53281 | This is my key line for the swa function | 06:57 |
poke53281 | this.EA = virtualoffset; | 06:58 |
poke53281 | and this for l.lwa | 06:58 |
poke53281 | There is no other change to the normal 32 Bit read/write function. | 06:59 |
poke53281 | Is this everything I need. | 06:59 |
poke53281 | All instructions of my emulated cpu are executed atomic. | 06:59 |
stekern | it should be physical addresses | 07:02 |
poke53281 | ahh, Ok | 07:03 |
stekern | and you need a flag to indicate when the link is broken | 07:03 |
stekern | the flag should be cleared when an exception happens | 07:03 |
stekern | do you have the actual code somewhere? | 07:04 |
poke53281 | https://github.com/s-macke/jor1k/blob/transferto9p/js/worker/cpu/safecpu.js | 07:05 |
poke53281 | search for lwa and swa. I have omitted the "l." :) | 07:05 |
stekern | yeah, I found it | 07:06 |
stekern | you should fail the store if the condition isn't met too | 07:07 |
poke53281 | I use r[31] and r[32] to be sure, that JAvascript uses 32 Bit integer arithmetic. Sometimes it is strange, I know. | 07:07 |
poke53281 | I mean r[32] and r[33] | 07:08 |
stekern | http://pastie.org/9477707 | 07:10 |
stekern | something like that | 07:10 |
poke53281 | same problem with physical addressed | 07:11 |
poke53281 | addresses | 07:11 |
poke53281 | think I implemented it. Problem still there. | 07:22 |
poke53281 | Ok, have to go to bed. Tomorrow is hiking day. | 07:22 |
poke53281 | I will find the error. Sooner or later | 07:25 |
stekern | yeah, same with this darn spinlock bug :/ | 07:25 |
hesham | Hi, how can I use l.nop 8 and l.nop 9, I can not figure out how/when they are used. Nothing in the manual relates to these instructions too. | 10:20 |
stekern | hesham: they only have special meaning in or1ksim | 10:25 |
hesham | stekern: Yes I am simulating programs using ork1sim, there is nothing about them at or1ksim manual too | 10:27 |
hesham | I used them and found some results. Thanks | 10:29 |
hesham | S 000262f8: 15000008 l.nop 0x8, How can I interpret this line ? | 10:30 |
hesham | nm I figured it out. | 10:35 |
blueCmd | poke53281: yes, that's what I'm using | 14:48 |
-!- Netsplit over, joins: simoncook, arokux, mboehnert | 19:50 | |
-!- Netsplit *.net <-> *.split quits: trem, kiwichris, blueCmd, stekern, mboehner1, enghong | 19:50 | |
-!- FreezingDroid is now known as FreezingCold | 22:07 | |
--- Log closed Sun Aug 17 00:00:10 2014 |
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!