Oliver Pinter
2014-Mar-09 23:45 UTC
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
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
Hans Petter Selasky
2014-Mar-10 08:54 UTC
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
On 03/10/14 00:45, Oliver Pinter wrote:> critical section heldHi, Can you try this patch: http://svnweb.freebsd.org/changeset/base/262972 I suppose this happens if SCROLL LOCK LED is set while rebooting. Thank you! --HPS