Download raw body.
vio(4): recover from missed RX interrupts in vio_rxtick
On Thu, Apr 16, 2026 at 11:16:55PM +0200, Stefan Fritsch wrote:
> From: Stefan Fritsch <sf@sfritsch.de>
> To: Renaud Allard <renaud@allard.it>
> cc: tech@openbsd.org
> Subject: Re: vio(4): recover from missed RX interrupts in vio_rxtick
> Date: Thu, 16 Apr 2026 23:16:55 +0200 (CEST)
>
> Hi,
>
> sorry, I missed this mail in February.
>
> On Sun, 22 Feb 2026, Renaud Allard wrote:
> > I've been running an OpenBSD 7.8 VM on Oracle Cloud (arm64, KVM) with a
>
> I would be interested in a dmesg from this VM with a kernel with
> VIRTIO_DEBUG defined to 1.
>
Here it is:
OpenBSD 7.9 (GENERIC) #0: Fri Apr 17 11:01:32 CEST 2026
fuzz@arwen.arnor.org:/home/fuzz/kbuild/sys/arch/arm64/compile/GENERIC
real mem = 6436032512 (6137MB)
avail mem = 6126092288 (5842MB)
random: good seed from bootblocks
mainbus0 at root: ACPI
psci0 at mainbus0: PSCI 1.0, SMCCC 1.1
efi0 at mainbus0: UEFI 2.7
efi0: EDK II rev 0x10000
smbios0 at efi0: SMBIOS 3.0.0
smbios0:
smbios0: QEMU KVM Virtual Machine
cpu0 at mainbus0 mpidr 0: ARM Neoverse N1 r3p1
cpu0: 64KB 64b/line 4-way L1 PIPT I-cache, 64KB 64b/line 4-way L1 D-cache
cpu0: 1024KB 64b/line 8-way L2 cache
cpu0: DP,RDM,Atomic,CRC32,SHA2,SHA1,AES+PMULL,LRCPC,DPB,ASID16,PAN+ATS1E1,LO,HPDS,VH,HAFDBS,CSV3,CSV2,RAS,AdvSIMD+HP,FP+HP,SSBS+MSR
apm0 at mainbus0
agintc0 at mainbus0 shift 4:4 nirq 288 nredist 1: "interrupt-controller"
agintcmsi0 at agintc0
agtimer0 at mainbus0: 25000 kHz
acpi0 at mainbus0: ACPI 6.0
acpi0: sleep states
acpi0: tables DSDT FACP APIC GTDT MCFG SPCR DBG2 IORT BGRT
acpi0: wakeup devices
acpimcfg0 at acpi0
acpimcfg0: addr 0x4010000000, bus 0-255
acpiiort0 at acpi0
acpicpu0 at acpi0 C000
pluart0 at acpi0 COM0 addr 0x9000000/0x1000 irq 33
pluart0: console
"LNRO0015" at acpi0 not configured
"LNRO0015" at acpi0 not configured
"QEMU0002" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
"LNRO0005" at acpi0 not configured
acpipci0 at acpi0 PCI0
pci0 at acpipci0
"Red Hat Host" rev 0x00 at pci0 dev 0 function 0 not configured
virtio0 at pci0 dev 1 function 0 "Qumranet Virtio 1.x GPU" rev 0x01
virtio_pci_dump_caps: cfgoff 0x84 len 0x14 type 0x5 bar 0: off 0 len 0
virtio_pci_dump_caps: cfgoff 0x70 len 0x14 type 0x2 bar 0x4: off 0x3000 len 0x1000
virtio_pci_dump_caps: cfgoff 0x60 len 0x10 type 0x4 bar 0x4: off 0x2000 len 0x1000
virtio_pci_dump_caps: cfgoff 0x50 len 0x10 type 0x3 bar 0x4: off 0x1000 len 0x1000
virtio_pci_dump_caps: cfgoff 0x40 len 0x10 type 0x1 bar 0x4: off 0 len 0x1000
viogpu0 at virtio0 -EDID +RingIndirectDesc -RingEventIdx +Version1
allocated 8192 byte for virtqueue 0 for control, size 64
allocated 8192 byte for virtqueue 1 for cursor, size 16
virtio0: msix per-VQ
viogpu_attach_backing: backing addr 0x43ab0000 length 4096000
: 1280x800, 32bpp
wsdisplay0 at viogpu0 mux 1: console (std, vt100 emulation)
wsdisplay0: screen 1-5 added (std, vt100 emulation)
xhci0 at pci0 dev 2 function 0 "Red Hat xHCI" rev 0x01: msix, xHCI 1.0
usb0 at xhci0: USB revision 3.0
uhub0 at usb0 configuration 1 interface 0 "Red Hat xHCI root hub" rev 3.00/1.00 addr 1
ppb0 at pci0 dev 3 function 0 "Red Hat PCIE" rev 0x00: irq 38
pci1 at ppb0 bus 1
ppb1 at pci0 dev 3 function 1 "Red Hat PCIE" rev 0x00: irq 38
pci2 at ppb1 bus 2
ppb2 at pci0 dev 3 function 2 "Red Hat PCIE" rev 0x00: irq 38
pci3 at ppb2 bus 3
ppb3 at pci0 dev 3 function 3 "Red Hat PCIE" rev 0x00: irq 38
pci4 at ppb3 bus 4
ppb4 at pci0 dev 3 function 4 "Red Hat PCIE" rev 0x00: irq 38
pci5 at ppb4 bus 5
ppb5 at pci0 dev 3 function 5 "Red Hat PCIE" rev 0x00: irq 38
pci6 at ppb5 bus 6
ppb6 at pci0 dev 3 function 6 "Red Hat PCIE" rev 0x00: irq 38
pci7 at ppb6 bus 7
ppb7 at pci0 dev 3 function 7 "Red Hat PCIE" rev 0x00: irq 38
pci8 at ppb7 bus 8
ppb8 at pci0 dev 4 function 0 "Red Hat PCIE" rev 0x00: irq 35
pci9 at ppb8 bus 9
ppb9 at pci0 dev 4 function 1 "Red Hat PCIE" rev 0x00: irq 35
pci10 at ppb9 bus 10
ppb10 at pci0 dev 4 function 2 "Red Hat PCIE" rev 0x00: irq 35
pci11 at ppb10 bus 11
ppb11 at pci0 dev 4 function 3 "Red Hat PCIE" rev 0x00: irq 35
pci12 at ppb11 bus 12
ppb12 at pci0 dev 4 function 4 "Red Hat PCIE" rev 0x00: irq 35
pci13 at ppb12 bus 13
ppb13 at pci0 dev 4 function 5 "Red Hat PCIE" rev 0x00: irq 35
pci14 at ppb13 bus 14
ppb14 at pci0 dev 4 function 6 "Red Hat PCIE" rev 0x00: irq 35
pci15 at ppb14 bus 15
ppb15 at pci0 dev 4 function 7 "Red Hat PCIE" rev 0x00: irq 35
pci16 at ppb15 bus 16
ppb16 at pci0 dev 5 function 0 "Red Hat PCIE" rev 0x00: irq 36
pci17 at ppb16 bus 17
ppb17 at pci0 dev 5 function 1 "Red Hat PCIE" rev 0x00: irq 36
pci18 at ppb17 bus 18
ppb18 at pci0 dev 5 function 2 "Red Hat PCIE" rev 0x00: irq 36
pci19 at ppb18 bus 19
ppb19 at pci0 dev 5 function 3 "Red Hat PCIE" rev 0x00: irq 36
pci20 at ppb19 bus 20
ppb20 at pci0 dev 5 function 4 "Red Hat PCIE" rev 0x00: irq 36
pci21 at ppb20 bus 21
ppb21 at pci0 dev 5 function 5 "Red Hat PCIE" rev 0x00: irq 36
pci22 at ppb21 bus 22
ppb22 at pci0 dev 5 function 6 "Red Hat PCIE" rev 0x00: irq 36
pci23 at ppb22 bus 23
ppb23 at pci0 dev 5 function 7 "Red Hat PCIE" rev 0x00: irq 36
pci24 at ppb23 bus 24
virtio1 at pci24 dev 0 function 0 "Qumranet Virtio 1.x SCSI" rev 0x01
virtio_pci_dump_caps: cfgoff 0xc8 len 0x14 type 0x5 bar 0: off 0 len 0
virtio_pci_dump_caps: cfgoff 0xb4 len 0x14 type 0x2 bar 0x4: off 0x3000 len 0x1000
virtio_pci_dump_caps: cfgoff 0xa4 len 0x10 type 0x4 bar 0x4: off 0x2000 len 0x1000
virtio_pci_dump_caps: cfgoff 0x94 len 0x10 type 0x3 bar 0x4: off 0x1000 len 0x1000
virtio_pci_dump_caps: cfgoff 0x84 len 0x10 type 0x1 bar 0x4: off 0 len 0x1000
virtio_pci_dump_caps: cfgoff 0x7c len 0x3 type 0 bar 0: off 0x1107c09 len 0x4
virtio_pci_dump_caps: cfgoff 0x40 len 0x2 type 0 bar 0: off 0 len 0x411
vioscsi0 at virtio1
allocated 47104 byte for virtqueue 0 for control, size 128
using 38912 byte (2432 entries) indirect descriptors
allocated 47104 byte for virtqueue 1 for event, size 128
using 38912 byte (2432 entries) indirect descriptors
allocated 47104 byte for virtqueue 2 for request, size 128
using 38912 byte (2432 entries) indirect descriptors
: qsize 128
virtio1: msix per-VQ
scsibus0 at vioscsi0: 255 targets
uk0 at scsibus0 targ 0 lun 0: <QEMU, QEMU TARGET, 2.5>
sd0 at scsibus0 targ 0 lun 1: <ORACLE, BlockVolume, 1.0> naa.6051b5d08c7e4bdf864318d1b5f2d1a9
sd0: 47694MB, 512 bytes/sector, 97677312 sectors, thin
virtio2 at pci0 dev 6 function 0 "Qumranet Virtio 1.x Network" rev 0x01
virtio_pci_dump_caps: cfgoff 0x84 len 0x14 type 0x5 bar 0: off 0 len 0
virtio_pci_dump_caps: cfgoff 0x70 len 0x14 type 0x2 bar 0x4: off 0x3000 len 0x1000
virtio_pci_dump_caps: cfgoff 0x60 len 0x10 type 0x4 bar 0x4: off 0x2000 len 0x1000
virtio_pci_dump_caps: cfgoff 0x50 len 0x10 type 0x3 bar 0x4: off 0x1000 len 0x1000
virtio_pci_dump_caps: cfgoff 0x40 len 0x10 type 0x1 bar 0x4: off 0 len 0x1000
vio0 at virtio2 +CSum +GuestCSum +CtrlGuestOffl +MAC +GuestTSO4 +GuestTSO6 -GuestECN -GuestUFO +HostTSO4 +HostTSO6 -HostECN -HostUFO +MrgRXBuf +Status +CtrlVQ +CtrlRX -CtrlVLAN -CtrlRXExtra -GuestAnnounce -CtrlMAC +RingIndirectDesc +RingEventIdx +Version1: 1 queue, address 02:00:17:00:93:de
allocated 20480 byte for virtqueue 0 for rx, size 256
using 8192 byte (512 entries) indirect descriptors
allocated 147456 byte for virtqueue 1 for tx, size 256
using 135168 byte (8448 entries) indirect descriptors
0: q 0xffffff8011209600 rx 0xffffff80112a2800 tx 0xffffff80112a28b0
allocated 8192 byte for virtqueue 2 for control, size 64
virtio2: msix per-VQ
acpige0 at acpi0 irq 41
acpibtn0 at acpi0: PWRB
uhidev0 at uhub0 port 5 configuration 1 interface 0 "QEMU QEMU USB Tablet" rev 2.00/0.00 addr 2
uhidev0: iclass 3/0
ums0 at uhidev0: 3 buttons, Z dir
wsmouse0 at ums0 mux 0
uhidev1 at uhub0 port 6 configuration 1 interface 0 "QEMU QEMU USB Keyboard" rev 2.00/0.00 addr 3
uhidev1: iclass 3/1
ukbd0 at uhidev1: 8 variable keys, 6 key codes
wskbd0 at ukbd0 mux 1
wskbd0: connecting to wsdisplay0
uhidev2 at uhub0 port 7 configuration 1 interface 0 "QEMU QEMU USB Mouse" rev 2.00/0.00 addr 4
uhidev2: iclass 3/1
ums1 at uhidev2: 5 buttons, Z dir
wsmouse1 at ums1 mux 0
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
scsibus2 at softraid0: 256 targets
root on sd0a (898e7c99458a73ab.a) swap on sd0b dump on sd0b
vio_ctrl_rx: cmd 1 0: 0
vio_ctrl_rx: cmd 0 0: 0
vio_ctrl_guest_offloads: offload features 0x182: 0
vio_ctrl_rx: cmd 1 0: 0
vio_ctrl_rx: cmd 0 0: 0
vio(4): recover from missed RX interrupts in vio_rxtick