[v3] test_plans/vhost_cbdma_test_plan

Message ID 20210702160445.838453-1-yinan.wang@intel.com (mailing list archive)
State Accepted
Headers
Series [v3] test_plans/vhost_cbdma_test_plan |

Commit Message

Wang, Yinan July 2, 2021, 4:04 p.m. UTC
1. change cases using imix pkts for better coverage
2. add one cbdma performance case

Signed-off-by: Yinan Wang <yinan.wang@intel.com>
---
 test_plans/vhost_cbdma_test_plan.rst | 212 +++++++++++++--------------
 1 file changed, 102 insertions(+), 110 deletions(-)
  

Comments

Tu, Lijuan July 2, 2021, 8:29 a.m. UTC | #1
> -----Original Message-----
> From: dts <dts-bounces@dpdk.org> On Behalf Of Yinan Wang
> Sent: 2021年7月3日 0:05
> To: dts@dpdk.org
> Cc: Wang, Yinan <yinan.wang@intel.com>
> Subject: [dts] [PATCH v3] test_plans/vhost_cbdma_test_plan
> 
> 1. change cases using imix pkts for better coverage 2. add one cbdma
> performance case
> 
> Signed-off-by: Yinan Wang <yinan.wang@intel.com>

Applied, thanks
  

Patch

diff --git a/test_plans/vhost_cbdma_test_plan.rst b/test_plans/vhost_cbdma_test_plan.rst
index c827adaa..325b5d87 100644
--- a/test_plans/vhost_cbdma_test_plan.rst
+++ b/test_plans/vhost_cbdma_test_plan.rst
@@ -126,103 +126,54 @@  TG --> NIC --> Vhost --> Virtio--> Vhost --> NIC --> TG
     >set fwd mac
     >start
 
-Test Case2: Split ring dynamic queue number test for DMA-accelerated vhost Tx operations
-========================================================================================
+Test Case 2: Split ring dynamic queue number test for DMA-accelerated vhost Tx operations
+=========================================================================================
 
-1. Bind four cbdma channels and one nic port to igb_uio, then launch vhost by below command::
+1. Bind 8 cbdma channels and one nic port to igb_uio, then launch vhost by below command::
 
     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 28-29  \
-    --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=2,client=1,dmas=[txq0@80:04.5;txq1@80:04.6],dmathr=1024' \
-    -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=2 --rxq=2
-    >set fwd mac
-    >start
+     --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=8,client=1' \
+     -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=8 --rxq=8
+     >set fwd mac
+     >start
 
 2. Launch virtio-user by below command::
 
     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 30-31 --no-pci --file-prefix=virtio \
-    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=/tmp/s0,mrg_rxbuf=1,in_order=1,queues=2,server=1 \
-    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024 --txq=2 --rxq=2
+    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=/tmp/s0,mrg_rxbuf=1,in_order=1,queues=8,server=1 \
+    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024 --txq=8 --rxq=8
     >set fwd mac
     >start
 
-3. Send packets with packet size [64,1518] from packet generator with random ip, check perforamnce can get target.
+3. Send imix packets from packet generator with random ip, check perforamnce can get target.
 
-4. Stop vhost port, check vhost RX and TX direction both exist packtes in two queues from vhost log.
+4. Stop vhost port, check vhost RX and TX direction both exist packtes in 8 queues from vhost log.
 
-5. On virtio-user side, dynamic change rx queue numbers from 2 queue to 1 queues, then check one queue RX/TX can work normally::
+5. Quit vhost port and relaunch vhost with 4 queues w/ cbdma::
 
-    testpmd>port stop all
-    testpmd>port config all rxq 1
-    testpmd>port config all txq 1
-    testpmd>port start all
-    testpmd>start
-    testpmd>show port stats all
-
-6. Relaunch virtio-user with vectorized path and 2 queues::
-
-    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 30-31 --no-pci --file-prefix=virtio \
-    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=/tmp/s0,mrg_rxbuf=0,in_order=1,vectorized=1,queues=2,server=1 \
-    -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=2 --rxq=2
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 28-29  \
+    --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=4,client=1,dmas=[txq0@00:04.0;txq1@00:04.1;txq2@00:04.2;txq3@00:04.3],dmathr=1024' \
+    -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=4 --rxq=4
     >set fwd mac
     >start
 
-7. Send packets with packet size [64,1518] from packet generator with random ip, check perforamnce can get target.
+6. Send imix packets from packet generator with random ip, check perforamnce can get target.
 
-8. Stop vhost port, check vhost RX and TX direction both exist packtes in queue0 from vhost log.
+7. Stop vhost port, check vhost RX and TX direction both exist packtes in 4 queues from vhost log.
 
