On Tue, Dec 06, 2022 at 11:02:51AM +0100, Arrigo Triulzi wrote: > >Synopsis: VMM vcpu_exit_eptviolation and repeated vionet_enq_rx buffer > >issues > >Category: system amd64 > >Environment: > System : OpenBSD 7.2 > Details : OpenBSD 7.2 (GENERIC.MP) #2: Thu Nov 24 23:54:39 MST 2022 > > r...@syspatch-72-amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP > > Architecture: OpenBSD.amd64 > Machine : amd64 > >Description: > > We appear to have a problem with a VMM installation on OpenBSD 7.2. > > The logs show multiple occurrences of the following: > > Dec 6 08:12:12 vm-1 vmd[97811]: vcpu_exit_eptviolation: fault already handled > Dec 6 08:12:12 vm-1 last message repeated 5 times > Dec 6 08:12:12 vm-1 vmd[97811]: vionet_enq_rx: insufficient available buffer > capacity, dropping packet. > Dec 6 08:12:38 vm-1 last message repeated 26 times > Dec 6 08:12:38 vm-1 vmd[57759]: vionet_enq_rx: insufficient available buffer > capacity, dropping packet. > Dec 6 08:12:39 vm-1 vmd[97811]: vionet_enq_rx: insufficient available buffer > capacity, dropping packet. > Dec 6 08:13:10 vm-1 last message repeated 31 times > Dec 6 08:15:11 vm-1 last message repeated 119 times > Dec 6 08:25:12 vm-1 last message repeated 610 times > Dec 6 08:32:29 vm-1 last message repeated 441 times >
As dv@ pointed out in a previous mail, the eptviolation exit message can be ignored (and as he points out, should probably be removed or suppressed since it's not super useful). The vionet messages have been there forever; if these are new, then its more likely due to some change in the rate of packets being received by the VMs than something that changed in vmd (since we haven't made changes in that area in ages). All this means is that the virtio ring filled up with Rx packets before the VM could process them. Presently, the size of the vmd vionet ring is 256 packets. You could experiment with raising that (it's in src/usr.sbin/vmd/virtio.h) to a higher power of 2 and see if that helps. dlg@ has given dv@ and I a diff that might help here by offloading virtio processing to a taskq but we are still getting it working. -ml