Hi,

On Thu, 24 Sep 2026, Mark Kettenis wrote:

> > Date: Wed, 23 Sep 2026 15:36:05 -0500 (CDT)
> > From: [email protected]
> 
> Thanks, I can reproduce this on a Macbook Air M5.
> 
> It hangs when trying to bring down the vio0 network interface.  I've
> narrowed it down to the splx(s) call at the end of vio_ioctl().  Feels
> like an interrupt storm triggered by bringing the interface down.
> 
> Stefan, any ideas?

Not really. You could try the following diff. I think the issue fixed by 
it could cause a hang during ifconfig down, but I don't see how that hang 
would be at the splx() call.

Cheers,
Stefan

diff --git a/sys/dev/pv/if_vio.c b/sys/dev/pv/if_vio.c
index 8942b02857a..5a37f4b18f6 100644
--- a/sys/dev/pv/if_vio.c
+++ b/sys/dev/pv/if_vio.c
@@ -1104,7 +1104,11 @@ vio_stop(struct ifnet *ifp, int disable)
                mtx_leave(&sc->sc_q[i].viq_rxmtx);
        }
 
-       if (virtio_has_feature(vsc, VIRTIO_NET_F_CTRL_VQ))
+       /*
+        * We cannot use virtio_has_feature() between virtio_reset and
+        * virtio_reinit_start()
+        */
+       if (sc->sc_ctl_vq != NULL)
                vio_ctrl_wakeup(sc, RESET);
        vio_tx_drain(sc);
        if (disable)
@@ -1118,10 +1122,10 @@ vio_stop(struct ifnet *ifp, int disable)
        if (virtio_has_feature(vsc, VIRTIO_NET_F_CTRL_VQ))
                virtio_start_vq_intr(vsc, sc->sc_ctl_vq);
        virtio_reinit_end(vsc);
-       if (virtio_has_feature(vsc, VIRTIO_NET_F_MQ))
-               vio_ctrl_mq(sc);
        if (virtio_has_feature(vsc, VIRTIO_NET_F_CTRL_VQ))
                vio_ctrl_wakeup(sc, FREE);
+       if (virtio_has_feature(vsc, VIRTIO_NET_F_MQ))
+               vio_ctrl_mq(sc);
 }
 
 static inline uint16_t

