Bug 231070 - Crash in nvme_qpair_reset() on base/head r338418 on VirtualBox 5.2.18
Summary: Crash in nvme_qpair_reset() on base/head r338418 on VirtualBox 5.2.18
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-09-01 11:05 UTC by Trond Endrestøl
Modified: 2018-09-05 17:54 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Trond Endrestøl 2018-09-01 11:05:57 UTC
Host is VirtualBox 5.2.18, Windows 7 x64 SP1, and Intel Core i7 960 @ 3.2 GHz.
Guest is amd64 base/head r338418. Last known good revision is r338206.

This can so easily be a bug in the VirtualBox implementation as it can be a bug in the FreeBSD implementation.
The NVMe controller isn't critical to me, so I removed it from the VM, edited /etc/fstab, and carried on.

Screenshots are available at https://ximalas.info/~trond/NVMe-crash-base-head-r338418/

Kernel messages (typed in from the screenshots, typo's quite possible):

nvme0: Resetting controller due to a timeout.
nvme0: resetting controller


Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x40
fault code              = supervisor write data, page not present
instruction pointer     = 0x20:0xffffffff805d7bd9
stack pointer           = 0x28:0ffffffe00331a6a80
frame pointer           = 0x28:0xfffffe00331a6a90
code segment            = base rx0, limit 0xfffff, type 0x1b
                        = CPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enable,d resume, IOPL = 0
current process         = 0 (nvme taskq)
[ thread pid 0 tid 100051 ]
Stopped at      0xffffffff805d7bd9 = nvme_qpair_reset+0x9:      movl    $0,0x40 = ll+x1f(%rbx)
db> bt
Tracing pid 0 tid 100051 td 0xfffff8000c015580
nvme_qpair_reset() at 0xffffffff805d3207 = nvme_qpair_reset+0x9/frame 0xfffffe00113a6a90
nvme_ctrlr_start() at 0xffffffff805d3207 = nvme_ctrlr_start+0x57/frame 0xfffffe00331a6af0
taskqueue_run_locked() at 0xffffffff807ddaa4 = taskqueue_run_locked+0x154/frame 0xfffffe00331a6bb0
fork_exit() at 0xffffffff8073d8a3 = fork_exit+0x83/frame 0xfffffe00331a6bf0
forkt_rampoline() at 0xffffffff80ab97ae = fork_trampoline+0xe/frame 0xfffffe00331a6bf0
--- trap 0, rip = 0, rsp = 0, rbp = 0 ---
db>
Comment 1 Trond Endrestøl 2018-09-01 20:03:33 UTC
I can easily reenable the simulated NVMe controller, boot the VM into the kernel debugger and look around if anyone's interested.
Comment 2 Trond Endrestøl 2018-09-05 17:54:36 UTC
As of base/head r338471, the VirtualBox NVMe controller is back in business. Case closed.