vimage kernel broken

Kris Kennaway kris at FreeBSD.org
Mon May 26 12:13:49 UTC 2008


Marko Zec wrote:
> On Saturday 24 May 2008 23:11:50 Kris Kennaway wrote:
>> Julian Elischer wrote:
>>> On May 24, 2008, at 8:30 AM, Kris Kennaway wrote:
>>>> I tried to boot a kernel taken from the vimage p4 branch, but it
>>>> panics when starting lockd during multiuser boot:
>>> this is believable.
>>> Particularly as I see you are using IPv6 and I don't have IPv6 test
>>> facilities.
>>>
>>> nlm? hmm what were you doing?
>> As mentioned, just booting the system with rpc.lockd enabled in
>> rc.conf. A kernel with IPv6 compiled in is all that's needed.
> 
> Hi,
> 
> I can't reproduce this with the latest p4 / vimage sources:
> 
> tca51% uname -a
> FreeBSD tca51.tel.fer.hr 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Mon May 26 
> 11:32:09 CEST 2008     
> marko at tca51.tel.fer.hr:/u/marko/p4/vimage/src/sys/i386/compile/VIMAGE  
> i386
> 
> tca51% ifconfig
> bge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 
> 1500
>         options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
>         ether 00:11:25:3b:89:76
>         inet6 fe80::211:25ff:fe3b:8976%bge0 prefixlen 64 scopeid 0x2
>         inet 192.168.200.51 netmask 0xffffff00 broadcast 192.168.200.255
>         inet6 a:2::51 prefixlen 64
>         media: Ethernet autoselect (100baseTX <full-duplex>)
>         status: active
> lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
>         inet6 ::1 prefixlen 128
>         inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
>         inet 127.0.0.1 netmask 0xff000000
> 
> tca51% cat /etc/rc.conf
> keyrate="fast"
> moused_enable="YES"
> ifconfig_bge0="inet 192.168.200.51/24"
> hostname="tca51.tel.fer.hr"
> sshd_enable="YES"
> sendmail_enable="NONE"
> syslogd_flags="-ss"
> 
> ipv6_enable="YES"
> ipv6_network_interfaces="auto"
> ipv6_defaultrouter="NO"
> ipv6_ifconfig_bge0="a:2::51 prefixlen 64"
> 
> rpcbind_enable="YES"
> nfs_client_enable="YES"
> nfs_server_enable="YES"
> rpc_statd_enable="YES"
> rpc_lockd_enable="YES"
> 
> tca51% cat /etc/exports
> /usr -ro
> 
> tca51% showmount
> Hosts on localhost:
> a:2::101
> 
> tca51% ps -ax|fgrep rpc
>   581  ??  Is     0:00.03 /usr/sbin/rpcbind
>   639  ??  Ss     0:01.57 /usr/sbin/rpc.statd
>   645  ??  Ss     0:00.01 rpc.lockd: server (rpc.lockd)
>   850  p0  R+     0:00.00 fgrep rpc
> 
> 
> What is it that I'm missing to trigger this panic?
> 
> BTW capturing the output of "show pcpu" and "show vnets" from the KDB 
> prompt would be useful.  In general, curvnet must point to a regular 
> vnet structure while executing any networking code, otherwise it must 
> be set to NULL.
> 
> Thanks,
> 
> Marko
> 
> 
>> Kris
>>
>>>> Kris
>>>>
>>>> ----
>>>> Starting lockd.
>>>>
>>>>
>>>> Fatal trap 12: page fault while in kernel mode
>>>> cpuid = 0; apic id = 00
>>>> fault virtual address   = 0x0
>>>> fault code              = supervisor read, page not present
>>>> instruction pointer     = 0x20:0xc08afb8e
>>>> stack pointer           = 0x28:0xc6f3f8a8
>>>> frame pointer           = 0x28:0xc6f3f8fc
>>>> code segment            = base 0x0, limit 0xfffff, type 0x1b
>>>>                        = DPL 0, pres 1, def32 1, gran 1
>>>> processor eflags        = interrupt enabled, resume, IOPL = 0
>>>> current process         = 764 (rpc.lockd)
>>>> [thread pid 764 tid 100047 ]
>>>> Stopped at      sa6_recoverscope+0x7e:  movl    0(%eax),%edi
>>>> db> wh
>>>> Tracing pid 764 tid 100047 td 0xc71cbcc0
>>>> sa6_recoverscope(c71e0c00,1c,2,0,c82c0c4c,...) at
>>>> sa6_recoverscope+0x7e in6_sockaddr(0,c6f3f930,1f8,0,0,...) at
>>>> in6_sockaddr+0x6d
>>>> in6_getsockaddr(c833c318,c6f3f98c,c833c318,c6f3f9e8,c6f3f9a0,...)
>>>> at in6_getsockaddr+0x89
>>>> in6_mapped_sockaddr(c833c318,c6f3f98c,c71cbd64,c0afde50,c6f3f9a0,.
>>>> ..) at in6_mapped_sockaddr+0x5c
>>>> __rpc_socket2sockinfo(c833c318,c6f3f9e8,c0c09db4,4,c0ad9548,...)
>>>> at __rpc_socket2sockinfo+0x28
>>>> clnt_dg_create(c833c318,c6f3faa4,186a0,4,0,...) at
>>>> clnt_dg_create+0x3f nlm_get_rpc(c6f3fc04,1c,2,0,c7080800,...) at
>>>> nlm_get_rpc+0xb8
>>>> nlm_syscall(c71cbcc0,c6f3fcfc,10,c71cbcc0,c0b93370,...) at
>>>> nlm_syscall+0x227
>>>> syscall(c6f3fd38) at syscall+0x2a3
>>>> Xint0x80_syscall() at Xint0x80_syscall+0x20
>>>> --- syscall (154, FreeBSD ELF32, nlm_syscall), eip = 0x280e315b,
>>>> esp = 0xbfbfedbc, ebp = 0xbfbfee88 ---
> 
> 
> 

Maybe I am using the wrong branch, can you confirm which is current?

Kris



More information about the freebsd-virtualization mailing list