[dts][PATCH V3 1/2] test_plans/vhost_virtio_user_interrupt_cbdma_test_plan: modify testplan to test virtio dequeue
Wei Ling
weix.ling at intel.com
Thu Aug 4 03:45:43 CEST 2022
>From DPDK-22.07, virtio support async dequeue for split and packed ring
path, so modify virtio_user_interrupt_cbdma testplan to test the split
and packed ring async dequeue feature.
Signed-off-by: Wei Ling <weix.ling at intel.com>
---
..._virtio_user_interrupt_cbdma_test_plan.rst | 89 ++++++++++++++-----
1 file changed, 68 insertions(+), 21 deletions(-)
diff --git a/test_plans/vhost_virtio_user_interrupt_cbdma_test_plan.rst b/test_plans/vhost_virtio_user_interrupt_cbdma_test_plan.rst
index c823f98e..3efa2326 100644
--- a/test_plans/vhost_virtio_user_interrupt_cbdma_test_plan.rst
+++ b/test_plans/vhost_virtio_user_interrupt_cbdma_test_plan.rst
@@ -5,19 +5,61 @@
vhost/virtio-user interrupt mode with cbdma test plan
=====================================================
+Description
+===========
+
Virtio-user interrupt need test with l3fwd-power sample, small packets send from traffic generator
to virtio side, check virtio-user cores can be wakeup status, and virtio-user cores should be sleep
-status after stop sending packets from traffic generator when CBDMA enabled.This test plan cover
-vhost-user as the backend.
+status after stop sending packets from traffic generator.
+This test plan tests virtio-user Rx interrupt and LSC interrupt with vhost-user as the backend when cbdma enable.
+
+..Note:
+
+DPDK local patch that about vhost pmd is needed when testing Vhost asynchronous data path with testpmd.
+
+Prerequisites
+=============
+
+Software
+--------
+ Trex:http://trex-tgn.cisco.com/trex/release/v2.26.tar.gz
+
+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 Case1: LSC event between vhost-user and virtio-user with split ring and cbdma enabled
-==========================================================================================
+2. Get the PCI device ID and DMA device ID of DUT, for example, 0000:18:00.0 is PCI device ID, 0000:00:04.0, 0000:00:04.1 is DMA device ID::
-flow: Vhost <--> Virtio
+ <dpdk dir># ./usertools/dpdk-devbind.py -s
+
+ Network devices using kernel driver
+ ===================================
+ 0000:18:00.0 'Device 159b' if=ens785f0 drv=ice unused=vfio-pci
+
+ DMA devices using kernel driver
+ ===============================
+ 0000:00:04.0 'Sky Lake-E CBDMA Registers 2021' drv=ioatdma unused=vfio-pci
+ 0000:00:04.1 'Sky Lake-E CBDMA Registers 2021' drv=ioatdma unused=vfio-pci
+
+Test case
+=========
+
+Test Case1: Split ring LSC event between vhost-user and virtio-user with cbdma enable
+-------------------------------------------------------------------------------------
+This case tests the LSC interrupt of split ring virtio-user with vhost-user as the back-end
+when vhost uses the asynchronous operations with CBDMA channels.
+Flow: Vhost <--> Virtio
1. Bind 1 CBDMA channel to vfio-pci driver, then start vhost-user side::
- ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x3000 -n 4 -a 00:04.0 --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0 at 00:04.0]' -- -i
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x3000 -n 4 -a 00:04.0 --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0;rxq0]' \
+ -- -i --lcore-dma=[lcore13 at 0000:00:04.0]
testpmd> set fwd mac
testpmd> start
@@ -37,20 +79,21 @@ flow: Vhost <--> Virtio
testpmd> show port info 0
#it should show "down"
-Test Case2: Split ring virtio-user interrupt test with vhost-user as backend and cbdma enabled
-==============================================================================================
-
-flow: TG --> NIC --> Vhost --> Virtio
+Test Case2: Split ring virtio-user interrupt test with vhost-user as backend and cbdma enable
+---------------------------------------------------------------------------------------------
+This case tests Rx interrupt of split ring virtio-user with vhost-user as the back-end when vhost uses the asynchronous operations with CBDMA channels.
+Flow: TG --> NIC --> Vhost --> Virtio
1. Bind 1 CBDMA channel and 1 NIC port to vfio-pci, launch testpmd with a virtual vhost device as backend::
- ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x7c -n 4 --vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0 at 00:04.0]' -- -i --rxq=1 --txq=1
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x7c -n 4 --vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0;rxq0]' \
+ -- -i --rxq=1 --txq=1 --lcore-dma=[lcore3 at 0000:00:04.0,lcore3 at 0000:00:04.1]
testpmd> start
2. Start l3fwd-power with a virtio-user device::
./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power -c 0xc000 -n 4 --log-level='user1,7' --no-pci --file-prefix=l3fwd-pwd \
- --vdev=virtio_user0,path=./vhost-net -- -p 1 --config="(0,0,14)" --parse-ptype
+ --vdev=virtio_user0,path=./vhost-net -- -p 1 -P --config="(0,0,14)" --parse-ptype
3. Send packets with packet generator, check the virtio-user related core can be wakeup status.
@@ -58,14 +101,16 @@ flow: TG --> NIC --> Vhost --> Virtio
5. Restart sending packets with packet generator, check virtio-user related core change to wakeup status again.
-Test Case3: LSC event between vhost-user and virtio-user with packed ring and cbdma enabled
-===========================================================================================
-
-flow: Vhost <--> Virtio
+Test Case3: Packed ring LSC event between vhost-user and virtio-user with cbdma enable
+--------------------------------------------------------------------------------------
+This case tests the LSC interrupt of packed ring virtio-user with vhost-user as the back-end
+when vhost uses the asynchronous operations with CBDMA channels.
+Flow: Vhost <--> Virtio
1. Bind one cbdma port to vfio-pci driver, then start vhost-user side::
- ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x3000 -n 4 -a 00:04.0 --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0 at 00:04.0]' -- -i
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x3000 -n 4 -a 00:04.0 --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0,dmas=[txq0;rxq0]' \
+ -- -i --lcore-dma=[lcore13 at 0000:00:04.0,lcore13 at 0000:00:04.1]
testpmd> set fwd mac
testpmd> start
@@ -85,20 +130,22 @@ flow: Vhost <--> Virtio
testpmd> show port info 0
#it should show "down"
-Test Case4: Packed ring virtio-user interrupt test with vhost-user as backend and cbdma enabled
-================================================================================================
+Test Case4: Packed ring virtio-user interrupt test with vhost-user as backend and cbdma enable
+----------------------------------------------------------------------------------------------
+This case tests Rx interrupt of packed ring virtio-user with vhost-user as the back-end when vhost uses the asynchronous operations with CBDMA channels.
flow: TG --> NIC --> Vhost --> Virtio
1. Bind one cbdma port and one NIC port to vfio-pci, launch testpmd with a virtual vhost device as backend::
- ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x7c -n 4 --vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0 at 00:04.0]' -- -i --rxq=1 --txq=1
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0x7c -n 4 --vdev 'net_vhost0,iface=vhost-net,queues=1,dmas=[txq0;rxq0]' \
+ -- -i --rxq=1 --txq=1 --lcore-dma=[lcore3 at 0000:00:04.0]
testpmd> start
2. Start l3fwd-power with a virtio-user device::
./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power -c 0xc000 -n 4 --log-level='user1,7' --no-pci --file-prefix=l3fwd-pwd \
- --vdev=virtio_user0,path=./vhost-net,packed_vq=1 -- -p 1 --config="(0,0,14)" --parse-ptype
+ --vdev=virtio_user0,path=./vhost-net,packed_vq=1 -- -p 1 -P --config="(0,0,14)" --parse-ptype
3. Send packets with packet generator, check the virtio-user related core can be wakeup status.
--
2.25.1
More information about the dts
mailing list