From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pa0-f41.google.com (mail-pa0-f41.google.com [209.85.220.41]) by dpdk.org (Postfix) with ESMTP id DBD596CCC for ; Tue, 1 Mar 2016 03:19:27 +0100 (CET) Received: by mail-pa0-f41.google.com with SMTP id bj10so33358794pad.2 for ; Mon, 29 Feb 2016 18:19:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=igel-co-jp.20150623.gappssmtp.com; s=20150623; h=subject:to:references:cc:from:message-id:date:user-agent :mime-version:in-reply-to:content-transfer-encoding; bh=RLmEbudh7LvDZdZ0Y5I6NRVzia1zTxnC4iall8Iymfo=; b=WwMqcPgz31Bn8JuNq2zbmMSemwMnVoBO5Nuy2aUQWdRcVeAEz/uynd26FssS45z1IP GmyVwa8mlgf4E20nlav7O0Y54Vb0KOTErGMRyYB7HFTKEPc+dNwAVoml4jkO6+mcq5BH YnmfKxlLTvsLHhoVyLuJO9JFwrJyCz8bzL0CBxzMgrwfsF6Tjs9cgqR2B3dMLO/PFhbv iOUWkbx45VxTMWULIigjWKApiTYZzKlGAst/3oMFs2+ozx3zg+QMJkua6IK7666O438g BDmjZ2I3siIIj6NueF769FrHnc5wFuC8pY6nVAw25oLZxD9qsOBWnnyyxKtsfM8KG9bT zUug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:cc:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding; bh=RLmEbudh7LvDZdZ0Y5I6NRVzia1zTxnC4iall8Iymfo=; b=PHRHXO/vMAzlSupoGieOkLlK795/NlAJg7kZ/p3XKc265q7SNSt7L7+Awx+LDWviXW 1Xa1HoNVOXklPWgH2cpPJxe+Iarh81tJWovY2VLS9ADaG9UE9d7SYHvQnX9rBMIxGAE6 zJhawGt6uMavjVeLVxbdsk5v9T9lBYX1PemGWV06kUuETvYxGVwc9KZRe1WaVi0ZDVH6 H92sbmQJuDWJXt45U4bCpXtnMCjp10iQFONjGtNf/kWMPD+9jXeujzrS7GhgwSOLCabr zGmpBNZVoY7Wo8AcW13/8RV5CwFA/9WH4hiA3rY8SmxxzcIuhQkPjoCskWTBxsAydG8v oagA== X-Gm-Message-State: AD7BkJKE0avQcXsOFNYmVBabinTFpIPyURi/5UY0vg4KxRbKPuqNT4EL4ZkUx6IMnC18nw== X-Received: by 10.66.100.196 with SMTP id fa4mr26795015pab.37.1456798767184; Mon, 29 Feb 2016 18:19:27 -0800 (PST) Received: from [10.16.129.101] (napt.igel.co.jp. [219.106.231.132]) by smtp.googlemail.com with ESMTPSA id ux2sm40998859pac.46.2016.02.29.18.19.25 (version=TLSv1/SSLv3 cipher=OTHER); Mon, 29 Feb 2016 18:19:26 -0800 (PST) To: "Qiu, Michael" , "dev@dpdk.org" 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> <533710CFB86FA344BFBF2D6802E6028622F59D67@SHSMSX101.ccr.corp.intel.com> From: Tetsuya Mukawa Message-ID: <56D4FC2B.2060903@igel.co.jp> Date: Tue, 1 Mar 2016 11:19:23 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <533710CFB86FA344BFBF2D6802E6028622F59D67@SHSMSX101.ccr.corp.intel.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit 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:19:28 -0000 On 2016/03/01 11:00, Qiu, Michael wrote: > On 2/26/2016 4:36 PM, Tetsuya Mukawa wrote: >> On 2016/02/26 13:29, Tetsuya Mukawa wrote: >>> On 2016/02/25 16:51, Qiu, Michael wrote: >>>> On 2/24/2016 1:10 PM, Tetsuya Mukawa wrote: >>>>> On 2016/02/24 11:45, Qiu, Michael wrote: >>>>>> Hi, Tetsuya >>>>>> >>>>>> When I applied your v6 patch, I could reach 9.5Mpps with 64B packet. >>>>>> >>>>>> But when apply v9 only 8.4 Mpps, could you figure out why has >>>>>> performance drop? >>>>> Hi Michael, >>>>> >>>>> Thanks for checking it. >>>>> I tried to re-produce it, but I don't see the drop on my environment. >>>>> (My cpu is Xeon E5-2697-v2, and the performances of v6 and v9 patch are >>>>> almost 5.9Mpps) >>>>> Did you use totally same code except for vhost PMD? >>>> Yes, totally same code and same platform, only difference is versions of >>>> vhost PMD. >>>> >>>> BTW, I have set the frontend mergeable off. >>> I have checked below cases. >>> - Case1: Disable mergeable feature in virtio-net PMD. >>> - Case2: Disable mergeable feature in virtio-net PMD and use >>> '--txqflags=0xf01' option to use simple ring deploying. >>> Both cases, I still cannot see the drop. >>> >>> Anyway, I will send a few patch-series to determine the cause of drop. >>> So, could you please apply them and check the performance to determine >>> which cause the drop? >> Hi Michael, >> >> I may find what causes the drop. >> Could you please restart testpmd on guest when you see the drop, then >> check performance again? >> >> I guess the drop will occur only first time when testpmd on guest and >> host is connected. >> Here are rough steps. >> >> 1. Start testpmd on host >> 2. Start QEMU >> 3. Start testpmd on guest >> >> Then you will see the drop. >> Probably, if testpmd on guest is restarted, then you don't see the drop >> again. >> >> 4. Type 'quit' on guest. >> 5. Start testpmd on guest again. Hi Michael, I am sorry that above was caused by my miss configuration. So please ignore it. If you can have time today, could you please check v7 and v8 performance? Thanks, Tetsuya > OK, I will help to tested today. > > Thanks, > Michael >> If so, I guess the drop is caused by queue notifying. >> Could you please let me know whether your issue is above case? >> >> Thanks, >> Tetsuya >> >>> Thanks, >>> Tetsuya >>> >>>> Thanks, >>>> Michael >>>>> Thanks, >>>>> Tetsuya >>>>> >>>>>> Thanks, >>>>>> Michael >>>>>> On 2/9/2016 5:38 PM, Tetsuya Mukawa wrote: >>>>>>> The patch introduces a new PMD. This PMD is implemented as thin wrapper >>>>>>> of librte_vhost. >>>>>>> >>>>>>> >>>>>>> PATCH v9 changes: >>>>>>> - Fix a null pointer access issue implemented in v8 patch. >>>>>>> >>>>>>> PATCH v8 changes: >>>>>>> - Manage ether devices list instead of internal structures list. >>>>>>> - Remove needless NULL checking. >>>>>>> - Replace "pthread_exit" to "return NULL". >>>>>>> - Replace rte_panic to RTE_LOG, also add error handling. >>>>>>> - Remove duplicated lines. >>>>>>> - Remove needless casting. >>>>>>> - Follow coding style. >>>>>>> - Remove needless parenthesis. >>>>>>> >>>>>>> PATCH v7 changes: >>>>>>> - Remove needless parenthesis. >>>>>>> - Add release note. >>>>>>> - Remove needless line wraps. >>>>>>> - Add null pointer check in vring_state_changed(). >>>>>>> - Free queue memory in eth_queue_release(). >>>>>>> - Fix wrong variable name. >>>>>>> - Fix error handling code of eth_dev_vhost_create() and >>>>>>> rte_pmd_vhost_devuninit(). >>>>>>> - Remove needless null checking from rte_pmd_vhost_devinit/devuninit(). >>>>>>> - Use port id to create mac address. >>>>>>> - Add doxygen style comments in "rte_eth_vhost.h". >>>>>>> - Fix wrong comment in "mk/rte.app.mk". >>>>>>> >>>>>>> PATCH v6 changes: >>>>>>> - Remove rte_vhost_driver_pmd_callback_registe(). >>>>>>> - Support link status interrupt. >>>>>>> - Support queue state changed interrupt. >>>>>>> - Add rte_eth_vhost_get_queue_event(). >>>>>>> - Support numa node detection when new device is connected. >>>>>>> >>>>>>> PATCH v5 changes: >>>>>>> - Rebase on latest master. >>>>>>> - Fix RX/TX routine to count RX/TX bytes. >>>>>>> - Fix RX/TX routine not to count as error packets if enqueue/dequeue >>>>>>> cannot send all packets. >>>>>>> - Fix if-condition checking for multiqueues. >>>>>>> - Add "static" to pthread variable. >>>>>>> - Fix format. >>>>>>> - Change default behavior not to receive queueing event from driver. >>>>>>> - Split the patch to separate rte_eth_vhost_portid2vdev(). >>>>>>> >>>>>>> PATCH v4 changes: >>>>>>> - Rebase on latest DPDK tree. >>>>>>> - Fix cording style. >>>>>>> - Fix code not to invoke multiple messaging handling threads. >>>>>>> - Fix code to handle vdev parameters correctly. >>>>>>> - Remove needless cast. >>>>>>> - Remove needless if-condition before rt_free(). >>>>>>> >>>>>>> PATCH v3 changes: >>>>>>> - Rebase on latest matser >>>>>>> - Specify correct queue_id in RX/TX function. >>>>>>> >>>>>>> PATCH v2 changes: >>>>>>> - Remove a below patch that fixes vhost library. >>>>>>> The patch was applied as a separate patch. >>>>>>> - vhost: fix crash with multiqueue enabled >>>>>>> - Fix typos. >>>>>>> (Thanks to Thomas, Monjalon) >>>>>>> - Rebase on latest tree with above bernard's patches. >>>>>>> >>>>>>> PATCH v1 changes: >>>>>>> - Support vhost multiple queues. >>>>>>> - Rebase on "remove pci driver from vdevs". >>>>>>> - Optimize RX/TX functions. >>>>>>> - Fix resource leaks. >>>>>>> - Fix compile issue. >>>>>>> - Add patch to fix vhost library. >>>>>>> >>>>>>> RFC PATCH v3 changes: >>>>>>> - Optimize performance. >>>>>>> In RX/TX functions, change code to access only per core data. >>>>>>> - Add below API to allow user to use vhost library APIs for a port managed >>>>>>> by vhost PMD. There are a few limitations. See "rte_eth_vhost.h". >>>>>>> - rte_eth_vhost_portid2vdev() >>>>>>> To support this functionality, vhost library is also changed. >>>>>>> Anyway, if users doesn't use vhost PMD, can fully use vhost library APIs. >>>>>>> - Add code to support vhost multiple queues. >>>>>>> Actually, multiple queues functionality is not enabled so far. >>>>>>> >>>>>>> RFC PATCH v2 changes: >>>>>>> - Fix issues reported by checkpatch.pl >>>>>>> (Thanks to Stephen Hemminger) >>>>>>> >>>>>>> >>>>>>> Tetsuya Mukawa (2): >>>>>>> ethdev: Add a new event type to notify a queue state changed event >>>>>>> vhost: Add VHOST PMD >>>>>>> >>>>>>> MAINTAINERS | 4 + >>>>>>> config/common_linuxapp | 6 + >>>>>>> doc/guides/nics/index.rst | 1 + >>>>>>> doc/guides/rel_notes/release_2_3.rst | 4 + >>>>>>> drivers/net/Makefile | 4 + >>>>>>> drivers/net/vhost/Makefile | 62 ++ >>>>>>> drivers/net/vhost/rte_eth_vhost.c | 911 ++++++++++++++++++++++++++++ >>>>>>> drivers/net/vhost/rte_eth_vhost.h | 109 ++++ >>>>>>> drivers/net/vhost/rte_pmd_vhost_version.map | 11 + >>>>>>> lib/librte_ether/rte_ethdev.h | 2 + >>>>>>> mk/rte.app.mk | 6 + >>>>>>> 11 files changed, 1120 insertions(+) >>>>>>> create mode 100644 drivers/net/vhost/Makefile >>>>>>> create mode 100644 drivers/net/vhost/rte_eth_vhost.c >>>>>>> create mode 100644 drivers/net/vhost/rte_eth_vhost.h >>>>>>> create mode 100644 drivers/net/vhost/rte_pmd_vhost_version.map >>>>>>>