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