147. vhost/virtio-user loopback with multi-queues test plan

This test plan test loopback multi-queues with split virtqueue mergeable, non-mergeable, vectorized_rx, inorder mergeable, inorder non-mergeable path, and packed virtqueue mergeable, non-mergeable,inorder mergeable, inorder non-mergeable, vectorized path. And virtio-user support 8 queues in maximum, check performance could be linear growth when enable 8 queues and 8 cores, notice cores should in same socket.

147.1. Test Case 1: loopback with virtio 1.1 mergeable path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,packed_vq=1,mrg_rxbuf=1,in_order=0 \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,packed_vq=1,mrg_rxbuf=1,in_order=0 \
    -- -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.2. Test Case 2: loopback with virtio 1.1 non-mergeable path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,packed_vq=1,mrg_rxbuf=0,in_order=0 \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,packed_vq=1,mrg_rxbuf=0,in_order=0 \
    -- -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.3. Test Case 3: loopback with virtio 1.0 inorder mergeable path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,mrg_rxbuf=1,in_order=1 \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,mrg_rxbuf=1,in_order=1 \
    -- -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.4. Test Case 4: loopback with virtio 1.0 inorder non-mergeable path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,mrg_rxbuf=0,in_order=1 \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,mrg_rxbuf=0,in_order=1 \
    -- -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.5. Test Case 5: loopback with virtio 1.0 mergeable path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,mrg_rxbuf=1,in_order=0 \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,mrg_rxbuf=1,in_order=0 \
    -- -i --enable-hw-vlan-strip --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.6. Test Case 6: loopback with virtio 1.0 non-mergeable path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,mrg_rxbuf=0,in_order=0,vectorized=1 \
    -- -i --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,mrg_rxbuf=0,in_order=0,vectorized=1 \
    -- -i --enable-hw-vlan-strip --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.7. Test Case 7: loopback with virtio 1.0 vector_rx path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,mrg_rxbuf=0,in_order=0,vectorized=1 \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,mrg_rxbuf=0,in_order=0,vectorized=1 \
    -- -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.8. Test Case 8: loopback with virtio 1.1 inorder mergeable path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,packed_vq=1,mrg_rxbuf=1,in_order=1 \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,packed_vq=1,mrg_rxbuf=1,in_order=1 \
    -- -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.9. Test Case 9: loopback with virtio 1.1 inorder non-mergeable path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1 \
    -- -i --rx-offloads=0x10 --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1 \
    -- -i --rx-offloads=0x10 --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all
    

147.10. Test Case 10: loopback with virtio 1.1 vectorized path using 1 queue and 8 queues

  1. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-2 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=1' -- \
    -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  2. Launch virtio-user by below command:

    ./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=1,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1 \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  3. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  4. Get throughput 10 times and calculate the average throughput:

    testpmd>show port stats all
    
  5. Check each RX/TX queue has packets, then quit testpmd:

    testpmd>stop
    testpmd>quit
    
  6. Launch testpmd by below command:

    rm -rf vhost-net*
    ./testpmd -l 1-9 -n 4 --no-pci \
    --vdev 'eth_vhost0,iface=vhost-net,queues=8' -- \
    -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    
  7. Launch virtio-user by below command:

    ./testpmd -n 4 -l 10-18 \
    --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=8,packed_vq=1,mrg_rxbuf=0,in_order=1,vectorized=1 \
    -- -i --nb-cores=8 --rxq=8 --txq=8 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  8. Send packets with vhost-testpmd,[frame_size] is the parameter changs in [64, 128, 256, 512, 1024, 1518]:

    testpmd>set txpkts [frame_size]
    testpmd>start tx_first 32
    
  9. Get throughput 10 times and calculate the average throughput,check the throughput of 8 queues is eight times of 1 queue:

    testpmd>show port stats all