Intel "em" driver sleeps with non-sleepable lock.

Zaphod Beeblebrox zbeeble at gmail.com
Thu May 5 18:39:21 UTC 2011


The motherboard in question is made by Intel and contains a Xeon 3440
(4 core x 2 HT per core).  16 Gig of RAM is installed and we are
installing the 64 bit FreeBSD 8.2 using the PC-BSD installer (to
install zfs root faster).  The motherboard has 4 "igb" ethernet and
one "em" ethernet.  The "em" ethernet is shared with an internal
"RMM3" remote management card and/or the onboard ILOM.  This error
happens when rebooting after installation and is repeatable with at
least FreeBSD 8.1 and FreeBSD 8.2.

The last boot message is "Starting devd" ... so I assume that the
active link on em0 might be making devd start dhclient.  After this
last boot message, the screen reads:

Sleeping thread (tid 100195, pid 619) owns a non-sleepable lock
panic: sleeping thread
cpuid = 2
KDB: stack backtrace:
#0 0xffffffff805f4e03 at kdb_backtrace+0x5e
#1 0xffffffff805c2d07 at panic+0x187
#2 0xffffffff80601a5d at propagate_priority+0x1cd
#3 0xffffffff8060278a at turnstile_wait+0x1aa
#4 0xffffffff805b34c0 at _mtx_lock_sleep+0xb0
#5 0xffffffff8032fd97 at em_init_locked+0xce7
#6 0xffffffff80331b8e at em_ioctl+0x5fe
#7 0xffffffff80671114 at ifioctl+0x9e4
#8 0xffffffff806043c2 at kern_ioctl+0x102
#9 0xffffffff806045fd at ioctl+0xfd
#10 0xffffffffff80600dd5 at syscallenter+0x1e5
#11 0xffffffffff808aca5b at syscall+0x4b
#12 0xffffffffff80895292 at Xfast_syscall+0xe2

Now. I assume that booting without link on em0 (inconvenient) or
booting without "em" in the kernel will fix things.  I'll be checking
this out shortly.

I can provide (for a limited time) full console access and/or I can
test code if someone sees a patch for this.


More information about the freebsd-stable mailing list