[V2,2/3] test_plans/vhost_user_interrupt_cbdma_test_plan: add new testplan

Message ID 20221111055831.2421249-1-weix.ling@intel.com (mailing list archive)
State Superseded
Headers
Series add vhost_user_interrupt_cbdma |

Commit Message

Ling, WeiX Nov. 11, 2022, 5:58 a.m. UTC
  Add new vhost_user_interrupt_cbdma testplan to test the virtio 
enqueue and dequeue use l3fwd-power with split ring and packed
ring path and CBDMA.

Signed-off-by: Wei Ling <weix.ling@intel.com>
---
 .../vhost_user_interrupt_cbdma_test_plan.rst  | 79 +++++++++++++++++++
 1 file changed, 79 insertions(+)
 create mode 100644 test_plans/vhost_user_interrupt_cbdma_test_plan.rst
  

Patch

diff --git a/test_plans/vhost_user_interrupt_cbdma_test_plan.rst b/test_plans/vhost_user_interrupt_cbdma_test_plan.rst
new file mode 100644
index 00000000..96cef1a6
--- /dev/null
+++ b/test_plans/vhost_user_interrupt_cbdma_test_plan.rst
@@ -0,0 +1,79 @@ 
+.. SPDX-License-Identifier: BSD-3-Clause
+   Copyright(c) 2022 Intel Corporation
+
+==============================================
+vhost-user interrupt mode with CBDMA test plan
+==============================================
+
+Description
+===========
+
+Vhost-user interrupt need test with l3fwd-power sample with CBDMA channel, 
+small packets send from virtio-user to vhost side, check vhost-user cores 
+can be wakeup,and vhost-user cores should be back to sleep after stop 
+sending packets from virtio side.
+
+Note:
+1.For packed virtqueue test, need using qemu version > 4.2.0.
+2.DPDK local patch that about vhost pmd is needed when testing Vhost asynchronous data path with testpmd.
+
+Prerequisites
+=============
+Topology
+--------
+Test flow: Virtio-user --> Vhost-user
+
+General set up
+--------------
+1. Compile DPDK::
+
+    # CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib -Dexamples=all --default-library=static <dpdk build dir>
+    # ninja -C <dpdk build dir> -j 110
+    For example:
+    CC=gcc meson --werror -Denable_kmods=True -Dlibdir=lib -Dexamples=all --default-library=static x86_64-native-linuxapp-gcc
+    ninja -C x86_64-native-linuxapp-gcc -j 110
+
+Test case
+=========
+
+Test Case1: Wake up split ring vhost-user cores with l3fwd-power sample when multi queues and cbdma are enabled
+---------------------------------------------------------------------------------------------------------------
+
+1. Launch virtio-user with server mode::
+
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-5 -n 4 --no-pci --file-prefix=virtio \
+    --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=/tmp/sock0,server=1,queues=4 -- -i --rxq=4 --txq=4 --rss-ip
+
+2. Bind 4 cbdma ports to vfio-pci driver, then launch l3fwd-power with a virtual vhost device::
+
+    ./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power -l 9-12 -n 4 --log-level=9 \
+    --vdev 'eth_vhost0,iface=/tmp/sock0,queues=4,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1;txq2@0000:80:04.2;txq3@0000:80:04.3;rxq0@0000:80:04.0;rxq1@0000:80:04.1;rxq2@0000:80:04.2;rxq3@0000:80:04.3]' -- -p 0x1 --parse-ptype 1 \
+    --config "(0,0,9),(0,1,10),(0,2,11),(0,3,12)"
+
+3. Send packet by testpmd, check vhost-user multi-cores will keep wakeup status::
+
+    testpmd>set fwd txonly
+    testpmd>start
+
+4. Stop and restart testpmd again, check vhost-user cores will sleep and wakeup again.
+
+Test Case2: Wake up packed ring vhost-user cores with l3fwd-power sample when multi queues and cbdma are enabled
+----------------------------------------------------------------------------------------------------------------
+
+1. Launch virtio-user with server mode::
+
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-5 -n 4 --no-pci --file-prefix=virtio \
+    --vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=/tmp/sock0,server=1,queues=4,packed_vq=1 -- -i --rxq=4 --txq=4 --rss-ip
+
+2. Bind 4 cbdma ports to vfio-pci driver, then launch l3fwd-power with a virtual vhost device::
+
+    ./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power -l 9-12 -n 4 --log-level=9 \
+    --vdev 'eth_vhost0,iface=/tmp/sock0,queues=4,client=1,dmas=[txq0@0000:80:04.0;txq1@0000:80:04.1;txq2@0000:80:04.2;txq3@0000:80:04.3;rxq0@0000:80:04.0;rxq1@0000:80:04.1;rxq2@0000:80:04.2;rxq3@0000:80:04.3]' -- -p 0x1 --parse-ptype 1 \
+    --config "(0,0,9),(0,1,10),(0,2,11),(0,3,12)"
+
+3. Send packet by testpmd, check vhost-user multi-cores will keep wakeup status::
+
+    testpmd>set fwd txonly
+    testpmd>start
+
+4. Stop and restart testpmd again, check vhost-user cores will sleep and wakeup again.