On Sat May 24 02:46:08 EDT 2014, vu3...@gmail.com 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

Reply via email to