Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 31 Mar 2017 13:56:54 +0200 (CEST)
From:      =?ISO-8859-1?Q?Trond_Endrest=F8l?= <Trond.Endrestol@fagskolen.gjovik.no>
To:        Hiroyuki Une <harrier@seiryu.id.hkg.ac.jp>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: VirtualBox-ose kernel module crashes 10-stable
Message-ID:  <alpine.BSF.2.20.1703311354370.533@mail.fig.ol.no>
In-Reply-To: <20170331200757.233b3826797acd61c66f03e7@seiryu.id.hkg.ac.jp>
References:  <20170331200757.233b3826797acd61c66f03e7@seiryu.id.hkg.ac.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
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.      |
+-------------------------------+------------------------------------+


Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.20.1703311354370.533>