59. vhost/virtio pvp performance test plan

Benchmark PVP performance with split ring mergeable path and packed ring mergeable path. For basic pvp test,give 1 core for vhost and virtio respectively. For virtio single core performance test,give 2 cores for vhost and 1 core for virtio, set io fwd at vhost side to lower the vhost workload. For vhost single core performance test,give 2 cores for virtio and 1 core for vhost, set io fwd at virtio side to lower the virtio workload.

59.1. Test flow

TG –> NIC –> Vhost –> Virtio–> Vhost –> NIC –> TG

59.2. Test Case 1: pvp test with packed ring mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-3  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0' \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-6 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,packed_vq=1,mrg_rxbuf=1,in_order=0 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024
    >set fwd mac
    >start
    
  3. Send packet with packet generator with different packet size,includes [64, 1518], check the throughput can get expected data with below command:

    testpmd>show port stats all
    

59.3. Test Case 2: virtio single core performance test with packed ring mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0' -- -i --nb-cores=2 --txd=1024 --rxd=1024
    testpmd>set fwd io
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-6 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,packed_vq=1,mrg_rxbuf=1,in_order=0 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=1 --txd=1024 --rxd=1024
    >set fwd mac
    >start
    
  3. Send packet with packet generator with different packet size,includes [64, 1518], check the throughput can get expected data with below command:

    testpmd>show port stats all
    

59.4. Test Case 3: vhost single core performance test with packed ring mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

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

    ./testpmd -l 7-9 -n 4  --socket-mem 1024,1024 --legacy-mem --file-prefix=virtio \
    --vdev=virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net,queues=1,packed_vq=1,mrg_rxbuf=1,in_order=0 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --txd=1024 --rxd=1024
    >set fwd io
    >start
    
  3. Send packet with packet generator with different packet size,includes [64, 1518], check the throughput can get expected data with below command:

    testpmd>show port stats all
    

59.5. Test Case 4: pvp test with split ring mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0' \
    -- -i --nb-cores=1 --txd=1024 --rxd=1024
    testpmd>set fwd mac
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-6 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,in_order=0,mrg_rxbuf=1 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --nb-cores=1 --txd=1024 --rxd=1024
    >set fwd mac
    >start
    
  3. Send packet with packet generator with different packet size,includes [64, 1518], check the throughput can get expected data with below command:

    testpmd>show port stats all
    

59.6. Test Case 5: virtio single core performance test with split ring mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

    rm -rf vhost-net*
    ./testpmd -n 4 -l 2-4  --socket-mem 1024,1024 --legacy-mem \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=1,client=0' -- -i --nb-cores=2 --txd=1024 --rxd=1024
    testpmd>set fwd io
    testpmd>start
    
  2. Launch virtio-user by below command:

    ./testpmd -n 4 -l 5-6 --socket-mem 1024,1024 \
    --legacy-mem --no-pci --file-prefix=virtio \
    --vdev=net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,in_order=0,mrg_rxbuf=1 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=1 --txd=1024 --rxd=1024
    >set fwd mac
    >start
    
  3. Send packet with packet generator with different packet size,includes [64, 1518], check the throughput can get expected data with below command:

    testpmd>show port stats all
    

59.7. Test Case 6: vhost single core performance test with split ring mergeable path

  1. Bind one port to igb_uio, then launch vhost by below command:

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

    ./testpmd -l 7-9 -n 4  --socket-mem 1024,1024 --legacy-mem --file-prefix=virtio \
    --vdev=virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net,queues=1,in_order=0,mrg_rxbuf=1 \
    -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --txd=1024 --rxd=1024
    >set fwd io
    >start
    
  3. Send packet with packet generator with different packet size,includes [64, 1518], check the throughput can get expected data with below command:

    testpmd>show port stats all