kern/135421: FreeBSD Xen PVM DomU network failure - netfronc.c
driver crashes when downloading/uploading files
Mukosi Abraham Mukwevho
mukosi at gmail.com
Tue Jun 9 19:40:03 UTC 2009
>Number: 135421
>Category: kern
>Synopsis: FreeBSD Xen PVM DomU network failure - netfronc.c driver crashes when downloading/uploading files
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Jun 09 19:40:02 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: Mukosi Abraham Mukwevho
>Release: 8.0-CURRENT-200905 (May 5th)
>Organization:
University of South Africa
>Environment:
FreeBSD Environment:
# uname -a
FreeBSD 8.0-CURRENT-200905 FreeBSD 8.0-CURRENT-200905 #1: Mon Jun 8 21:11:26 SAST 2009 root@:/usr/obj/usr/src/sys/XEN i386
#
Dom0 is a Linux CentOS 5.3 x86_64 as follows:
[root at viNEX ~]# uname -a
Linux viNEX.net 2.6.18.8-xen #1 SMP Sat Jun 6 22:01:16 SAST 2009 x86_64 x86_64 x86_64 GNU/Linux
[root at viNEX ~]#
>Description:
I booted a Xen PVM DomU kernel using the latest FreeBSD-8.0-CURRENT cd, all seemed fine until I tried to configure networking on interface xn0 to connect direct with Dom0. The interface was up and I managed to connect using sftp to the Dom0. I tried to download a 4.9MB file to the dom0 and noticed the xn0 failing. It started with bandwidth of about 1.8MB/s and it fell down slowly until in reached about 6KB/s and then the interface crashed. The interface xn0 failed with the following error message:
#
# sftp root at 10.0.1.1
Connecting to 10.0.1.1...
root at 10.0.1.1's password:
sftp> put kernel
Uploading kernel to /root/kernel
kernel 65% 2880KB 6.5KB/s 03:49 ETAKernel page fault with the following non-sleepable locks held:
exclusive sleep mutex xennetif_rx (network receive lock) r = 0 (0xc18560b4) locked @ /usr/src/sys/dev/xen/netfront/netfront.c:1123
KDB: stack backtrace:
X_db_sym_numargs(c035d3eb,cbe5eaf0,c0111c65,c037f573,463,...) at X_db_sym_numargs+0x146
kdb_backtrace(c037f573,463,ffffffff,c050ce0c,cbe5eb28,...) at kdb_backtrace+0x29
witness_display_spinlock(c035f708,cbe5eb3c,4,1,0,...) at witness_display_spinlock+0x75
witness_warn(5,0,c0387853,c0880108,c,...) at witness_warn+0x1fd
trap(cbe5ebc4) at trap+0x10e
alltraps(c1856000,cbe5ecc8,c00c39a4,c03d0bc0,c1704ab8,...) at alltraps+0x1b
intr_event_execute_handlers(c17077ec,c1704a80,c035601d,4dd,c1704af0,...) at intr_event_execute_handlers+0x125
intr_event_add_handler(c1766460,cbe5ed38,c0355d8c,32d,c17077ec,...) at intr_event_add_handler+0x41f
fork_exit(c00afe30,c1766460,cbe5ed38) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xcbe5ed70, ebp = 0 ---
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0x0
fault code = supervisor write, page not present
instruction pointer = 0x21:0xc0300f27
stack pointer = 0x29:0xcbe5ec04
frame pointer = 0x29:0xcbe5eca0
code segment = base 0x0, limit 0xf9800, type 0x1b
= DPL 1, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 12 (irq134: xn)
[thread pid 12 tid 100023 ]
Stopped at xlvbd_add+0x3747: movl %edx,0(%esi)
db>
>How-To-Repeat:
(1) Boot a FreeBSD XEN DomU and logon to it and configure networking between DomU and Dom0
(2) Inside the DomU Locate a file which is reasonably bigger, it this case I used the "kernel" file which was about 4.7MB.
(3) From inside the DomU, connect to Dom0 using a file transferring tool such as 'sftp'.
(4) Upload the file using the put command.
(5) The speed shown by sftp fall down sharply from 1.8MB/s down to about 6KB/s and then the network interface crashes with the following error message:
kernel 65% 2880KB 6.5KB/s 03:49 ETAKernel page fault with the following non-sleepable locks held:
exclusive sleep mutex xennetif_rx (network receive lock) r = 0 (0xc18560b4) locked @ /usr/src/sys/dev/xen/netfront/netfront.c:1123
KDB: stack backtrace:
X_db_sym_numargs(c035d3eb,cbe5eaf0,c0111c65,c037f573,463,...) at X_db_sym_numargs+0x146
kdb_backtrace(c037f573,463,ffffffff,c050ce0c,cbe5eb28,...) at kdb_backtrace+0x29
witness_display_spinlock(c035f708,cbe5eb3c,4,1,0,...) at witness_display_spinlock+0x75
witness_warn(5,0,c0387853,c0880108,c,...) at witness_warn+0x1fd
trap(cbe5ebc4) at trap+0x10e
alltraps(c1856000,cbe5ecc8,c00c39a4,c03d0bc0,c1704ab8,...) at alltraps+0x1b
intr_event_execute_handlers(c17077ec,c1704a80,c035601d,4dd,c1704af0,...) at intr_event_execute_handlers+0x125
intr_event_add_handler(c1766460,cbe5ed38,c0355d8c,32d,c17077ec,...) at intr_event_add_handler+0x41f
fork_exit(c00afe30,c1766460,cbe5ed38) at fork_exit+0xb8
fork_trampoline() at fork_trampoline+0x8
--- trap 0, eip = 0, esp = 0xcbe5ed70, ebp = 0 ---
Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address = 0x0
fault code = supervisor write, page not present
instruction pointer = 0x21:0xc0300f27
stack pointer = 0x29:0xcbe5ec04
frame pointer = 0x29:0xcbe5eca0
code segment = base 0x0, limit 0xf9800, type 0x1b
= DPL 1, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = 12 (irq134: xn)
[thread pid 12 tid 100023 ]
Stopped at xlvbd_add+0x3747: movl %edx,0(%esi)
db>
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list