Greg Steuck <gne...@openbsd.org> writes: >> I suspect around wsdisplay_suspend() and wsdisplay_resume(); I've recently >> discovered that the mux aspects are insane. > > I applied the patches below and added a bunch of tracing to > subr_suspend. First zzz:
I also added this: modified sys/kern/subr_autoconf.c @@ -827,8 +827,10 @@ config_suspend(struct device *dev, int act) int r; device_ref(dev); - if (ca->ca_activate) + if (ca->ca_activate) { r = (*ca->ca_activate)(dev, act); + printf("config_suspend: %s %d\n", dev->dv_xname, r); + } else r = config_activate_children(dev, act); Which gives the following joyful traces (failed attemp 2 before successful attemp 1). The important bit, I guess, is that > config_suspend: amdgpu0 0 is not printed the second time around which I read as ca->ca_activate for amdgpu0 never returned? I can reconfirm with more tracing if somebody thinks my conclusion is premature. zzz 2: > /usr/src/sys/kern/subr_suspend.c:65 > /usr/src/sys/kern/subr_suspend.c:81 > /usr/src/sys/kern/subr_suspend.c:84 > /usr/src/sys/kern/subr_suspend.c:104 > /usr/src/sys/kern/subr_suspend.c:106 > config_suspend: scsibus0 0 > config_suspend: acpihpet0 0 > config_suspend: com0 0 > config_suspend: acpibtn0 0 > config_suspend: amdgpio0 0 > config_suspend: tpm0 0 > config_suspend: cpu0 0 > config_suspend: cpu1 0 > config_suspend: cpu2 0 > config_suspend: cpu3 0 > config_suspend: cpu4 0 > config_suspend: cpu5 0 > config_suspend: cpu6 0 > config_suspend: cpu7 0 > config_suspend: ioapic0 0 > config_suspend: ioapic1 0 > config_suspend: pchb0 0 > config_suspend: sd0 0 > config_suspend: scsibus1 0 > config_suspend: nvme0 0 > config_suspend: pci3 0 > config_suspend: ppb2 0 > config_suspend: em0 0 > config_suspend: pci4 0 > config_suspend: ppb3 0 > uhub0 detached > config_suspend: usb0 0 > config_suspend: xhci0 0 > uhub1 detached > config_suspend: usb1 0 > config_suspend: xhci1 0 > config_suspend: pci5 0 > config_suspend: ppb4 0 > config_suspend: scsibus2 0 > config_suspend: ahci0 0 > config_suspend: pci6 0 > config_suspend: ppb5 0 > config_suspend: cd0 0 > config_suspend: scsibus3 0 > config_suspend: ahci1 0 > config_suspend: pci7 0 > config_suspend: ppb6 0 > config_suspend: pci2 0 > config_suspend: ppb1 0 > config_suspend: pci1 0 > config_suspend: ppb0 0 > config_suspend: pchb1 0 > config_suspend: sd1 0 > config_suspend: scsibus4 0 > config_suspend: nvme1 0 > config_suspend: pci8 0 > config_suspend: ppb7 0 > config_suspend: pchb2 0 > config_suspend: drm0 0 > config_suspend: wsdisplay0 0 zzz 1: > /usr/src/sys/kern/subr_suspend.c:65 > /usr/src/sys/kern/subr_suspend.c:81 > /usr/src/sys/kern/subr_suspend.c:84 > /usr/src/sys/kern/subr_suspend.c:104 > /usr/src/sys/kern/subr_suspend.c:106 > config_suspend: scsibus0 0 > config_suspend: acpihpet0 0 > config_suspend: com0 0 > config_suspend: acpibtn0 0 > config_suspend: amdgpio0 0 > config_suspend: tpm0 0 > config_suspend: cpu0 0 > config_suspend: cpu1 0 > config_suspend: cpu2 0 > config_suspend: cpu3 0 > config_suspend: cpu4 0 > config_suspend: cpu5 0 > config_suspend: cpu6 0 > config_suspend: cpu7 0 > config_suspend: ioapic0 0 > config_suspend: ioapic1 0 > config_suspend: pchb0 0 > config_suspend: sd0 0 > config_suspend: scsibus1 0 > config_suspend: nvme0 0 > config_suspend: pci3 0 > config_suspend: ppb2 0 > config_suspend: em0 0 > config_suspend: pci4 0 > config_suspend: ppb3 0 > uhub0 detached > config_suspend: usb0 0 > config_suspend: xhci0 0 > uhub1 detached > config_suspend: usb1 0 > config_suspend: xhci1 0 > config_suspend: pci5 0 > config_suspend: ppb4 0 > config_suspend: scsibus2 0 > config_suspend: ahci0 0 > config_suspend: pci6 0 > config_suspend: ppb5 0 > config_suspend: cd0 0 > config_suspend: scsibus3 0 > config_suspend: ahci1 0 > config_suspend: pci7 0 > config_suspend: ppb6 0 > config_suspend: pci2 0 > config_suspend: ppb1 0 > config_suspend: pci1 0 > config_suspend: ppb0 0 > config_suspend: pchb1 0 > config_suspend: sd1 0 > config_suspend: scsibus4 0 > config_suspend: nvme1 0 > config_suspend: pci8 0 > config_suspend: ppb7 0 > config_suspend: pchb2 0 > config_suspend: drm0 0 > config_suspend: wsdisplay0 0 > config_suspend: amdgpu0 0 > config_suspend: azalia0 0 > uhub2 detached > config_suspend: usb2 0 > config_suspend: xhci2 0 > config_suspend: wskbd1 0 > config_suspend: uhidev0 0 > config_suspend: wsmouse0 0 > config_suspend: uhidev1 0 > config_suspend: wsmouse1 0 > config_suspend: uhidev2 0 > config_suspend: uhidev3 0 > config_suspend: uhidev4 0 > wskbd1: disconnecting from wsdisplay0 > wskbd1 detached > ukbd0 detached > uhidev0 detached > wsmouse0 detached > ums0 detached > uhidev1 detached > wsmouse1 detached > ums1 detached > uhidev2 detached > fido0 detached > uhidev3 detached > uhid0 detached > uhidev4 detached > uhub4 detached > uhub3 detached > config_suspend: usb3 0 > config_suspend: xhci3 0 > config_suspend: audio0 0 > config_suspend: azalia1 0 > config_suspend: pci9 0 > config_suspend: ppb8 0 > config_suspend: scsibus5 0 > config_suspend: ahci2 0 > config_suspend: scsibus6 0 > config_suspend: ahci3 0 > config_suspend: pci10 0 > config_suspend: ppb9 0 > config_suspend: wskbd0 0 > config_suspend: pckbd0 0 > config_suspend: pckbc0 0 > config_suspend: pchb3 0 > config_suspend: pchb4 0 > config_suspend: pchb5 0 > config_suspend: pchb6 0 > config_suspend: pchb7 0 > config_suspend: pchb8 0 > config_suspend: pchb9 0 > config_suspend: pchb10 0 > config_suspend: pci0 0 > config_suspend: vmm0 0 > /usr/src/sys/kern/subr_suspend.c:114 > /usr/src/sys/kern/subr_suspend.c:116 > /usr/src/sys/kern/subr_suspend.c:119 > /usr/src/sys/kern/subr_suspend.c:122 > /usr/src/sys/kern/subr_suspend.c:132 > /usr/src/sys/kern/subr_suspend.c:137 > /usr/src/sys/kern/subr_suspend.c:151 > /usr/src/sys/kern/subr_suspend.c:153 > config_suspend: scsibus0 0 > config_suspend: acpihpet0 0 > config_suspend: com0 0 > config_suspend: acpibtn0 0 > config_suspend: amdgpio0 0 > config_suspend: tpm0 0 > config_suspend: cpu0 0 > config_suspend: cpu1 0 > config_suspend: cpu2 0 > config_suspend: cpu3 0 > config_suspend: cpu4 0 > config_suspend: cpu5 0 > config_suspend: cpu6 0 > config_suspend: cpu7 0 > config_suspend: ioapic0 0 > config_suspend: ioapic1 0 > config_suspend: pchb0 0 > config_suspend: sd0 0 > config_suspend: scsibus1 0 > config_suspend: nvme0 0 > config_suspend: pci3 0 > config_suspend: ppb2 0 > config_suspend: em0 0 > config_suspend: pci4 0 > config_suspend: ppb3 0 > config_suspend: usb0 0 > config_suspend: xhci0 0 > config_suspend: usb1 0 > config_suspend: xhci1 0 > config_suspend: pci5 0 > config_suspend: ppb4 0 > config_suspend: scsibus2 0 > config_suspend: ahci0 0 > config_suspend: pci6 0 > config_suspend: ppb5 0 > config_suspend: cd0 0 > config_suspend: scsibus3 0 > config_suspend: ahci1 0 > config_suspend: pci7 0 > config_suspend: ppb6 0 > config_suspend: pci2 0 > config_suspend: ppb1 0 > config_suspend: pci1 0 > config_suspend: ppb0 0 > config_suspend: pchb1 0 > config_suspend: sd1 0 > config_suspend: scsibus4 0 > config_suspend: nvme1 0 > config_suspend: pci8 0 > config_suspend: ppb7 0 > config_suspend: pchb2 0 > config_suspend: amdgpu0 0 > config_suspend: azalia0 0 > config_suspend: usb2 0 > config_suspend: xhci2 0 > config_suspend: usb3 0 > config_suspend: xhci3 0 > config_suspend: azalia1 0 > config_suspend: pci9 0 > config_suspend: ppb8 0 > config_suspend: scsibus5 0 > config_suspend: ahci2 0 > config_suspend: scsibus6 0 > config_suspend: ahci3 0 > config_suspend: pci10 0 > config_suspend: ppb9 0 > config_suspend: wskbd0 0 > config_suspend: pckbd0 0 > config_suspend: pckbc0 0 > config_suspend: pchb3 0 > config_suspend: pchb4 0 > config_suspend: pchb5 0 > config_suspend: pchb6 0 > config_suspend: pchb7 0 > config_suspend: pchb8 0 > config_suspend: pchb9 0 > config_suspend: pchb10 0 > config_suspend: pci0 0 > config_suspend: vmm0 0 > config_suspend: scsibus0 0 > config_suspend: acpihpet0 0 > config_suspend: com0 0 > config_suspend: acpibtn0 0 > config_suspend: amdgpio0 0 > config_suspend: tpm0 0 > config_suspend: cpu0 0 > config_suspend: cpu1 0 > config_suspend: cpu2 0 > config_suspend: cpu3 0 > config_suspend: cpu4 0 > config_suspend: cpu5 0 > config_suspend: cpu6 0 > config_suspend: cpu7 0 > config_suspend: ioapic0 0 > config_suspend: ioapic1 0 > config_suspend: pchb0 0 > config_suspend: sd0 0 > config_suspend: scsibus1 0 > config_suspend: nvme0 0 > config_suspend: pci3 0 > config_suspend: ppb2 0 > config_suspend: em0 0 > config_suspend: pci4 0 > config_suspend: ppb3 0 > config_suspend: usb0 0 > config_suspend: xhci0 0 > config_suspend: usb1 0 > config_suspend: xhci1 0 > config_suspend: pci5 0 > config_suspend: ppb4 0 > config_suspend: scsibus2 0 > config_suspend: ahci0 0 > config_suspend: pci6 0 > config_suspend: ppb5 0 > config_suspend: cd0 0 > config_suspend: scsibus3 0 > config_suspend: ahci1 0 > config_suspend: pci7 0 > config_suspend: ppb6 0 > config_suspend: pci2 0 > config_suspend: ppb1 0 > config_suspend: pci1 0 > config_suspend: ppb0 0 > config_suspend: pchb1 0 > config_suspend: sd1 0 > config_suspend: scsibus4 0 > config_suspend: nvme1 0 > config_suspend: pci8 0 > config_suspend: ppb7 0 > config_suspend: pchb2 0 > config_suspend: amdgpu0 0 > config_suspend: azalia0 0 > config_suspend: usb2 0 > config_suspend: xhci2 0 > config_suspend: usb3 0 > xhci3: save state timeout > config_suspend: xhci3 0 > config_suspend: azalia1 0 > config_suspend: pci9 0 > config_suspend: ppb8 0 > config_suspend: scsibus5 0 > config_suspend: ahci2 0 > config_suspend: scsibus6 0 > config_suspend: ahci3 0 > config_suspend: pci10 0 > config_suspend: ppb9 0 > config_suspend: wskbd0 0 > config_suspend: pckbd0 0 > config_suspend: pckbc0 0 > config_suspend: pchb3 0 > config_suspend: pchb4 0 > config_suspend: pchb5 0 > config_suspend: pchb6 0 > config_suspend: pchb7 0 > config_suspend: pchb8 0 > config_suspend: pchb9 0 > config_suspend: pchb10 0 > config_suspend: pci0 0 > config_suspend: vmm0 0 > suspend > resume 1 > /usr/src/sys/kern/subr_suspend.c:194 > config_suspend: acpihpet0 0 > config_suspend: com0 0 > config_suspend: acpibtn0 0 > config_suspend: amdgpio0 0 > config_suspend: tpm0 0 > config_suspend: cpu0 0 > config_suspend: cpu1 0 > config_suspend: cpu2 0 > config_suspend: cpu3 0 > config_suspend: cpu4 0 > config_suspend: cpu5 0 > config_suspend: cpu6 0 > config_suspend: cpu7 0 > config_suspend: ioapic0 0 > config_suspend: ioapic1 0 > config_suspend: pchb0 0 > config_suspend: sd0 0 > config_suspend: scsibus1 0 > config_suspend: nvme0 0 > config_suspend: pci3 0 > config_suspend: ppb2 0 > config_suspend: em0 0 > config_suspend: pci4 0 > config_suspend: ppb3 0 > config_suspend: usb0 0 > config_suspend: xhci0 0 > config_suspend: usb1 0 > config_suspend: xhci1 0 > config_suspend: pci5 0 > config_suspend: ppb4 0 > config_suspend: scsibus2 0 > config_suspend: ahci0 0 > config_suspend: pci6 0 > config_suspend: ppb5 0 > config_suspend: cd0 0 > config_suspend: scsibus3 0 > config_suspend: ahci1 0 > config_suspend: pci7 0 > config_suspend: ppb6 0 > config_suspend: pci2 0 > config_suspend: ppb1 0 > config_suspend: pci1 0 > config_suspend: ppb0 0 > config_suspend: pchb1 0 > config_suspend: sd1 0 > config_suspend: scsibus4 0 > config_suspend: nvme1 0 > config_suspend: pci8 0 > config_suspend: ppb7 0 > config_suspend: pchb2 0 > config_suspend: amdgpu0 0 > config_suspend: azalia0 0 > config_suspend: usb2 0 > config_suspend: xhci2 0 > config_suspend: usb3 0 > config_suspend: xhci3 0 > config_suspend: audio0 0 > config_suspend: azalia1 0 > config_suspend: pci9 0 > config_suspend: ppb8 0 > config_suspend: scsibus5 0 > config_suspend: ahci2 0 > config_suspend: scsibus6 0 > config_suspend: ahci3 0 > config_suspend: pci10 0 > config_suspend: ppb9 0 > config_suspend: wskbd0 0 > config_suspend: pckbd0 0 > config_suspend: pckbc0 0 > config_suspend: pchb3 0 > config_suspend: pchb4 0 > config_suspend: pchb5 0 > config_suspend: pchb6 0 > config_suspend: pchb7 0 > config_suspend: pchb8 0 > config_suspend: pchb9 0 > config_suspend: pchb10 0 > config_suspend: pci0 0 > config_suspend: vmm0 0 > config_suspend: scsibus0 0 > /usr/src/sys/kern/subr_suspend.c:198 > /usr/src/sys/kern/subr_suspend.c:217 > /usr/src/sys/kern/subr_suspend.c:220 > /usr/src/sys/kern/subr_suspend.c:222 > /usr/src/sys/kern/subr_suspend.c:226 > config_suspend: acpihpet0 0 > config_suspend: com0 0 > config_suspend: acpibtn0 0 > config_suspend: amdgpio0 0 > config_suspend: tpm0 0 > config_suspend: cpu0 0 > config_suspend: cpu1 0 > config_suspend: cpu2 0 > config_suspend: cpu3 0 > config_suspend: cpu4 0 > config_suspend: cpu5 0 > config_suspend: cpu6 0 > config_suspend: cpu7 0 > config_suspend: ioapic0 0 > config_suspend: ioapic1 0 > config_suspend: pchb0 0 > config_suspend: sd0 0 > config_suspend: scsibus1 0 > config_suspend: nvme0 0 > config_suspend: pci3 0 > config_suspend: ppb2 0 > config_suspend: em0 0 > config_suspend: pci4 0 > config_suspend: ppb3 0 > uhub0 at usb0 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 > addr 1 > config_suspend: usb0 0 > config_suspend: xhci0 0 > uhub1 at usb1 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 > addr 1 > config_suspend: usb1 0 > config_suspend: xhci1 0 > config_suspend: pci5 0 > config_suspend: ppb4 0 > config_suspend: scsibus2 0 > config_suspend: ahci0 0 > config_suspend: pci6 0 > config_suspend: ppb5 0 > config_suspend: cd0 0 > config_suspend: scsibus3 0 > config_suspend: ahci1 0 > config_suspend: pci7 0 > config_suspend: ppb6 0 > config_suspend: pci2 0 > config_suspend: ppb1 0 > config_suspend: pci1 0 > config_suspend: ppb0 0 > config_suspend: pchb1 0 > config_suspend: sd1 0 > config_suspend: scsibus4 0 > config_suspend: nvme1 0 > config_suspend: pci8 0 > config_suspend: ppb7 0 > config_suspend: pchb2 0 > [drm] *ERROR* IB test failed on gfx_low (-60). > [drm] *ERROR* IB test failed on gfx_high (-60). > [drm] *ERROR* ib ring test failed (-60). > config_suspend: drm0 0 > config_suspend: wsdisplay0 0 > config_suspend: amdgpu0 0 > config_suspend: azalia0 0 > uhub2 at usb2 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 > addr 1 > config_suspend: usb2 0 > config_suspend: xhci2 0 > uhub3 at usb3 configuration 1 interface 0 "AMD xHCI root hub" rev 3.00/1.00 > addr 1 > config_suspend: usb3 0 > config_suspend: xhci3 0 > config_suspend: audio0 0 > config_suspend: azalia1 0 > config_suspend: pci9 0 > config_suspend: ppb8 0 > config_suspend: scsibus5 0 > config_suspend: ahci2 0 > config_suspend: scsibus6 0 > config_suspend: ahci3 0 > config_suspend: pci10 0 > config_suspend: ppb9 0 > config_suspend: wskbd0 0 > config_suspend: pckbd0 0 > config_suspend: pckbc0 0 > config_suspend: pchb3 0 > config_suspend: pchb4 0 > config_suspend: pchb5 0 > config_suspend: pchb6 0 > config_suspend: pchb7 0 > config_suspend: pchb8 0 > config_suspend: pchb9 0 > config_suspend: pchb10 0 > config_suspend: pci0 0 > config_suspend: vmm0 0 > config_suspend: scsibus0 0 > /usr/src/sys/kern/subr_suspend.c:228 > /usr/src/sys/kern/subr_suspend.c:241 > /usr/src/sys/kern/subr_suspend.c:244 > /usr/src/sys/kern/subr_suspend.c:247 > /usr/src/sys/kern/subr_suspend.c:249 > /usr/src/sys/kern/subr_suspend.c:252 > wakeup event: PWRBTN > /usr/src/sys/kern/subr_suspend.c:255 > uhub4 at uhub3 port 1 configuration 1 interface 0 "Texas Instruments product > 0x8442" rev 2.10/1.00 addr 2 > uhidev0 at uhub4 port 1 configuration 1 interface 0 "P.I. Engineering PC > Keyboard/Mouse to USB Adapter" rev 1.10/3.10 addr 3 > uhidev0: iclass 3/1 > ukbd0 at uhidev0: 8 variable keys, 6 key codes > wskbd1 at ukbd0 mux 1 > wskbd1: connecting to wsdisplay0 > uhidev1 at uhub4 port 1 configuration 1 interface 1 "P.I. Engineering PC > Keyboard/Mouse to USB Adapter" rev 1.10/3.10 addr 3 > uhidev1: iclass 3/1 > ums0 at uhidev1: 5 buttons, Z dir > wsmouse0 at ums0 mux 0 > uhidev2 at uhub4 port 2 configuration 1 interface 0 "Microsoft Microsoft > 3-Button Mouse with IntelliEye(TM)" rev 1.10/3.00 addr 4 > uhidev2: iclass 3/1 > ums1 at uhidev2: 3 buttons, Z dir > wsmouse1 at ums1 mux 0 > uhidev3 at uhub4 port 3 configuration 1 interface 0 "Yubico Yubico Gnubby > (gnubby1)" rev 2.00/0.97 addr 5 > uhidev3: iclass 3/0 > fido0 at uhidev3: input=64, output=64, feature=0 > uhidev4 at uhub4 port 5 configuration 1 interface 0 "Texas Instruments > product 0x82ff" rev 2.01/1.00 addr 6 > uhidev4: iclass 3/0 > uhid0 at uhidev4: input=255, output=255, feature=2