DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Xu, Qian Q" <qian.q.xu@intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>,
	"Liu, Jijiang" <jijiang.liu@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>, "Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [dpdk-dev] [PATCH v3 6/8] driver/virtio:enqueue vhost TX offload
Date: Thu, 5 Nov 2015 08:49:50 +0000	[thread overview]
Message-ID: <82F45D86ADE5454A95A89742C8D1410E03172DE7@shsmsx102.ccr.corp.intel.com> (raw)
In-Reply-To: <4105806.UIj9otbWQy@xps13>

Tested-by: Qian Xu <qian.q.xu@intel.com>

- Test Commit: c4d404d7c1257465176deb5bb8c84e627d2d5eee
- OS/Kernel: Fedora 21/4.1.8
- GCC: gcc (GCC) 4.9.2 20141101 (Red Hat 4.9.2-1)
- CPU: Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
- NIC: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
- Target: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
- Total 2 cases, 2 passed, 0 failed. DPDK vhost + legacy virtio or virtio-pmd can work well with TSO. 

Test Case 1:  test_dpdk vhost+ virtio-pmd tso 
======================================

On host:

1. Start up vhost-switch, mergeable 1 means the jubmo frame feature is enabled. vm2vm 0 means only one vm without vm to vm communication::

    taskset -c 1-3 <dpdk_folder>/examples/vhost/build/vhost-switch -c 0xf -n 4 --huge-dir /mnt/huge --socket-mem 1024,1024 -- -p 1 --mergeable 1 --zero-copy 0 --vm2vm 0 --tso 1 --tx-csum 1
   

2. Start VM with vhost cuse as backend::

    taskset -c 4-6  /home/qxu10/qemu-2.2.0/x86_64-softmmu/qemu-system-x86_64 -object memory-backend-file, id=mem,size=2048M,mem-path=/mnt/huge,share=on -numa node,memdev=mem -mem-prealloc \
    -enable-kvm -m 2048 -smp 4 -cpu host -name dpdk1-vm1 \
    -drive file=/home/img/dpdk1-vm1.img \
    -netdev tap,id=vhost3,ifname=tap_vhost3,vhost=on,script=no \
    -device virtio-net pci,netdev=vhost3,mac=52:54:00:00:00:01,id=net3 \
    -netdev tap,id=vhost4,ifname=tap_vhost4,vhost=on,script=no \
    -device virtio-net-pci,netdev=vhost4,mac=52:54:00:00:00:02,id=net4 \
    -netdev tap,id=ipvm1,ifname=tap3,script=/etc/qemu-ifup -device rtl8139,netdev=ipvm1,id=net0,mac=00:00:00:00:00:01 \
    -localtime -nographic

On guest:

3. ensure the dpdk folder copied to the guest with the same config file and build process as host. Then bind 2 virtio devices to igb_uio and start testpmd, below is the step for reference::

    ./<dpdk_folder>/tools/dpdk_nic_bind.py --bind igb_uio 00:03.0 00:04.0

    ./<dpdk_folder>/x86_64-native-linuxapp-gcc/app/test-pmd/testpmd -c f -n 4 -- -i --txqflags 0x0f00 --max-pkt-len 9000 
    
    $ >set fwd csum
    
    $ >tso set 1000 0
    $ >tso set 1000 1

    $ >start tx_first

4.  Send TCP packets to virtio1, and the packet size is 5000, then at the virtio side, it will receive 1 packet ant let vhost to do TSO, vhost will let NIC do TSO, so at IXIA, we expected 5 packets, each ~1k size, then also capture the received packets and check if the checksum is correct.

Result:  All the behavior is expected as step4. So the case is PASS.

Test Case 2:  test_dpdk vhost+legacy virtio iperf tso
===========================================
Hardware config: Connect one physical port(port1) to another physical port(port2). Port1 is the NIC port that will do the TSO.
1. Start dpdk vhost sample, the command is same as above case. Port1 is binded to igb_uio
2. start VM with 1 virtio
3. let port2 and 1virtio in VM do iperf test, since iperf test will send out 
VIRTIO: ifconfig eth0 1.1.1.2
Port2: ifconfig p2p6 1.1.1.8
Make ping work: ping 1.1.1.8 
Then run iperf server at port2: iperf -s -I 1
Run iperf client at port1: iperf -c 1.1.1.8 -t 60 -I 1

