Hi Benjamin, Can you please take a look at https://www.redhat.com/en/blog/hands-vhost-user-warm-welcome-dpdk and especially the part for 'numa' configuration for the KVM guest?
Xiaodong On Thu, Mar 2, 2023 at 9:24 AM Benjamin Vandendriessche <b...@openccnt.com> wrote: > > Hello, > > I followed the guide here > https://fdio-vpp.readthedocs.io/en/latest/usecases/vhost/vhost.html and > get into an issue as the VM running over libvirt (6.0.0) is not receiving > the traffic from the bare metal machine. > > I'm using Ubuntu 20.04.3 LTS and I run VPP version: > > vpp# show ver > vpp v22.06.1-release built by root on bv at 2023-03-02T14:39:16 > > The XML of the VM: > > <domain type='kvm'> > <name>vm1</name> > <uuid>32dede65-6db7-4db4-9093-f6484ea40836</uuid> > <memory unit='KiB'>1048576</memory> > <currentMemory unit='KiB'>1048576</currentMemory> > <memoryBacking> > <hugepages/> > </memoryBacking> > <vcpu placement='static'>2</vcpu> > <os> > <type arch='x86_64' machine='pc-i440fx-focal'>hvm</type> > <boot dev='hd'/> > </os> > <features> > <acpi/> > <apic/> > </features> > <cpu mode='host-model' check='partial'/> > <clock offset='utc'> > <timer name='rtc' tickpolicy='catchup'/> > <timer name='pit' tickpolicy='delay'/> > <timer name='hpet' present='no'/> > </clock> > <on_poweroff>destroy</on_poweroff> > <on_reboot>restart</on_reboot> > <on_crash>destroy</on_crash> > <pm> > <suspend-to-mem enabled='no'/> > <suspend-to-disk enabled='no'/> > </pm> > <devices> > <emulator>/usr/bin/qemu-system-x86_64</emulator> > <disk type='file' device='disk'> > <driver name='qemu' type='raw'/> > <source file='/home/bv/ubuntu'/> > <target dev='hda' bus='ide'/> > <address type='drive' controller='0' bus='0' target='0' unit='0'/> > </disk> > <disk type='file' device='cdrom'> > <driver name='qemu' type='raw'/> > <target dev='hdb' bus='ide'/> > <readonly/> > <address type='drive' controller='0' bus='0' target='0' unit='1'/> > </disk> > <controller type='usb' index='0' model='ich9-ehci1'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x04' > function='0x7'/> > </controller> > <controller type='usb' index='0' model='ich9-uhci1'> > <master startport='0'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x04' > function='0x0' multifunction='on'/> > </controller> > <controller type='usb' index='0' model='ich9-uhci2'> > <master startport='2'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x04' > function='0x1'/> > </controller> > <controller type='usb' index='0' model='ich9-uhci3'> > <master startport='4'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x04' > function='0x2'/> > </controller> > <controller type='pci' index='0' model='pci-root'/> > <controller type='ide' index='0'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x01' > function='0x1'/> > </controller> > <interface type='network'> > <mac address='52:54:00:c6:99:a2'/> > <source network='default'/> > <model type='e1000'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x03' > function='0x0'/> > </interface> > <interface type='vhostuser'> > <mac address='52:54:00:4c:47:f2'/> > <source type='unix' path='/tmp//vm00.sock' mode='server'/> > <model type='virtio'/> > <driver rx_queue_size='1024' tx_queue_size='1024'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x06' > function='0x0'/> > </interface> > <serial type='pty'> > <target type='isa-serial' port='0'> > <model name='isa-serial'/> > </target> > </serial> > <console type='pty'> > <target type='serial' port='0'/> > </console> > <input type='tablet' bus='usb'> > <address type='usb' bus='0' port='1'/> > </input> > <input type='mouse' bus='ps2'/> > <input type='keyboard' bus='ps2'/> > <graphics type='vnc' port='5901' autoport='no' listen='0.0.0.0'> > <listen type='address' address='0.0.0.0'/> > </graphics> > <video> > <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' > primary='yes'/> > <address type='pci' domain='0x0000' bus='0x00' slot='0x02' > function='0x0'/> > </video> > <memballoon model='virtio'> > <address type='pci' domain='0x0000' bus='0x00' slot='0x05' > function='0x0'/> > </memballoon> > </devices> > </domain> > > I can see the vhost interface has been properly setup: > > vpp# sh vhost-user > Virtio vhost-user interfaces > Global: > coalesce frames 32 time 1e-3 > Number of rx virtqueues in interrupt mode: 0 > Number of GSO interfaces: 0 > Thread 0: Polling queue count 1 > Interface: VirtualEthernet0/0/0 (ifindex 2) > Number of qids 2 > virtio_net_hdr_sz 12 > features mask (0xfffffffbdfffa27c): > features (0x150208000): > VIRTIO_NET_F_MRG_RXBUF (15) > VIRTIO_NET_F_GUEST_ANNOUNCE (21) > VIRTIO_RING_F_INDIRECT_DESC (28) > VHOST_USER_F_PROTOCOL_FEATURES (30) > VIRTIO_F_VERSION_1 (32) > protocol features (0x3) > VHOST_USER_PROTOCOL_F_MQ (0) > VHOST_USER_PROTOCOL_F_LOG_SHMFD (1) > > socket filename /tmp/vm00.sock type client errno "Success" > > rx placement: > thread 0 on vring 1, polling > tx placement > threads 0 on vring 0: lock-free > > Memory regions (total 1) > region fd guest_phys_addr memory_size userspace_addr > mmap_offset mmap_addr > ====== ===== ================== ================== ================== > ================== ================== > 0 192 0x0000000000000000 0x0000000040000000 0x00007fb34be00000 > 0x0000000000000000 0x00007f0fb0000000 > > Virtqueue 0 (TX) > global TX queue index 3 > qsz 1024 last_avail_idx 0 last_used_idx 0 last_kick 0 > avail.flags 0 avail event idx 0 avail.idx 0 used.flags 1 used event idx > 0 used.idx 0 > kickfd 193 callfd 194 errfd -1 > > Virtqueue 1 (RX) > global RX queue index 3 > qsz 1024 last_avail_idx 0 last_used_idx 0 last_kick 0 > avail.flags 0 avail event idx 0 avail.idx 0 used.flags 1 used event idx > 0 used.idx 0 > kickfd 190 callfd 195 errfd -1 > > And all interfaces are UP: > > vpp# sh int > Name Idx State MTU (L3/IP4/IP6/MPLS) > Counter Count > TenGigabitEthernet44/0/0 1 up 9000/0/0/0 rx > packets 754 > rx > bytes 45240 > drops > 144 > VirtualEthernet0/0/0 2 up 9000/0/0/0 tx > packets 610 > tx > bytes 36600 > drops > 610 > > tx-error 144 > local0 0 down 0/0/0/0 > > However I see errors happening with VirtualEthernet0/0/0 Tx: > > vpp# show errors > Count Node Reason > Severity > 784 l2-output L2 output packets > error > 784 l2-learn L2 learn packets > error > 1 l2-learn L2 learn misses > error > 784 l2-input L2 input packets > error > 784 l2-flood L2 flood packets > error > 640 VirtualEthernet0/0/0-tx tx packet drops (no available > descr error > 144 VirtualEthernet0/0/0-output interface is down > error > > I've been trying with multiple VM and got the same result. > > How can I troubleshoot this issue ? > > Thanks, > Best regards, > Benjamin > > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#22653): https://lists.fd.io/g/vpp-dev/message/22653 Mute This Topic: https://lists.fd.io/mt/97343942/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-