โฌข DragonFlyBSD Kernel Audit
DF-4528 / run.log
โ† back to finding โ†“ download raw
# run.log โ€” DF-4528/DF-4529 shared rig (audit guest + QEMU nvme, session-captured)

== environment ==
guest: DragonFly dfbsd 6.5-DEVELOPMENT #0: Thu Jul 2 06:02:54 UTC 2026 x86_64
qemu:  QEMU 7.2.22 (Debian), -enable-kvm -smp 6 -m 4096, i440FX
nvme:  -device nvme,id=nv0,serial=AUDNVME,msix_qsize=65,max_ioqpairs=8
       + 8x -device nvme-ns (null-co backing, 10G each)
dmesg: nvme0: NVME Version 1.4 maxqe=2048 caps=004018200f0107ff
       nvme0: mapped 7 MSIX IRQs; Returns 8/6 queues, nominal map 1:1 cpu
       8 disks nvme0..nvme7 (root:operator 0640)

== sanity: single NVMEIOCGETLOG ==
status=0 lid=1 first16: 00 00 ... (works)

== solo load (60s) ==
DONE n=783730 ok=783730 errs=0 maxlat=0.0060 avg=0.000053 slow>1s=0 slow>3s=0

== 6-way concurrent load (90s) ==
slow1: DONE n=248387 ok=248387 errs=0 maxlat=0.5653 avg=0.000322
slow2: DONE n=238300 ok=238300 errs=0 maxlat=0.8167 avg=0.000337
slow3: DONE n=213895 ok=213895 errs=0 maxlat=0.6716 avg=0.000380
slow6: DONE n=265191 ok=265191 errs=0 maxlat=0.5053 avg=0.000301
=> ioctl_lk serializes getlog submitters; no failures without admin-thread
   traffic (the DF-4528 second submitter).

== privilege probe ==
operator-group test user: open("/dev/nvme0") -> EPERM
(raw-disk opens are root-only on this system; rig uses root)

== device removal probes (DF-4529) =====================================
QEMU monitor `device_del nv0` (all variants incl. children-first): no-op on
this guest โ€” DFly 6.5/i440FX does not act on the ACPI PCI hotplug eject,
device stays present => nvmedetach/nvmebang kernel modules written to invoke
the identical driver attach/detach code path deterministically.

device_detach() via kld (nvmedetach): works but removes the device from the
devclass (one-shot). Driver-method invocation (nvmebang, sysctl
hw.nvmebang.action=1/2): repeatable.

[baseline kernel, run 1] 12 spammers; first detach:
  Fatal trap 18 ... Stopped at nvme_get_request+0x34: divl 0x40(%r13),%eax
  current process = 934                                                  -> panic.txt
[baseline kernel, run 2] fresh boot, 6 rc.local spammers; first detach:
  identical trap, current process = 633                                  -> panic.txt

== fix validation (see ../DF-4529/fix_run.log) ========================
fix v1 kernel: identical single-detach rig -> clean ("SURVIVED_DETACH",
no Fatal trap, spammers continue n=88047); aggressive 6x cycling still
faults at nvme_open+0x13 (panic.open.txt) => fix v2; fix v2 kernel: getlog
div0 still gone; residual teardown-window dispatch fault at
nvme_ioctl+0xe (residual_fault.txt) โ€” see VERDICT.