-9. On vhost side, dynamic change rx queue numbers from 2 queue to 1 queues, then check one queue RX/TX can work normally::
-
-    testpmd>port stop all
-    testpmd>port config all rxq 1
-    testpmd>port config all txq 1
-    testpmd>port start all
-    testpmd>start
-    testpmd>show port stats all
-
-10. Relaunch vhost with another two cbdma channels and 2 queueus, check perforamnce can get target::
+8. Quit vhost port and relaunch vhost with 8 queues w/ cbdma::
 
      ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 28-29  \
-     --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=2,client=1,dmas=[txq0@00:04.5;txq1@00:04.6],dmathr=512' \
-     -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=2 --rxq=2
-     >set fwd mac
-     >start
-
-11. Stop vhost port, check vhost RX and TX direction both exist packtes in two queues from vhost log.
-
-Test Case3: CBDMA threshold value check
-========================================
-
-1. Bind four cbdma port to igb_uio, then launch vhost by below command::
-
-    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 1-2 -n 4 \
-    --vdev 'eth_vhost0,iface=vhost-net,queues=2,client=1,dmas=[txq0@80:04.0;txq1@80:04.1],dmathr=512' --vdev 'eth_vhost1,iface=vhost-net1,queues=2,client=1,dmas=[txq0@80:04.2;txq1@80:04.3],dmathr=4096' -- \
-    -i --nb-cores=1 --rxq=2 --txq=2
-    >start
-
-2. Launch virtio-user1::
-
-    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 7-8 \
-    --no-pci --file-prefix=virtio1 \
-    --vdev=net_virtio_user1,mac=00:01:02:03:04:05,path=./vhost-net1,queues=2,server=1,packed_vq=0,mrg_rxbuf=1,in_order=0,queue_size=4096 \
-    -- -i --nb-cores=1 --rxq=2 --txq=2
+    --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=8,client=1,dmas=[txq0@80:04.0;txq1@80:04.1;txq2@80:04.2;txq3@80:04.3;txq4@80:04.4;txq5@80:04.5;txq6@80:04.6;txq7@80:04.7],dmathr=1024' \
+    -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=8 --rxq=8
+    >set fwd mac
     >start
 
-3. Launch virtio-user0::
-
-    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 \
-    --no-pci --file-prefix=virtio \
-    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,server=1,packed_vq=0,mrg_rxbuf=1,in_order=0,queue_size=4096 \
-    -- -i --nb-cores=1 --rxq=2 --txq=2
-    >start
-  
-4. Check the cbdma threshold value for each vhost port can be config correct from vhost log::
+9. Send imix packets from packet generator with random ip, check perforamnce can get target.
 
-    dma parameters: vid0,qid0,dma*,threshold:512
-    dma parameters: vid0,qid2,dma*,threshold:512
-    dma parameters: vid1,qid0,dma*,threshold:4096
-    dma parameters: vid1,qid2,dma*,threshold:4096
+10. Stop vhost port, check vhost RX and TX direction both exist packtes in 8 queues from vhost log.
 
-Test Case 4: PVP packed ring all path with DMA-accelerated vhost enqueue
+Test Case 3: PVP packed ring all path with DMA-accelerated vhost enqueue
 ========================================================================
 
 Packet pipeline: 
@@ -293,65 +244,106 @@  TG --> NIC --> Vhost --> Virtio--> Vhost --> NIC --> TG
     >set fwd mac
     >start
 
-Test Case5: Packed ring dynamic queue number test for DMA-accelerated vhost Tx operations
-=========================================================================================
+Test Case 4: Packed ring dynamic queue number test for DMA-accelerated vhost Tx operations
+==========================================================================================
 
-1. Bind four cbdma channels and one nic port to igb_uio, then launch vhost by below command::
+1. Bind 8 cbdma channels and one nic port to igb_uio, then launch vhost by below command::
 
     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 28-29  \
-    --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=2,client=1,dmas=[txq0@80:04.5;txq1@80:04.6],dmathr=1024' \
-    -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=2 --rxq=2
-    >set fwd mac
-    >start
+     --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=8,client=1' \
+     -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=8 --rxq=8
+     >set fwd mac
+     >start
 
 2. Launch virtio-user by below command::
 
     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 30-31 --no-pci --file-prefix=virtio \
-    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=/tmp/s0,mrg_rxbuf=1,in_order=1,queues=2,server=1,packed_vq=1 \
-    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024 --txq=2 --rxq=2
+    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=/tmp/s0,mrg_rxbuf=1,in_order=1,queues=8,server=1,packed_vq=1 \
+    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024 --txq=8 --rxq=8
     >set fwd mac
     >start
 
-3. Send imix packets [64,1518] from packet generator with random ip, check perforamnce can get target.
+3. Send imix packets from packet generator with random ip, check perforamnce can get target.
 
-4. Stop vhost port, check vhost RX and TX direction both exist packets in two queues from vhost log.
+4. Stop vhost port, check vhost RX and TX direction both exist packtes in 8 queues from vhost log.
 
