Thanks. I can reproduce a hang on boot in qemu. It's hanging starting init, waiting on "needbuf". Investigating now.
Andrew On Mon, Jan 20, 2020 at 04:12:45PM +0000, Patrick Welche wrote: > On Mon, Jan 20, 2020 at 12:51:00PM +0000, Andrew Doran wrote: > > This also happened the last time I touched rw_downgrade(), and I backed out > > the change then, but both times I don't see the bug. I have some questions: > > > > - Are you running DIAGNOSTIC and/or LOCKDEBUG? I would be very interested > > to see what happens with a LOCKDEBUG kernel here. > > One worked with the addition of LOCKDEBUG. The other didn't, but it seems > to be unrelated: > > db{0}> show panic > Panic string: mutex_vector_enter,510: uninitialized lock > (lock=0xffffbd012366609 > 0, from=ffffffff8033dc9d) > bt > breakpoint() at netbsd:breakpoint+0x5 > vpanic() at netbsd:vpanic+0x178 > snprintf() at netbsd:snprintf > lockdebug_wantlock() at netbsd:lockdebug_wantlock+0x166 > mutex_enter() at netbsd:mutex_enter+0x37c > ixgbe_getext() at netbsd:ixgbe_getext+0x1d > ixgbe_jcl_freeall.isra.0() at netbsd:ixgbe_jcl_freeall.isra.0+0xd6 > ixgbe_jcl_destroy() at netbsd:ixgbe_jcl_destroy+0x14 > ixgbe_free_receive_structures() at netbsd:ixgbe_free_receive_structures+0x11b > ixgbe_attach() at netbsd:ixgbe_attach+0x2b0a > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > config_found_sm_loc() at netbsd:config_found_sm_loc+0x4d > pci_probe_device() at netbsd:pci_probe_device+0x586 > pci_enumerate_bus() at netbsd:pci_enumerate_bus+0x1b7 > pcirescan() at netbsd:pcirescan+0x4e > pciattach() at netbsd:pciattach+0x186 > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > config_found_sm_loc() at netbsd:config_found_sm_loc+0x4d > ppbattach() at netbsd:ppbattach+0x1c5 > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > config_found_sm_loc() at netbsd:config_found_sm_loc+0x4d > pci_probe_device() at netbsd:pci_probe_device+0x586 > pci_enumerate_bus() at netbsd:pci_enumerate_bus+0x1b7 > pcirescan() at netbsd:pcirescan+0x4e > pciattach() at netbsd:pciattach+0x186 > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > config_found_sm_loc() at netbsd:config_found_sm_loc+0x4d > ppbattach() at netbsd:ppbattach+0x1c5 > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > config_found_sm_loc() at netbsd:config_found_sm_loc+0x4d > pci_probe_device() at netbsd:pci_probe_device+0x586 > pci_enumerate_bus() at netbsd:pci_enumerate_bus+0x1b7 > pcirescan() at netbsd:pcirescan+0x4e > pciattach() at netbsd:pciattach+0x186 > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > config_found_sm_loc() at netbsd:config_found_sm_loc+0x4d > ppbattach() at netbsd:ppbattach+0x1c5 > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > config_found_sm_loc() at netbsd:config_found_sm_loc+0x4d > pci_probe_device() at netbsd:pci_probe_device+0x586 > pci_enumerate_bus() at netbsd:pci_enumerate_bus+0x1b7 > pcirescan() at netbsd:pcirescan+0x4e > pciattach() at netbsd:pciattach+0x186 > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > config_found_sm_loc() at netbsd:config_found_sm_loc+0x4d > mp_pci_scan() at netbsd:mp_pci_scan+0xa4 > amd64_mainbus_attach() at netbsd:amd64_mainbus_attach+0x237 > mainbus_attach() at netbsd:mainbus_attach+0x70 > config_attach_loc() at netbsd:config_attach_loc+0x1a8 > cpu_configure() at netbsd:cpu_configure+0x2b > main() at netbsd:main+0x311 > > Cheers, > > Patrick