On Sat May 24 02:46:08 EDT 2014, [email protected] wrote:
> I downloaded the usbinstamd64 image from the 9atom webpage and booted
> it up. First, I tried amd64 (selection 0), in a second or so, some
> text went past the screen quickly and the machine rebooted. I then
> tried selection 1 (386pae), that booted up but quickly halted with
> this:
>
> Plan 9
> E820: ....
> ...
> apic: 6 machs started; flat mode vectors
> winbont ffff.ff hw fff8
> no capabilities
> panic: kernel fault: no user process pc=f0162415 addr=0x000000a8
> panic: kernel fault: no user process pc=f0162415 addr=0x000000a8
> dumpstack disabled
> cpu0: exiting
> cpu0: spurious interrupt 39, last 0
>
> and it hangs there.
>
> Is there any options I can try to move past this step?
> --
> Ramakrishnan
>
well, first sorry. this is not a usb issue. since you're using
the 9paed kernel, this is the crash site:
acid; src(0xf0162415)
/sys/src/9/pcpae/ether8169.c:385
380 static int
381 rtl8169miimiw(Mii *mii, int pa, int ra, int data)
382 {
383 if(pa != 1)
384 return -1;
>385 return ·rtl8169miimiw(mii->ctlr, pa, ra, data);
386 }
387
388 static Mii*
389 rtl8169mii(Ctlr* ctlr)
390 {
and after a little inspection, i see the issue. and i've applied a patch.
does the amd64 kernel behave differently?
one thing i am confused about, you have
> panic: kernel fault: no user process pc=f0162415 addr=0x000000a8
> panic: kernel fault: no user process pc=f0162415 addr=0x000000a8
i assume this was typed by hand? i would expect it to read:
> panic: kernel fault: no user process pc=0xf0162415 addr=0x000000a8
> panic: kernel fault: no user process pc=0xf0162415 addr=0x000000a8
there is a new TEST image @ http://ftp.9atom.org/other/+usbinstamd64.bz2
i have not had a chance to try it myself, but the crash seems obvious enough.
one warning: yesterday i applied some changes to the amd64 scheduler,
to generate the correct load average, and to calm down the absolute
mach affinity. this would cause dramatic unfairness whever nrdy > nmach.
this is because on some cpu, two processes would get assigned. they would
share the cpu fairly, but on nmach-1 maches, the busy process would get a whole
cpu. the solution was to watch how long a process has been ready and use that
as a hint that it should be run, even if there is a proc with greater affinity.
(thanks to jyu and gsoc!) but removing the obvious bugs has
put the scheduler a bit out of tune, and things like ping may see a 20µs
"delay" in some cases. i'm working on it.
the good news is that we now see correct load averages, fairness, and kernel
compile times have dropped 40% from before.
- erik