# DF-4818 — panic captures from the QEMU guest serial console. # # NOTE 1: the nvme defect itself (NULL sc->irq[k] -> nexus_setup_intr / # resource_list_release panic) was NOT forceable on the emulator — # see VERDICT.md "Trigger analysis". The panics below are the # *incidental live discovery* in a DIFFERENT driver (virtio_pci), # reached with the same MSI-pool-pressure setup used to exercise # nvme's MSI-X error paths. Surfaced for a dedicated audit spawn. # # NOTE 2: this proves the audit guest kernel runs INVARIANTS # (sys/config/X86_64_GENERIC:56), which DF-4818 manifestation (3) # (pci_setup_msix KASSERT on re-attach after fallback leak) depends on. panic: MSI-X is not setup yet cpuid = 0 Trace beginning at frame 0xffffffff817a9990 pci_release_msix_vector_method() at pci_release_msix_vector_method+0x193 0xffffffff808f4193 pci_release_msix_vector_method() at pci_release_msix_vector_method+0x193 0xffffffff808f4193 vtpci_intr_release() at vtpci_intr_release+0xe1 0xffffffff80a726f1 vtnet_attach() at vtnet_attach+0x909 0xffffffff80a70c39 device_doattach() at device_doattach+0x3af 0xffffffff8068d2ff vtpci_probe_and_attach_child() at vtpci_probe_and_attach_child+0x48 0xffffffff80a72948 Debugger("panic") CPU0 stopping CPUs: 0x00000002 stopped Stopped at Debugger+0x7c: movb $0,0xbd77f9(%rip) db> # Reproduced on EVERY boot with an exhausted/empty MSI pool: # hw.ioapic.msi_start=224 (boot-nvme.log, run.2.log) # hw.ioapic.msi_start=160 with 24 nvme controllers (boot-nvme24.log, run.3.log) # KASSERT source: sys/bus/pci/pci.c:1588-1590 in pci_release_msix_vector_method, # called from sys/dev/virtual/virtio/virtio_pci.c vtpci_intr_release() on the # attach-error path where MSI-X was never (successfully) set up.