Subject: Re: problems attempting remote NFS root
To: Christian Limpach <chris@pin.lu>
From: Neil Ludban <nludban@columbus.rr.com>
List: port-xen
Date: 04/11/2004 15:22:58
Christian Limpach wrote:
> Hi!
Hello,
Thanks for the quick reply.
>>It never returns from tsleep:
>>[1] nfs_boot: root=192.168.1.17:/export/xen31
>>[1] nfs_boot_setaddress: sleeping (150)
>
>
> Next thing to check is if timer interrupts happen, could you enable the code
> in arch/xen/xen/clock.c's xen_timer_handler which is disabled with #if 0.
> It should then print a message to the console every second. Additionally it
> would be good to check if events/interrupts are enable before going to
> sleep. Could you add the following:
> {
> extern unsigned long event_mask;
> extern unsigned long *HYPERVISOR_shared_info;
>
> printf("pending %08lx mask1 %08lx mask2 %08lx\n",
> HYPERVISOR_shared_info[0], HYPERVISOR_shared_info[1],
> event_mask);
> }
> /* give the link some time to get up */
> tsleep(nfs_boot_setaddress, PZERO, "nfsbtd", 3 * hz);
>
> It should then print the following:
> [7] nfs_boot: root=172.20.4.13:/netboot/qube
> [7] pending 00000000 mask1 80000012 mask2 00000012
> [7] ping!!! hz=50 regs 0xc03fcc7c level 12 ipending 00000000
> [7] ping!!! hz=50 regs 0xc03fcce0 level 12 ipending 00000000
> [7] ping!!! hz=50 regs 0xc03fcce0 level 12 ipending 00000000
> [7] nfs_boot: mountd `172.20.4.13:/netboot/qube', error=13
> [7] no file system for xennet0
>
> The 8 in mask1 is the master event enable bit, the 1 in mask1/2 is network
> interrupts and the 2 in mask1/2 is timer interrupts.
[1] xennet0 at mainbus0: Xen Virtual Network Driver
[1] xennet0: MAC address aa:00:00:c9:24:fd
[1] npx0 at mainbus0: using exception 16
[1] ping!!! hz=50 regs 0xc035ad0c level 12 ipending 00000000
[1] IPsec: Initialized Security Association Processing.
[1] boot device: xennet0
[1] root on xennet0
[1] mountroot: trying nfs...
[1] nfs_boot: trying static
[1] nfs_boot: client_addr=192.168.1.31
[1] nfs_boot: gateway=192.168.1.42
[1] nfs_boot: netmask=255.255.255.0
[1] nfs_boot: server=192.168.1.17
[1] nfs_boot: root=192.168.1.17:/export/xen31
[1] pending 00000000 mask1 80000012 mask2 00000012
[1] nfs_boot_setaddress: sleeping (150)
It hangs here, no ping!!! messages except the one that slipped in
before IPSec, and no ICMP pings (not responding to ARP requests).
I disabled tsleep() in nfs_boot_setaddress() just to see what
happens, and it's a bit different:
[2] xennet0 at mainbus0: Xen Virtual Network Driver
[2] xennet0: MAC address aa:00:00:c9:24:fd
[2] npx0 at mainbus0: using exception 16
[2] ping!!! hz=50 regs 0xc035ad0c level 12 ipending 00000000
[2] IPsec: Initialized Security Association Processing.
[2] boot device: xennet0
[2] root on xennet0
[2] mountroot: trying nfs...
[2] nfs_boot: trying static
[2] nfs_boot: client_addr=192.168.1.31
[2] nfs_boot: gateway=192.168.1.42
[2] nfs_boot: netmask=255.255.255.0
[2] nfs_boot: server=192.168.1.17
[2] nfs_boot: root=192.168.1.17:/export/xen31
[2] pending 00000000 mask1 80000012 mask2 00000012
[2] nfs_boot_setaddress: sleeping (150)
[2] nfs_boot_setaddress: awake
[2] nfs_boot: mountd `192.168.1.17:/export/xen31', error=13
[2] no file system for xennet0
[2] cannot mount root, error = 79
[2] root device (default xennet0):
[2] ping!!! hz=50 regs 0xc035ac6c level 12 ipending 00000000
[2] ping!!! hz=50 regs 0xc035ac6c level 12 ipending 00000000
[2] ping!!! hz=50 regs 0xc035ac6c level 12 ipending 00000000
These messages continue once a second until the VM is killed,
and the network is again unresponsive.
-Neil