From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by dpdk.org (Postfix) with ESMTP id 865C87E7F for ; Tue, 1 Mar 2016 03:00:07 +0100 (CET) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga102.jf.intel.com with ESMTP; 29 Feb 2016 18:00:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.22,521,1449561600"; d="scan'208";a="755644126" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga003.jf.intel.com with ESMTP; 29 Feb 2016 18:00:05 -0800 Received: from fmsmsx117.amr.corp.intel.com (10.18.116.17) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 29 Feb 2016 18:00:05 -0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx117.amr.corp.intel.com (10.18.116.17) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 29 Feb 2016 18:00:04 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.136]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.42]) with mapi id 14.03.0248.002; Tue, 1 Mar 2016 10:00:03 +0800 From: "Qiu, Michael" To: Tetsuya Mukawa , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH v9 0/2] Add VHOST PMD Thread-Index: AQHRYx2kdI+zya1GfEi4PR/SuMHgdw== Date: Tue, 1 Mar 2016 02:00:02 +0000 Message-ID: <533710CFB86FA344BFBF2D6802E6028622F59D67@SHSMSX101.ccr.corp.intel.com> References: <1454671693-3886-3-git-send-email-mukawa@igel.co.jp> <1455010686-21802-1-git-send-email-mukawa@igel.co.jp> <533710CFB86FA344BFBF2D6802E6028622F52FF8@SHSMSX101.ccr.corp.intel.com> <56CD3B27.1080706@igel.co.jp> <533710CFB86FA344BFBF2D6802E6028622F559E7@SHSMSX101.ccr.corp.intel.com> <56CFD4C5.1090008@igel.co.jp> <56D00E66.4090906@igel.co.jp> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "ann.zhuangyanying@huawei.com" , "Liu, Yuanhan" Subject: Re: [dpdk-dev] [PATCH v9 0/2] Add VHOST PMD X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Mar 2016 02:00:08 -0000 On 2/26/2016 4:36 PM, Tetsuya Mukawa wrote:=0A= > On 2016/02/26 13:29, Tetsuya Mukawa wrote:=0A= >> On 2016/02/25 16:51, Qiu, Michael wrote:=0A= >>> On 2/24/2016 1:10 PM, Tetsuya Mukawa wrote:=0A= >>>> On 2016/02/24 11:45, Qiu, Michael wrote:=0A= >>>>> Hi, Tetsuya=0A= >>>>>=0A= >>>>> When I applied your v6 patch, I could reach 9.5Mpps with 64B packet.= =0A= >>>>>=0A= >>>>> But when apply v9 only 8.4 Mpps, could you figure out why has=0A= >>>>> performance drop?=0A= >>>> Hi Michael,=0A= >>>>=0A= >>>> Thanks for checking it.=0A= >>>> I tried to re-produce it, but I don't see the drop on my environment.= =0A= >>>> (My cpu is Xeon E5-2697-v2, and the performances of v6 and v9 patch ar= e=0A= >>>> almost 5.9Mpps)=0A= >>>> Did you use totally same code except for vhost PMD?=0A= >>> Yes, totally same code and same platform, only difference is versions o= f=0A= >>> vhost PMD.=0A= >>>=0A= >>> BTW, I have set the frontend mergeable off.=0A= >> I have checked below cases.=0A= >> - Case1: Disable mergeable feature in virtio-net PMD.=0A= >> - Case2: Disable mergeable feature in virtio-net PMD and use=0A= >> '--txqflags=3D0xf01' option to use simple ring deploying.=0A= >> Both cases, I still cannot see the drop.=0A= >>=0A= >> Anyway, I will send a few patch-series to determine the cause of drop.= =0A= >> So, could you please apply them and check the performance to determine= =0A= >> which cause the drop?=0A= > Hi Michael,=0A= >=0A= > I may find what causes the drop.=0A= > Could you please restart testpmd on guest when you see the drop, then=0A= > check performance again?=0A= >=0A= > I guess the drop will occur only first time when testpmd on guest and=0A= > host is connected.=0A= > Here are rough steps.=0A= >=0A= > 1. Start testpmd on host=0A= > 2. Start QEMU=0A= > 3. Start testpmd on guest=0A= >=0A= > Then you will see the drop.=0A= > Probably, if testpmd on guest is restarted, then you don't see the drop= =0A= > again.=0A= >=0A= > 4. Type 'quit' on guest.=0A= > 5. Start testpmd on guest again.=0A= =0A= OK, I will help to tested today.=0A= =0A= Thanks,=0A= Michael=0A= > If so, I guess the drop is caused by queue notifying.=0A= > Could you please let me know whether your issue is above case?=0A= >=0A= > Thanks,=0A= > Tetsuya=0A= >=0A= >> Thanks,=0A= >> Tetsuya=0A= >>=0A= >>> Thanks,=0A= >>> Michael=0A= >>>> Thanks,=0A= >>>> Tetsuya=0A= >>>>=0A= >>>>> Thanks,=0A= >>>>> Michael=0A= >>>>> On 2/9/2016 5:38 PM, Tetsuya Mukawa wrote:=0A= >>>>>> The patch introduces a new PMD. This PMD is implemented as thin wrap= per=0A= >>>>>> of librte_vhost.=0A= >>>>>>=0A= >>>>>>=0A= >>>>>> PATCH v9 changes:=0A= >>>>>> - Fix a null pointer access issue implemented in v8 patch.=0A= >>>>>>=0A= >>>>>> PATCH v8 changes:=0A= >>>>>> - Manage ether devices list instead of internal structures list.=0A= >>>>>> - Remove needless NULL checking.=0A= >>>>>> - Replace "pthread_exit" to "return NULL".=0A= >>>>>> - Replace rte_panic to RTE_LOG, also add error handling.=0A= >>>>>> - Remove duplicated lines.=0A= >>>>>> - Remove needless casting.=0A= >>>>>> - Follow coding style.=0A= >>>>>> - Remove needless parenthesis.=0A= >>>>>>=0A= >>>>>> PATCH v7 changes:=0A= >>>>>> - Remove needless parenthesis.=0A= >>>>>> - Add release note.=0A= >>>>>> - Remove needless line wraps.=0A= >>>>>> - Add null pointer check in vring_state_changed().=0A= >>>>>> - Free queue memory in eth_queue_release().=0A= >>>>>> - Fix wrong variable name.=0A= >>>>>> - Fix error handling code of eth_dev_vhost_create() and=0A= >>>>>> rte_pmd_vhost_devuninit().=0A= >>>>>> - Remove needless null checking from rte_pmd_vhost_devinit/devunini= t().=0A= >>>>>> - Use port id to create mac address.=0A= >>>>>> - Add doxygen style comments in "rte_eth_vhost.h".=0A= >>>>>> - Fix wrong comment in "mk/rte.app.mk".=0A= >>>>>>=0A= >>>>>> PATCH v6 changes:=0A= >>>>>> - Remove rte_vhost_driver_pmd_callback_registe().=0A= >>>>>> - Support link status interrupt.=0A= >>>>>> - Support queue state changed interrupt.=0A= >>>>>> - Add rte_eth_vhost_get_queue_event().=0A= >>>>>> - Support numa node detection when new device is connected.=0A= >>>>>>=0A= >>>>>> PATCH v5 changes:=0A= >>>>>> - Rebase on latest master.=0A= >>>>>> - Fix RX/TX routine to count RX/TX bytes.=0A= >>>>>> - Fix RX/TX routine not to count as error packets if enqueue/dequeu= e=0A= >>>>>> cannot send all packets.=0A= >>>>>> - Fix if-condition checking for multiqueues.=0A= >>>>>> - Add "static" to pthread variable.=0A= >>>>>> - Fix format.=0A= >>>>>> - Change default behavior not to receive queueing event from driver= .=0A= >>>>>> - Split the patch to separate rte_eth_vhost_portid2vdev().=0A= >>>>>>=0A= >>>>>> PATCH v4 changes:=0A= >>>>>> - Rebase on latest DPDK tree.=0A= >>>>>> - Fix cording style.=0A= >>>>>> - Fix code not to invoke multiple messaging handling threads.=0A= >>>>>> - Fix code to handle vdev parameters correctly.=0A= >>>>>> - Remove needless cast.=0A= >>>>>> - Remove needless if-condition before rt_free().=0A= >>>>>>=0A= >>>>>> PATCH v3 changes:=0A= >>>>>> - Rebase on latest matser=0A= >>>>>> - Specify correct queue_id in RX/TX function.=0A= >>>>>>=0A= >>>>>> PATCH v2 changes:=0A= >>>>>> - Remove a below patch that fixes vhost library.=0A= >>>>>> The patch was applied as a separate patch.=0A= >>>>>> - vhost: fix crash with multiqueue enabled=0A= >>>>>> - Fix typos.=0A= >>>>>> (Thanks to Thomas, Monjalon)=0A= >>>>>> - Rebase on latest tree with above bernard's patches.=0A= >>>>>>=0A= >>>>>> PATCH v1 changes:=0A= >>>>>> - Support vhost multiple queues.=0A= >>>>>> - Rebase on "remove pci driver from vdevs".=0A= >>>>>> - Optimize RX/TX functions.=0A= >>>>>> - Fix resource leaks.=0A= >>>>>> - Fix compile issue.=0A= >>>>>> - Add patch to fix vhost library.=0A= >>>>>>=0A= >>>>>> RFC PATCH v3 changes:=0A= >>>>>> - Optimize performance.=0A= >>>>>> In RX/TX functions, change code to access only per core data.=0A= >>>>>> - Add below API to allow user to use vhost library APIs for a port = managed=0A= >>>>>> by vhost PMD. There are a few limitations. See "rte_eth_vhost.h".= =0A= >>>>>> - rte_eth_vhost_portid2vdev()=0A= >>>>>> To support this functionality, vhost library is also changed.=0A= >>>>>> Anyway, if users doesn't use vhost PMD, can fully use vhost libra= ry APIs.=0A= >>>>>> - Add code to support vhost multiple queues.=0A= >>>>>> Actually, multiple queues functionality is not enabled so far.=0A= >>>>>>=0A= >>>>>> RFC PATCH v2 changes:=0A= >>>>>> - Fix issues reported by checkpatch.pl=0A= >>>>>> (Thanks to Stephen Hemminger)=0A= >>>>>>=0A= >>>>>>=0A= >>>>>> Tetsuya Mukawa (2):=0A= >>>>>> ethdev: Add a new event type to notify a queue state changed event= =0A= >>>>>> vhost: Add VHOST PMD=0A= >>>>>>=0A= >>>>>> MAINTAINERS | 4 +=0A= >>>>>> config/common_linuxapp | 6 +=0A= >>>>>> doc/guides/nics/index.rst | 1 +=0A= >>>>>> doc/guides/rel_notes/release_2_3.rst | 4 +=0A= >>>>>> drivers/net/Makefile | 4 +=0A= >>>>>> drivers/net/vhost/Makefile | 62 ++=0A= >>>>>> drivers/net/vhost/rte_eth_vhost.c | 911 +++++++++++++++++= +++++++++++=0A= >>>>>> drivers/net/vhost/rte_eth_vhost.h | 109 ++++=0A= >>>>>> drivers/net/vhost/rte_pmd_vhost_version.map | 11 +=0A= >>>>>> lib/librte_ether/rte_ethdev.h | 2 +=0A= >>>>>> mk/rte.app.mk | 6 +=0A= >>>>>> 11 files changed, 1120 insertions(+)=0A= >>>>>> create mode 100644 drivers/net/vhost/Makefile=0A= >>>>>> create mode 100644 drivers/net/vhost/rte_eth_vhost.c=0A= >>>>>> create mode 100644 drivers/net/vhost/rte_eth_vhost.h=0A= >>>>>> create mode 100644 drivers/net/vhost/rte_pmd_vhost_version.map=0A= >>>>>>=0A= >=0A= =0A=