What were you trying to do that didn't work?
In the scope of OVS-DPDK on OCP PoC (FDP-1286), we need to run a DPDK application as
workload using Virtio-user PMD with Vhost-vDPA.
The Vhost-vDPA backend is attached to a VDUSE device exposed by OVS-DPDK.
With DPDK v24.11, we notice the device fails to initialize (see logs below)
What is the impact of this issue to you?
We cannot test our usecase using DPDK v24.11
Please provide the package NVR for which the bug is seen:
dpdk-24.11.1-1.el9
How reproducible is this bug?:
100%
Steps to reproduce
- Setup OVS-DPDK for VDUSE and VMs as described in https://gitlab.com/mcoquelin/vduse-doc/
- Instead of using VMs, install DPDK and use this command:
dpdk-testpmd -m 1024 --no-pci --vdev 'virtio_user0,path=/dev/vhost-vdpa-0,queues=1,queue_size=1024' --log-level eal:debug -- --forward-mode=txonly --txq=1 --rxq=1 -i
- start forwarding, no packets flow to OVS, and error logs appear in ovs-vswitchd.log
Expected results
Device initializes properly, packets flow
Actual results
2025-08-04T12:06:28.198Z|00094|netdev_dpdk|INFO|vHost User device 'vduse1' created in 'client' mode, using client socket '/dev/vduse/vduse1' 2025-08-04T12:06:28.198Z|00095|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse1) Setting max queue pairs to 1 2025-08-04T12:06:28.198Z|00096|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse1) VDUSE max queue pairs: 1 2025-08-04T12:06:28.198Z|00097|dpif_netdev|INFO|Performing pmd to rx queue assignment using cycles algorithm. 2025-08-04T12:06:28.198Z|00098|dpif_netdev|INFO|Core 88 on numa node 0 assigned port 'vduse0' rx queue 0 (measured processing cycles 0). 2025-08-04T12:06:28.198Z|00099|dpif_netdev|INFO|Core 88 on numa node 0 assigned port 'vduse1' rx queue 0 (measured processing cycles 0). 2025-08-04T12:06:28.198Z|00100|bridge|INFO|bridge br0: added interface vduse1 on port 3 2025-08-04T12:07:39.893Z|00001|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) New request: VDUSE_SET_STATUS (1) 2025-08-04T12:07:39.893Z|00002|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) new status: 0x00000000 2025-08-04T12:07:39.893Z|00003|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Request VDUSE_SET_STATUS (1) handled successfully 2025-08-04T12:07:39.893Z|00004|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) New request: VDUSE_SET_STATUS (1) 2025-08-04T12:07:39.893Z|00005|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) new status: 0x00000000 2025-08-04T12:07:39.893Z|00006|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Request VDUSE_SET_STATUS (1) handled successfully 2025-08-04T12:07:39.893Z|00007|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) New request: VDUSE_SET_STATUS (1) 2025-08-04T12:07:39.893Z|00008|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) new status: 0x00000001 2025-08-04T12:07:39.893Z|00009|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Request VDUSE_SET_STATUS (1) handled successfully 2025-08-04T12:07:39.893Z|00010|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) New request: VDUSE_SET_STATUS (1) 2025-08-04T12:07:39.893Z|00011|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) new status: 0x00000003 2025-08-04T12:07:39.893Z|00012|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Request VDUSE_SET_STATUS (1) handled successfully 2025-08-04T12:07:39.893Z|00013|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) New request: VDUSE_SET_STATUS (1) 2025-08-04T12:07:39.893Z|00014|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) new status: 0x0000000b 2025-08-04T12:07:39.893Z|00015|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Request VDUSE_SET_STATUS (1) handled successfully 2025-08-04T12:07:39.893Z|00016|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) New request: VDUSE_UPDATE_IOTLB (2) 2025-08-04T12:07:39.893Z|00017|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) IOVA range: 0 - ffffffffffffffff 2025-08-04T12:07:39.893Z|00018|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Request VDUSE_UPDATE_IOTLB (2) handled successfully 2025-08-04T12:07:39.893Z|00019|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) New request: VDUSE_SET_STATUS (1) 2025-08-04T12:07:39.893Z|00020|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) new status: 0x0000000f 2025-08-04T12:07:39.893Z|00021|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Starting device... 2025-08-04T12:07:39.893Z|00022|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Negotiated Virtio features: 0xb10008000 2025-08-04T12:07:39.893Z|00023|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) VQ 0 info: 2025-08-04T12:07:39.893Z|00024|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) num: 1024 2025-08-04T12:07:39.893Z|00025|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) desc_addr: 1cfffc0000 2025-08-04T12:07:39.893Z|00026|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) driver_addr: 1cfffc4000 2025-08-04T12:07:39.893Z|00027|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) device_addr: 17ffc5000 2025-08-04T12:07:39.893Z|00028|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) avail_idx: 0 2025-08-04T12:07:39.893Z|00029|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) used_idx: 0 2025-08-04T12:07:39.893Z|00030|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) ready: 1 2025-08-04T12:07:39.893Z|00031|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) kick fd: 118 2025-08-04T12:07:39.893Z|00032|dpdk|ERR|VHOST_CONFIG: (/dev/vduse/vduse0) Failed to get IOTLB entry for 0x17ffc5000 2025-08-04T12:07:39.893Z|00033|dpdk|ERR|VHOST_DATA: (/dev/vduse/vduse0) IOTLB miss req failed for IOVA 0x17ffc5000 2025-08-04T12:07:39.893Z|00034|dpdk|ERR|VHOST_CONFIG: (/dev/vduse/vduse0) Failed to translate vring 0 addresses 2025-08-04T12:07:39.893Z|00035|dpdk|ERR|VHOST_CONFIG: (/dev/vduse/vduse0) Failed to disable guest notifications on vring 0 2025-08-04T12:07:39.893Z|00036|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) VQ 1 info: 2025-08-04T12:07:39.893Z|00037|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) num: 1024 2025-08-04T12:07:39.893Z|00038|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) desc_addr: 1cfffb3000 2025-08-04T12:07:39.893Z|00039|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) driver_addr: 1cfffb7000 2025-08-04T12:07:39.893Z|00040|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) device_addr: 17ffb8000 2025-08-04T12:07:39.893Z|00041|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) avail_idx: 0 2025-08-04T12:07:39.893Z|00042|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) used_idx: 0 2025-08-04T12:07:39.893Z|00043|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) ready: 1 2025-08-04T12:07:39.893Z|00044|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) kick fd: 119 2025-08-04T12:07:39.893Z|00045|dpdk|ERR|VHOST_CONFIG: (/dev/vduse/vduse0) Failed to get IOTLB entry for 0x17ffb8000 2025-08-04T12:07:39.893Z|00046|dpdk|ERR|VHOST_DATA: (/dev/vduse/vduse0) IOTLB miss req failed for IOVA 0x17ffb8000 2025-08-04T12:07:39.893Z|00047|dpdk|ERR|VHOST_CONFIG: (/dev/vduse/vduse0) Failed to translate vring 1 addresses 2025-08-04T12:07:39.893Z|00048|dpdk|ERR|VHOST_CONFIG: (/dev/vduse/vduse0) Failed to disable guest notifications on vring 1 2025-08-04T12:07:39.893Z|00049|netdev_dpdk|WARN|vduse0: Tx TSO offload is not supported. 2025-08-04T12:07:39.893Z|00050|netdev_dpdk|INFO|vHost Device '/dev/vduse/vduse0' has been added on numa node 0 2025-08-04T12:07:39.893Z|00051|dpdk|INFO|VHOST_CONFIG: (/dev/vduse/vduse0) Request VDUSE_SET_STATUS (1) handled successfully 2025-08-04T12:07:39.975Z|00101|dpif_netdev|INFO|Performing pmd to rx queue assignment using cycles algorithm. 2025-08-04T12:07:39.975Z|00102|dpif_netdev|INFO|Core 88 on numa node 0 assigned port 'vduse0' rx queue 0 (measured processing cycles 0). 2025-08-04T12:07:39.975Z|00103|dpif_netdev|INFO|Core 88 on numa node 0 assigned port 'vduse1' rx queue 0 (measured processing cycles 0). 2025-08-04T12:07:39.975Z|00001|netdev_dpdk(ovs_vhost2)|INFO|State of queue 0 ( tx_qid 0 ) of vhost device '/dev/vduse/vduse0' changed to 'enabled' 2025-08-04T12:07:39.975Z|00002|netdev_dpdk(ovs_vhost2)|INFO|State of queue 1 ( rx_qid 0 ) of vhost device '/dev/vduse/vduse0' changed to 'enabled' 2025-08-04T12:07:39.975Z|00002|dpdk(pmd-c88/id:41)|ERR|VHOST_CONFIG: (/dev/vduse/vduse0) Failed to get IOTLB entry for 0x17ffb8000 2025-08-04T12:07:39.975Z|00003|dpdk(pmd-c88/id:41)|ERR|VHOST_DATA: (/dev/vduse/vduse0) IOTLB miss req failed for IOVA 0x17ffb8000