PANIC: freebsd-10-stable - acquiring blockable sleep lock with spinlock or critical section held (sleep mutex) Giant @ /usr/src/sys/dev/usb/input/ukbd.c:1929
Oliver Pinter
oliver.pntr at gmail.com
Sun Mar 9 23:45:44 UTC 2014
Hi All!
I have this kernel panic:
Unread portion of the kernel message buffer:
<118>[1212013] Mar 9 21:44:10 pandora-d syslogd: exiting on signal 15
[1212048] Waiting (max 60 seconds) for system process `vnlru' to stop...done
[1212048] panic: acquiring blockable sleep lock with spinlock or
critical section held (sleep mutex) Giant @
/usr/src/sys/dev/usb/input/ukbd.c:1929
[1212048] cpuid = 0
[1212048] KDB: stack backtrace:
[1212048] db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame
0xfffffe0237bcb470
[1212048] kdb_backtrace() at kdb_backtrace+0x39/frame 0xfffffe0237bcb520
[1212048] vpanic() at vpanic+0x127/frame 0xfffffe0237bcb560
[1212048] kassert_panic() at kassert_panic+0x136/frame 0xfffffe0237bcb5d0
[1212048] witness_checkorder() at witness_checkorder+0xfe/frame
0xfffffe0237bcb660
[1212048] __mtx_lock_flags() at __mtx_lock_flags+0xa9/frame 0xfffffe0237bcb6b0
[1212048] ukbd_ioctl() at ukbd_ioctl+0x7a/frame 0xfffffe0237bcb6f0
[1212048] kbdmux_ioctl() at kbdmux_ioctl+0x76c/frame 0xfffffe0237bcb740
[1212048] sc_cnputc() at sc_cnputc+0x90/frame 0xfffffe0237bcb770
[1212048] cnputc() at cnputc+0x7f/frame 0xfffffe0237bcb7a0
[1212048] cnputs() at cnputs+0x58/frame 0xfffffe0237bcb7c0
[1212048] vprintf() at vprintf+0x9a/frame 0xfffffe0237bcb890
[1212048] printf() at printf+0x43/frame 0xfffffe0237bcb8f0
[1212048] kproc_shutdown() at kproc_shutdown+0x3a/frame 0xfffffe0237bcb910
[1212048] kern_reboot() at kern_reboot+0x11e/frame 0xfffffe0237bcb980
[1212048] sys_reboot() at sys_reboot+0x58/frame 0xfffffe0237bcb9a0
[1212048] amd64_syscall() at amd64_syscall+0x239/frame 0xfffffe0237bcbab0
[1212048] Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfffffe0237bcbab0
[1212048] --- syscall (55, FreeBSD ELF64, sys_reboot), rip =
0x8014f470c, rsp = 0x7fffffffbe88, rbp = 0x7fffffffbff0 ---
[1212048] KDB: enter: panic
[1212048] Uptime: 14d0h40m48s
[1212048] Dumping 941 out of 8125
MB:..2%..11%..21%..31%..41%..51%..62%..72%..82%..91%
#0 doadump (textdump=1) at pcpu.h:219
219 pcpu.h: No such file or directory.
in pcpu.h
(kgdb) #0 doadump (textdump=1) at pcpu.h:219
#1 0xffffffff804b71e7 in kern_reboot (howto=260)
at /usr/src/sys/kern/kern_shutdown.c:452
#2 0xffffffff804b76f6 in vpanic (fmt=<value optimized out>,
ap=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:759
#3 0xffffffff804b7586 in kassert_panic (fmt=<value optimized out>)
at /usr/src/sys/kern/kern_shutdown.c:647
#4 0xffffffff80507d4e in witness_checkorder (lock=0xffffffff80d040e0,
flags=9, file=0xffffffff807b074a "/usr/src/sys/dev/usb/input/ukbd.c",
line=1929, interlock=0x0) at /usr/src/sys/kern/subr_witness.c:1073
#5 0xffffffff804a3279 in __mtx_lock_flags (c=0xffffffff80d040f8, opts=0,
file=0xffffffff807b074a "/usr/src/sys/dev/usb/input/ukbd.c", line=1929)
at /usr/src/sys/kern/kern_mutex.c:221
#6 0xffffffff8040ed7a in ukbd_ioctl (kbd=0xfffffe00010e6000, cmd=537152276,
arg=0xfffffe0237bcb75c "\002") at /usr/src/sys/dev/usb/input/ukbd.c:1929
#7 0xffffffff803452cc in kbdmux_ioctl (kbd=<value optimized out>,
arg=<value optimized out>) at /usr/src/sys/dev/kbdmux/kbdmux.c:1149
#8 0xffffffff803d1250 in sc_cnputc (cd=0x0, c=87)
at /usr/src/sys/dev/syscons/syscons.c:3715
#9 0xffffffff8046e41f in cnputc () at /usr/src/sys/kern/kern_cons.c:476
#10 0xffffffff8046e6b8 in cnputs (p=<value optimized out>)
at /usr/src/sys/kern/kern_cons.c:505
#11 0xffffffff804f3d6a in vprintf (fmt=<value optimized out>,
ap=<value optimized out>) at /usr/src/sys/kern/subr_prf.c:402
#12 0xffffffff804f3cc3 in printf (fmt=0x0) at /usr/src/sys/kern/subr_prf.c:368
#13 0xffffffff804b778a in kproc_shutdown (arg=0xfffff800024504b8,
howto=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:807
#14 0xffffffff804b6b1e in kern_reboot (howto=0)
at /usr/src/sys/kern/kern_shutdown.c:324
#15 0xffffffff804b69f8 in sys_reboot (td=<value optimized out>,
uap=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:196
#16 0xffffffff80703cb9 in amd64_syscall (td=0xfffff80178ebc920, traced=0)
at subr_syscall.c:134
#17 0xffffffff806e89ab in Xfast_syscall ()
at /usr/src/sys/amd64/amd64/exception.S:391
#18 0x00000008014f470c in ?? ()
Previous frame inner to this frame (corrupt stack?)
Current language: auto; currently minimal
(kgdb)
the relevant source code is this:
(kgdb) f 6
#6 0xffffffff8040ed7a in ukbd_ioctl (kbd=0xfffffe00010e6000, cmd=537152276,
arg=0xfffffe0237bcb75c "\002") at /usr/src/sys/dev/usb/input/ukbd.c:1929
1929 UKBD_LOCK();
Current language: auto; currently minimal
(kgdb) l
1924 case KDSETLED:
1925 if (!mtx_owned(&Giant) && !SCHEDULER_STOPPED())
1926 return (EDEADLK); /* best I
could come up with */
1927 /* FALLTHROUGH */
1928 default:
1929 UKBD_LOCK();
1930 result = ukbd_ioctl_locked(kbd, cmd, arg);
1931 UKBD_UNLOCK();
1932 return (result);
1933 }
(kgdb) up
#7 0xffffffff803452cc in kbdmux_ioctl (kbd=<value optimized out>,
arg=<value optimized out>) at /usr/src/sys/dev/kbdmux/kbdmux.c:1149
1149 (void)kbdd_ioctl(k->kbd, KDSKBSTATE, arg);
(kgdb) l
1144 state->ks_state &= ~LOCK_MASK;
1145 state->ks_state |= *(int *)arg;
1146
1147 /* KDSKBSTATE on all slave keyboards */
1148 SLIST_FOREACH(k, &state->ks_kbds, next)
1149 (void)kbdd_ioctl(k->kbd, KDSKBSTATE, arg);
1150
1151 KBDMUX_UNLOCK(state);
1152
1153 return (kbdmux_ioctl(kbd, KDSETLED, arg));
This code introduced by this commit:
commit 7bd2d75f37bf175e19c8a11cd17e960b5186f779
Author: avg <avg at FreeBSD.org>
Date: Wed Dec 21 11:49:33 2011 +0000
ukbd: adjust for SCHEDULER_STOPPED() and overhaul locking code
The kernel compiled with this kernel config:
cpu HAMMER
ident OP-PERPETUA
options HZ=100
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
makeoptions MODULES_OVERRIDE="geom/geom_sched linux"
options SCHED_ULE # ULE scheduler
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options TCP_OFFLOAD # TCP offload
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_EXTATTR
options QUOTA # Enable disk quotas for UFS
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_RAID # Soft RAID functionality.
options GEOM_LABEL # Provides labelization
options COMPAT_FREEBSD32 # Compatible with i386 binaries
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options COMPAT_FREEBSD7 # Compatible with FreeBSD7
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time
extensions
options PRINTF_BUFR_SIZE=128 # Prevent printf output being
interspersed.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
options AUDIT # Security event auditing
options CAPABILITY_MODE # Capsicum capability mode
options CAPABILITIES # Capsicum capabilities
options PROCDESC # Support for process descriptors
options MAC # TrustedBSD MAC Framework
options INCLUDE_CONFIG_FILE # Include this file in kernel
options KDB # Enable kernel debugger support.
options KDB_TRACE # Print a stack trace for a panic.
options DDB # Support DDB.
options SMP # Symmetric MultiProcessor Kernel
device cpufreq
device acpi
device pci
device ahci # AHCI-compatible SATA controllers
device scbus # SCSI bus (required for ATA/SCSI)
device da # Direct Access (disks)
device pass # Passthrough device (direct ATA/SCSI access)
device ses # Enclosure Services (SES and SAF-TE)
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device kbdmux # keyboard multiplexer
device vga # VGA video card driver
options VESA # Add support for VESA BIOS Extensions (VBE)
device sc
options SC_PIXEL_MODE # add support for the raster text mode
device agp # support several AGP chipsets
device uart # Generic UART driver
device em # Intel PRO/1000 Gigabit Ethernet Family
device miibus # MII bus support
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet
device wlan # 802.11 support
options IEEE80211_DEBUG # enable debug msgs
options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's
options IEEE80211_SUPPORT_MESH # enable 802.11s draft support
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
device wlan_amrr # AMRR transmit rate control algorithm
device iwn # Intel 4965/1000/5000/6000 wireless NICs.
device loop # Network loopback
device random # Entropy device
device rdrand_rng # Intel Bull Mountain RNG
device ether # Ethernet support
device vlan # 802.1Q VLAN support
device tun # Packet tunnel.
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module
device bpf # Berkeley packet filter
options USB_DEBUG # enable debug msgs
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
device ehci # EHCI PCI->USB interface (USB 2.0)
device xhci # XHCI PCI->USB interface (USB 3.0)
device usb # USB Bus (required)
device ukbd # Keyboard
device ums # Mouse
device sound # Generic sound driver (required)
device snd_hda # Intel High Definition Audio
device coretemp
device cpuctl
options SC_DISABLE_REBOOT
options UKBD_DFLT_KEYMAP
makeoptions UKBD_DFLT_KEYMAP=us.pc-ctrl
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPSTEALTH
device crypto # core crypto support
device cryptodev # /dev/crypto for access to h/w
device aesni
options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones
options DEADLKRES # Enable the deadlock resolver
options INVARIANTS # Enable calls of extra sanity c
options INVARIANT_SUPPORT # Extra sanity checks of interna
options WITNESS # Enable checks to detect deadlo
options WITNESS_SKIPSPIN # Don't run witness on spinlocks
options ALT_BREAK_TO_DEBUGGER
options BREAK_TO_DEBUGGER
More information about the freebsd-stable
mailing list