VirtualBox-ose kernel module crashes 10-stable
Trond Endrestøl
Trond.Endrestol at fagskolen.gjovik.no
Fri Mar 31 11:57:17 UTC 2017
On Fri, 31 Mar 2017 20:07+0900, Hiroyuki Une wrote:
> Kernel Panic was caused on My 10.3-STABLE r316132
> by VirtualBox-ose created by poudriere(8) on my box with DEBUG option.
> However, when I was using 10.3-STABLE r315187,
> VirtualBox-ose worked without any problem.
>
> Here is the output by kgdb:
>
> ------ start here (output by kgdb)
> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB. Type "show warranty" for details.
> This GDB was configured as "amd64-marcel-freebsd"...
>
> Unread portion of the kernel message buffer:
>
> !!Assertion Failed!!
> Expression: RTThreadPreemptIsEnabled(NIL_RTTHREAD)
> Location : /wrkdirs/usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-5.1.18/out/freebsd.amd64/debug/bin/src/vboxdrv/r0drv/freebsd/spinlock-r0drv-freebsd.c(78) int RTSpinlockCreate(PRTSPINLOCK, uint32_t, const char *)
>
>
> Fatal trap 3: breakpoint instruction fault while in kernel mode
> cpuid = 3; apic id = 06
> instruction pointer = 0x20:0xffffffff81dbb3de
> stack pointer = 0x28:0xfffffe0464bfd490
> frame pointer = 0x28:0xfffffe0464bfd4c0
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags = interrupt enabled, IOPL = 0
> current process = 46465 (VBoxSVC)
> trap number = 3
> panic: breakpoint instruction fault
> cpuid = 3
> KDB: stack backtrace:
> #0 0xffffffff809bb360 at kdb_backtrace+0x60
> #1 0xffffffff8097c1e6 at vpanic+0x126
> #2 0xffffffff8097c0b3 at panic+0x43
> #3 0xffffffff80d9ce2d at trap_fatal+0x35d
> #4 0xffffffff80d9caaf at trap+0x79f
> #5 0xffffffff80d81d4c at calltrap+0x8
> #6 0xffffffff81d7d591 at supdrvCreateSession+0x91
> #7 0xffffffff81d9355b at vboxdrvFreeBSDOpenCommon+0x2b
> #8 0xffffffff80855a32 at devfs_open+0x122
> #9 0xffffffff80ed8671 at VOP_OPEN_APV+0xa1
> #10 0xffffffff80a3bc34 at vn_open_vnode+0x234
> #11 0xffffffff80a3b803 at vn_open_cred+0x373
> #12 0xffffffff80a348cf at kern_openat+0x26f
> #13 0xffffffff80d9d862 at amd64_syscall+0x452
> #14 0xffffffff80d8203b at Xfast_syscall+0xfb
> Uptime: 16h16m43s
> Dumping 3881 out of 16259 MB:..1%..11%..21%..31%..41%..51%..61%..71%..81%..91%
>
> Reading symbols from /boot/kernel/linprocfs.ko.symbols...done.
> Loaded symbols for /boot/kernel/linprocfs.ko.symbols
> Reading symbols from /boot/kernel/linux_common.ko.symbols...done.
> Loaded symbols for /boot/kernel/linux_common.ko.symbols
> Reading symbols from /boot/kernel/linsysfs.ko.symbols...done.
> Loaded symbols for /boot/kernel/linsysfs.ko.symbols
> Reading symbols from /boot/kernel/zfs.ko.symbols...done.
> Loaded symbols for /boot/kernel/zfs.ko.symbols
> Reading symbols from /boot/kernel/opensolaris.ko.symbols...done.
> Loaded symbols for /boot/kernel/opensolaris.ko.symbols
> Reading symbols from /boot/kernel/tmpfs.ko.symbols...done.
> Loaded symbols for /boot/kernel/tmpfs.ko.symbols
> Reading symbols from /boot/modules/vboxdrv.ko.symbols...done.
> Loaded symbols for /boot/modules/vboxdrv.ko.symbols
> Reading symbols from /boot/kernel/fdescfs.ko.symbols...done.
> Loaded symbols for /boot/kernel/fdescfs.ko.symbols
> Reading symbols from /boot/kernel/i915kms.ko.symbols...done.
> Loaded symbols for /boot/kernel/i915kms.ko.symbols
> Reading symbols from /boot/kernel/drm2.ko.symbols...done.
> Loaded symbols for /boot/kernel/drm2.ko.symbols
> Reading symbols from /boot/kernel/iicbus.ko.symbols...done.
> Loaded symbols for /boot/kernel/iicbus.ko.symbols
> Reading symbols from /boot/kernel/iic.ko.symbols...done.
> Loaded symbols for /boot/kernel/iic.ko.symbols
> Reading symbols from /boot/kernel/iicbb.ko.symbols...done.
> Loaded symbols for /boot/kernel/iicbb.ko.symbols
> Reading symbols from /boot/kernel/ulpt.ko.symbols...done.
> Loaded symbols for /boot/kernel/ulpt.ko.symbols
> Reading symbols from /boot/kernel/ipfw.ko.symbols...done.
> Loaded symbols for /boot/kernel/ipfw.ko.symbols
> Reading symbols from /boot/kernel/linux.ko.symbols...done.
> Loaded symbols for /boot/kernel/linux.ko.symbols
> Reading symbols from /boot/kernel/linux64.ko.symbols...done.
> Loaded symbols for /boot/kernel/linux64.ko.symbols
> Reading symbols from /boot/kernel/i915.ko.symbols...done.
> Loaded symbols for /boot/kernel/i915.ko.symbols
> Reading symbols from /boot/kernel/drm.ko.symbols...done.
> Loaded symbols for /boot/kernel/drm.ko.symbols
> Reading symbols from /boot/kernel/nullfs.ko.symbols...done.
> Loaded symbols for /boot/kernel/nullfs.ko.symbols
> #0 doadump (textdump=<value optimized out>) at pcpu.h:219
> 219 pcpu.h: No such file or directory.
> in pcpu.h
> (kgdb) bt
> #0 doadump (textdump=<value optimized out>) at pcpu.h:219
> #1 0xffffffff8097be03 in kern_reboot (howto=260)
> at /usr/src/sys/kern/kern_shutdown.c:486
> #2 0xffffffff8097c225 in vpanic (fmt=<value optimized out>,
> ap=<value optimized out>) at /usr/src/sys/kern/kern_shutdown.c:889
> #3 0xffffffff8097c0b3 in panic (fmt=0x0)
> at /usr/src/sys/kern/kern_shutdown.c:818
> #4 0xffffffff80d9ce2d in trap_fatal (frame=<value optimized out>,
> eva=<value optimized out>) at /usr/src/sys/amd64/amd64/trap.c:858
> #5 0xffffffff80d9caaf in trap (frame=<value optimized out>)
> at /usr/src/sys/amd64/amd64/trap.c:203
> #6 0xffffffff80d81d4c in calltrap ()
> at /usr/src/sys/amd64/amd64/exception.S:238
> #7 0xffffffff81dbb3de in RTSpinlockCreate (pSpinlock=0xfffff80233354860,
> fFlags=4, pszName=0xfffffe0464bfd310 "")
> at /wrkdirs/usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-5.1.18/out/freebsd.amd64/debug/bin/src/vboxdrv/r0drv/freebsd/spinlock-r0drv-freebsd.c:78
> #8 0xffffffff81d7d591 in supdrvCreateSession (pDevExt=0xffffffff81ddc510,
> fUser=true, fUnrestricted=false, ppSession=0xfffffe0464bfd518)
> at SUPDrv.c:772
> #9 0xffffffff81d9355b in vboxdrvFreeBSDOpenCommon ()
> at /wrkdirs/usr/ports/emulators/virtualbox-ose-kmod/work/VirtualBox-5.1.18/out/freebsd.amd64/debug/bin/src/vboxdrv/freebsd/SUPDrv-freebsd.c:250
> #10 0xffffffff80855a32 in devfs_open (ap=<value optimized out>)
> at /usr/src/sys/fs/devfs/devfs_vnops.c:1116
> #11 0xffffffff80ed8671 in VOP_OPEN_APV (vop=<value optimized out>,
> a=<value optimized out>) at vnode_if.c:469
> ---Type <return> to continue, or q <return> to quit---
> #12 0xffffffff80a3bc34 in vn_open_vnode (vp=0xfffff802d807b3b0, fmode=3,
> cred=0xfffff8031f06f100, td=0xfffff802aad3b4c0, fp=0xfffff80020b39320)
> at vnode_if.h:196
> #13 0xffffffff80a3b803 in vn_open_cred (ndp=0xfffffe0464bfd870,
> flagp=0xfffffe0464bfd94c, cmode=<value optimized out>,
> vn_open_flags=<value optimized out>, cred=0xfffffe0464bfd310,
> fp=0xfffff80020b39320) at /usr/src/sys/kern/vfs_vnops.c:268
> #14 0xffffffff80a348cf in kern_openat (td=0xfffff802aad3b4c0, fd=-100,
> path=0x80182c1ec <Address 0x80182c1ec out of bounds>,
> pathseg=UIO_USERSPACE, flags=3, mode=<value optimized out>)
> at /usr/src/sys/kern/vfs_syscalls.c:1067
> #15 0xffffffff80d9d862 in amd64_syscall (td=0xfffff802aad3b4c0, traced=0)
> at subr_syscall.c:141
> #16 0xffffffff80d8203b in Xfast_syscall ()
> at /usr/src/sys/amd64/amd64/exception.S:398
> #17 0x0000000802cdf8fa in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> Current language: auto; currently minimal
>
> ------ end here (output by kgdb)
>
> As shown in the above, kernel panic was caused by
> assertion RTThreadPreemptIsEnabled(NIL_RTTHREAD)
> which tests the following expressions:
>
> 1. curthread->td_critnest is equal to 0, and
> 2. IF (interrupt flag) on eflag (or rflag ?) is equal to 1.
>
> This assertion will be successful only if both of above are true.
>
> As I read the source of VirtualBox, RTThreadPreemptIsEnabled is
> a part of test for preemtiveness which is used to create a spinlock.
> However, I'm not sure why assertion RTThreadPreemptIsEnabled is required,
> and this was failed on 10.3-STABLE r316132.
>
> I would appreciate any information. Thanks.
emulators/virtualbox-ose needs access to the kernel sources during
build. Maybe you should rebuild emulators/virtualbox-ose to match your
current source tree.
--
+-------------------------------+------------------------------------+
| Vennlig hilsen, | Best regards, |
| Trond Endrestøl, | Trond Endrestøl, |
| IT-ansvarlig, | System administrator, |
| Fagskolen Innlandet, | Gjøvik Technical College, Norway, |
| tlf. mob. 952 62 567, | Cellular...: +47 952 62 567, |
| sentralbord 61 14 54 00. | Switchboard: +47 61 14 54 00. |
+-------------------------------+------------------------------------+
More information about the freebsd-stable
mailing list