> > >Synopsis:  openbsd VM in UTM fails to reboot or shutdown when running 
> > >under apple virtualization platform
> > >Category:  system
> > >Environment:
> >     System      : OpenBSD 8.0
> >     Details     : OpenBSD 8.0-beta (GENERIC.MP) #106: Wed Sep 23 06:08:02 
> > MDT 2026
> >                      
> > [email protected]:/usr/src/sys/arch/arm64/compile/GENERIC.MP
> > 
> >     Architecture: OpenBSD.arm64
> >     Machine     : arm64
> > >Description:
> >     when attempting to reboot or shutdown an openbsd VM in UTM, using Apple 
> > Virtualization Platform, the system
> >     will hang on "syncing disks...done" and go crazy with the CPU usage. 
> > only way to get the system to go down
> >     or reboot is to force it in the hypervisor.
> > 
> > >How-To-Repeat:
> >     Download openbsd (7.9 or -current snapshot both have the same issue)
> >     install openbsd in UTM by selecting Virtualize > Linux > Use Apple 
> > Virtualization (any CPU/RAM/Disk settings)
> >     attempt to reboot or shutdown after finishing installer
> >     forcing reboot or shutdown in hypervisor will bring you out, and let 
> > you boot into the system after install.
> >     attempting to reboot or shutdown here leads to the same series of 
> > events.
> >     
> > >Fix:
> >     unknown; wanted to make bug known as this hardware is brand new, and i 
> > am unsure if it is hardware or virtualization platform specific
> > 
> > 
> > dmesg:
> > OpenBSD 8.0-beta (GENERIC.MP) #106: Wed Sep 23 06:08:02 MDT 2026
> >     [email protected]:/usr/src/sys/arch/arm64/compile/GENERIC.MP
> > real mem  = 4292337664 (4093MB)
> > avail mem = 4069404672 (3880MB)
> > random: good seed from bootblocks
> > mainbus0 at root: ACPI
> > psci0 at mainbus0: PSCI 1.1, SMCCC 1.1
> > efi0 at mainbus0: UEFI 2.7
> > efi0: EDK II rev 0x10000
> > smbios0 at efi0: SMBIOS 3.3.0
> > smbios0: vendor Apple Inc. version "2164.0.0.0.0" date 08/08/2026
> > smbios0: Apple Inc. Apple Virtualization Generic Platform
> > cpu0 at mainbus0 mpidr 0: Unknown, MIDR 0x610f0000
> > cpu0: 192KB 64b/line 6-way L1 PIPT I-cache, 128KB 64b/line 8-way L1 D-cache
> > cpu0: 1536KB 64b/line 12-way L2 cache
> > cpu0: 20480KB 128b/line 20-way L3 cache
> > cpu0: 
> > TLBIOS+IRANGE,TS+AXFLAG,FHM,DP,SHA3,RDM,Atomic,CRC32,SHA2+SHA512,SHA1,AES+PMULL,I8MM,BF16+EBF,SPECRES,SB,FRINTTS,GPI,LRCPC+LDAPUR,FCMA,JSCVT,API+EPAC2+FPAC+COMBINED,DPB+DCCVADP,RPRES,ASID16,AFP,SpecSEI,PAN+ATS1E1+EPAN,LO,HPDS,IDS,AT,CSV3,CSV2,DIT,RASv1p1,AdvSIMD+HP,FP+HP,BT
> > cpu1 at mainbus0 mpidr 1: Unknown, MIDR 0x610f0000
> > cpu1: 192KB 64b/line 6-way L1 PIPT I-cache, 128KB 64b/line 8-way L1 D-cache
> > cpu1: 1536KB 64b/line 12-way L2 cache
> > cpu1: 20480KB 128b/line 20-way L3 cache
> > cpu2 at mainbus0 mpidr 2: Unknown, MIDR 0x610f0000
> > cpu2: 128KB 64b/line 4-way L1 PIPT I-cache, 64KB 64b/line 8-way L1 D-cache
> > cpu2: 20480KB 128b/line 20-way L2 cache
> > cpu3 at mainbus0 mpidr 3: Unknown, MIDR 0x610f0000
> > cpu3: 128KB 64b/line 4-way L1 PIPT I-cache, 64KB 64b/line 8-way L1 D-cache
> > cpu3: 20480KB 128b/line 20-way L2 cache
> > cpu4 at mainbus0 mpidr 4: Unknown, MIDR 0x610f0000
> > cpu4: 128KB 64b/line 4-way L1 PIPT I-cache, 64KB 64b/line 8-way L1 D-cache
> > cpu4: 20480KB 128b/line 20-way L2 cache
> > cpu5 at mainbus0 mpidr 5: Unknown, MIDR 0x610f0000
> > cpu5: 128KB 64b/line 4-way L1 PIPT I-cache, 64KB 64b/line 8-way L1 D-cache
> > cpu5: 20480KB 128b/line 20-way L2 cache
> > cpu6 at mainbus0 mpidr 6: Unknown, MIDR 0x610f0000
> > cpu6: 160KB 64b/line 5-way L1 PIPT I-cache, 96KB 64b/line 6-way L1 D-cache
> > cpu6: 8192KB 128b/line 16-way L2 cache
> > cpu7 at mainbus0 mpidr 7: Unknown, MIDR 0x610f0000
> > cpu7: 160KB 64b/line 5-way L1 PIPT I-cache, 96KB 64b/line 6-way L1 D-cache
> > cpu7: 8192KB 128b/line 16-way L2 cache
> > apm0 at mainbus0
> > agintc0 at mainbus0 shift 4:4 nirq 1024 nredist 8 ipi 0: 
> > "interrupt-controller"
> > ampintcmsi0 at agintc0: nspi 128
> > agtimer0 at mainbus0: 24000 kHz
> > acpi0 at mainbus0: ACPI 6.3
> > acpi0: sleep states
> > acpi0: tables DSDT FACP GTDT APIC MCFG
> > acpi0: wakeup devices
> > acpimcfg0 at acpi0
> > acpimcfg0: addr 0x40000000, bus 0-255
> > acpicpu0 at acpi0 CP00
> > acpicpu1 at acpi0 CP01
> > acpicpu2 at acpi0 CP02
> > acpicpu3 at acpi0 CP03
> > acpicpu4 at acpi0 CP04
> > acpicpu5 at acpi0 CP05
> > acpicpu6 at acpi0 CP06
> > acpicpu7 at acpi0 CP07
> > acpibtn0 at acpi0: PWRB
> > "ARMH0061" at acpi0 not configured
> > acpipci0 at acpi0 PCI0
> > pci0 at acpipci0
> > vendor "Apple", unknown product 0x1a05 (class bridge subclass host, rev 
> > 0x00) at pci0 dev 0 function 0 not configured
> > virtio0 at pci0 dev 1 function 0 "Qumranet Virtio 1.x Network" rev 0x01
> > vio0 at virtio0: 1 queue, address 8a:e8:2e:0f:66:7c, mtu 1500
> > virtio0: msix per-VQ
> > virtio1 at pci0 dev 5 function 0 "Qumranet Virtio 1.x Storage" rev 0x01
> > vioblk0 at virtio1
> > virtio1: msix per-VQ
> > scsibus0 at vioblk0: 1 targets
> > sd0 at scsibus0 targ 0 lun 0: <VirtIO, Block Device, >
> > sd0: 40960MB, 512 bytes/sector, 83886080 sectors
> > virtio2 at pci0 dev 6 function 0 "Qumranet Virtio 1.x GPU" rev 0x01
> > viogpu0 at virtio2virtio2: msix per-VQ
> > : 1920x1200, 32bpp
> > wsdisplay0 at viogpu0 mux 1: console (std, vt100 emulation)
> > wsdisplay0: screen 1-5 added (std, vt100 emulation)
> > virtio3 at pci0 dev 7 function 0 vendor "Qumranet", unknown product 0x1059 
> > rev 0x01
> > virtio3: no matching child driver; not configured
> > virtio4 at pci0 dev 8 function 0 vendor "Qumranet", unknown product 0x1059 
> > rev 0x01
> > virtio4: no matching child driver; not configured
> > virtio5 at pci0 dev 9 function 0 "Qumranet Virtio 1.x RNG" rev 0x01
> > viornd0 at virtio5
> > virtio5: msix per-VQ
> > virtio6 at pci0 dev 10 function 0 "Qumranet Virtio 1.x Memory Balloon" rev 
> > 0x01
> > viomb0 at virtio6
> > virtio6: msix per-VQ
> > xhci0 at pci0 dev 11 function 0 vendor "Apple", unknown product 0x1a06 rev 
> > 0x00: msix, xHCI 1.10
> > usb0 at xhci0: USB revision 3.0
> > uhub0 at usb0 configuration 1 interface 0 "Apple xHCI root hub" rev 
> > 3.00/1.00 addr 1
> > xhci1 at pci0 dev 12 function 0 vendor "Apple", unknown product 0x1a06 rev 
> > 0x00: msix, xHCI 1.10
> > usb1 at xhci1: USB revision 3.0
> > uhub1 at usb1 configuration 1 interface 0 "Apple xHCI root hub" rev 
> > 3.00/1.00 addr 1
> > uhidev0 at uhub0 port 9 configuration 1 interface 0 "Apple Inc. Virtual USB 
> > Keyboard" rev 2.00/0.00 addr 2
> > uhidev0: iclass 3/1
> > ukbd0 at uhidev0: 8 variable keys, 6 key codes
> > usbd_free_xfer: xfer=0xffffff800cc23690 not free
> > usbd_free_xfer: xfer=0xffffff800cc23690 not free
> > wskbd0 at ukbd0 mux 1
> > wskbd0: connecting to wsdisplay0
> > uhidev1 at uhub0 port 10 configuration 1 interface 0 "Apple Inc. Virtual 
> > USB Digitizer" rev 2.00/0.00 addr 3
> > uhidev1: iclass 3/0, 3 report ids
> > ums0 at uhidev1: 3 buttons, Z and W dir
> > wsmouse0 at ums0 mux 0
> > umass0 at uhub1 port 1 configuration 1 interface 0 "Apple Inc. Virtual USB 
> > Mass Storage Device" rev 3.00/0.00 addr 2
> > umass0: using SCSI over Bulk-Only
> > scsibus1 at umass0: 2 targets, initiator 0
> > sd1 at scsibus1 targ 1 lun 0: <Apple, Virtual Disk, 1>
> > sd1: 700MB, 512 bytes/sector, 1433600 sectors
> > vscsi0 at root
> > scsibus2 at vscsi0: 256 targets
> > softraid0 at root
> > scsibus3 at softraid0: 256 targets
> > root on sd0a (3c39c0739b5d33f6.a) swap on sd0b dump on sd0b
> > 
> > usbdevs:
> > Controller /dev/usb0:
> > addr 01: 106b:0000 Apple, xHCI root hub
> >      super speed, self powered, config 1, rev 1.00
> >      driver: uhub0
> > addr 02: 05ac:8105 Apple Inc., Virtual USB Keyboard
> >      full speed, power 500 mA, config 1, rev 0.00
> >      driver: uhidev0
> > addr 03: 05ac:8106 Apple Inc., Virtual USB Digitizer
> >      full speed, power 500 mA, config 1, rev 0.00
> >      driver: uhidev1
> > Controller /dev/usb1:
> > addr 01: 106b:0000 Apple, xHCI root hub
> >      super speed, self powered, config 1, rev 1.00
> >      driver: uhub1
> > addr 02: 05ac:1503 Apple Inc., Virtual USB Mass Storage Device
> >      super speed, power 200 mA, config 1, rev 0.00
> >      driver: umass0
> > 
> > 
> 

Reply via email to