-5. On virtio-user side, dynamic change rx queue numbers from 2 queue to 1 queues, then check one queue RX/TX can work normally::
+5. Quit vhost port and relaunch vhost with 4 queues w/ cbdma::
 
-    testpmd>port stop all
-    testpmd>port config all rxq 1
-    testpmd>port config all txq 1
-    testpmd>port start all
-    testpmd>start
-    testpmd>show port stats all
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 28-29  \
+    --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=4,client=1,dmas=[txq0@80:04.0;txq1@80:04.1;txq2@80:04.2;txq3@80:04.3],dmathr=1024' \
+    -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=4 --rxq=4
+    >set fwd mac
+    >start
 
-6. Relaunch virtio-user with vectorized path and 2 queues::
+6. Send imix packets from packet generator with random ip, check perforamnce can get target.
 
-    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 30-31 --no-pci --file-prefix=virtio \
-    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=/tmp/s0,mrg_rxbuf=0,in_order=1,vectorized=1,queues=2,server=1,packed_vq=1 \
-    -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=2 --rxq=2
+7. Stop vhost port, check vhost RX and TX direction both exist packtes in 4 queues from vhost log.
+
+8. Quit vhost port and relaunch vhost with 8 queues w/ cbdma::
+
+     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 28-29  \
+    --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=8,client=1,dmas=[txq0@80:04.0;txq1@80:04.1;txq2@80:04.2;txq3@80:04.3;txq4@80:04.4;txq5@80:04.5;txq6@80:04.6;txq7@80:04.7],dmathr=1024' \
+    -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=8 --rxq=8
     >set fwd mac
     >start
 
-7. Send imix packets [64,1518] from packet generator with random ip, check perforamnce can get target.
+9. Send imix packets from packet generator with random ip, check perforamnce can get target.
 
-8. Stop vhost port, check vhost RX and TX direction both exist packets in queue0 from vhost log.
+10. Stop vhost port, check vhost RX and TX direction both exist packtes in 8 queues from vhost log.
 
-9. On vhost side, dynamic change rx queue numbers from 2 queue to 1 queues, then check one queue RX/TX can work normally::
+Test Case 5: Compare PVP split ring performance between CPU copy, CBDMA copy and Sync copy
+==========================================================================================
+
+1. Bind one cbdma port and one nic port which on same numa to igb_uio, then launch vhost by below command::
+
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 2-3 --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=1,client=1,dmas=[txq0@00:01.0],dmathr=1024' \
+    -- -i --nb-cores=1 --txd=1024 --rxd=1024
+    >set fwd mac
+    >start
+
+2. Launch virtio-user with inorder mergeable path::
+
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 --no-pci --file-prefix=virtio \
+    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=/tmp/s0,mrg_rxbuf=1,in_order=1,queues=1,server=1 \
+    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024
+    >set fwd mac
+    >start
+
+3. Send packets with 64b and 1518b seperately from packet generator, record the throughput as sync copy throughput for 64b and cbdma copy for 1518b::
 
-    testpmd>port stop all
-    testpmd>port config all rxq 1
-    testpmd>port config all txq 1
-    testpmd>port start all
-    testpmd>start
     testpmd>show port stats all
 
-10. Relaunch vhost with another two cbdma channels and 2 queueus, check perforamnce can get target::
+4.Quit vhost side, relaunch with below cmd::
 
-     ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 28-29  \
-     --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=2,client=1,dmas=[txq0@00:04.5;txq1@00:04.6],dmathr=512' \
-     -- -i --nb-cores=1 --txd=1024 --rxd=1024 --txq=2 --rxq=2
-     >set fwd mac
-     >start
+ ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 2-3 --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=1,client=1,dmas=[txq0@00:01.0],dmathr=2000' \
+    -- -i --nb-cores=1 --txd=1024 --rxd=1024
+    >set fwd mac
+    >start
+
+5. Send packets with 1518b from packet generator, record the throughput as sync copy throughput for 1518b::
+
+    testpmd>show port stats all
+
+6. Quit two testpmd, relaunch vhost by below command::
+
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 2-3 --file-prefix=vhost --vdev 'net_vhost0,iface=/tmp/s0,queues=1' \
+    -- -i --nb-cores=1 --txd=1024 --rxd=1024
+    >set fwd mac
+    >start
+
+7. Launch virtio-user with inorder mergeable path::
+
+    ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -n 4 -l 5-6 --no-pci --file-prefix=virtio \
+    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=/tmp/s0,mrg_rxbuf=1,in_order=1,queues=1 \
+    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024
+    >set fwd mac
+    >start
+
+8. Send packets with 64b from packet generator, record the throughput as cpu copy for 64b::
+
+    testpmd>show port stats all
+
+9. Check performance can meet below requirement::
 
-11. Stop vhost port, check vhost RX and TX direction both exist packets in two queues from vhost log.
+   (1)CPU copy vs. sync copy delta < 10% for 64B packet size
+   (2)CBDMA copy vs sync copy delta > 5% for 1518 packet size