Check the packet size at virtio and port2 to see if there are many 64KB packet, if has, then pass. The reason is that vhost/virtio will first negotiate if each other supports tso, if supports, then the TCP/IP stack will compose BIG packets such as 64KB, since NIC has the TSO capability, vhost will let NIC do the TSO work, then at port2, the small packets will be composed to big packets with TCP/IP stack.  

Result: there are many 64KB packet in both virtio and port2, so it is pass. 
 
Thanks
Qian


-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
Sent: Wednesday, November 04, 2015 9:18 PM
To: Liu, Jijiang
Cc: dev@dpdk.org; Michael S. Tsirkin
Subject: Re: [dpdk-dev] [PATCH v3 6/8] driver/virtio:enqueue vhost TX offload

2015-11-04 12:52, Liu, Jijiang:
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> > Please could you check that your virtio implementation works with a 
> > vanilla Linux with or without vhost?
> > Thanks
[...]
> Xu Qian can send the test report out.  

Yes please, I'd like to see a test report showing this virtio running with Linux vhost and without vhost.
We must check that the checksum is well offloaded and sent packets are valids.
Thanks

  reply	other threads:[~2015-11-05  8:50 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-04 10:54 [dpdk-dev] [PATCH v3 0/8] add vhost TX offload support Jijiang Liu
2015-11-04 10:54 ` [dpdk-dev] [PATCH v3 1/8] driver/virtio:add virtual addr for virtio net header Jijiang Liu
2015-11-04 10:54 ` [dpdk-dev] [PATCH v3 2/8] driver/virtio: record virtual address of " Jijiang Liu
2015-11-04 10:54 ` [dpdk-dev] [PATCH v3 3/8] driver/virtio:add vhost TX checksum support capability in virtio-net Jijiang Liu
2015-11-04 10:54 ` [dpdk-dev] [PATCH v3 4/8] driver/virtio:fill virtio device info for TX offload Jijiang Liu
2015-11-04 10:54 ` [dpdk-dev] [PATCH v3 5/8] driver/virtio:enqueue vhost " Jijiang Liu
2015-11-04 10:54 ` [dpdk-dev] [PATCH v3 6/8] " Jijiang Liu
2015-11-04 11:17   ` Thomas Monjalon
2015-11-04 12:52     ` Liu, Jijiang
2015-11-04 13:18       ` Thomas Monjalon
2015-11-05  8:49         ` Xu, Qian Q [this message]
2015-11-05  9:02           ` Thomas Monjalon
2015-11-05 10:44             ` Xu, Qian Q
2015-11-06  8:24               ` Xu, Qian Q
2015-11-04 13:06     ` Liu, Jijiang
2015-11-04 13:08     ` Liu, Jijiang
2015-11-04 13:15       ` Liu, Jijiang
2015-11-04 10:54 ` [dpdk-dev] [PATCH v3 7/8] lib/librte_vhost:dequeue " Jijiang Liu
2015-11-09  4:00   ` Yuanhan Liu
2015-11-09  5:27     ` Liu, Jijiang
2015-11-04 10:54 ` [dpdk-dev] [PATCH v3 8/8] examples/vhost:support TX offload in vhost sample Jijiang Liu
2015-11-09  4:17   ` Yuanhan Liu
2015-11-09  8:17     ` Liu, Jijiang
2015-11-09  8:51       ` Yuanhan Liu
2015-11-09  8:18     ` Liu, Jijiang
2015-11-11  6:47     ` Liu, Jijiang
2015-11-04 11:14 ` [dpdk-dev] [PATCH v3 0/8] add vhost TX offload support Tan, Jianfeng
2015-11-05 14:24   ` Glynn, Michael J
  -- strict thread matches above, loose matches on Subject: below --
2015-11-04  8:35 Jijiang Liu
2015-11-04  8:35 ` [dpdk-dev] [PATCH v3 6/8] driver/virtio:enqueue vhost TX offload Jijiang Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=82F45D86ADE5454A95A89742C8D1410E03172DE7@shsmsx102.ccr.corp.intel.com \
    --to=qian.q.xu@intel.com \
    --cc=dev@dpdk.org \
    --cc=jijiang.liu@intel.com \
    --cc=mst@redhat.com \
    --cc=thomas.monjalon@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).