Thank you both, that fixed my issue. Note that when using the config from https://fdio-vpp.readthedocs.io/en/latest/usecases/vhost/xmlexample.html#:~:text=%3Ccell%20id%3D%270%27%20cpus%3D%270%27%20memory%3D%27262144%27%20unit%3D%27KiB%27%20memAccess%3D%27shared%27/%3E it results in a kernel panic when the VM boots. I noticed that libvirt is actually aligning the <numa><cell id='0' cpus='0' memory='262144' unit='KiB' memAccess='shared'/></numa> to the <memory unit='KiB'>262144</memory> and <currentMemory unit='KiB'>262144</currentMemory> config. Hence using the parameters provided from the doc as such doesn't work.
Using: <memory unit='KiB'>4194304</memory> <currentMemory unit='KiB'>4194304</currentMemory> <numa><cell id='0' cpus='0' memory='4194304' unit='KiB' memAccess='shared'/></numa> allowed the VM to start and traffic passing through. Pretty sure that some tuning can be done using the documentation provided by Xiaodong. Thanks again Benjamin The content of this email is confidential and intended for the recipient specified in the message only. It is strictly forbidden to share any part of this message with any third party, without a written consent of the sender. If you received this message by mistake, please reply to this message and follow with its deletion, so that we can ensure such a mistake does not occur in the future. On Thu, Mar 2, 2023 at 9:06 PM steven luong via lists.fd.io <sluong= cisco....@lists.fd.io> wrote: > It is likely that you are missing memAccess=’shared’ > > > > > https://fdio-vpp.readthedocs.io/en/latest/usecases/vhost/xmlexample.html#:~:text=%3Ccell%20id%3D%270%27%20cpus%3D%270%27%20memory%3D%27262144%27%20unit%3D%27KiB%27%20memAccess%3D%27shared%27/%3E > > > > *From: *<vpp-dev@lists.fd.io> on behalf of Benjamin Vandendriessche < > b...@openccnt.com> > *Reply-To: *"vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io> > *Date: *Thursday, March 2, 2023 at 9:24 AM > *To: *"vpp-dev@lists.fd.io" <vpp-dev@lists.fd.io> > *Subject: *[vpp-dev] Vhost-user interface not working > > > > 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 (#22660): https://lists.fd.io/g/vpp-dev/message/22660 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] -=-=-=-=-=-=-=-=-=-=-=-