{"id":833263,"url":"http://patchwork.ozlabs.org/api/1.2/covers/833263/?format=json","web_url":"http://patchwork.ozlabs.org/project/openvswitch/cover/1509614611-4233-1-git-send-email-ciara.loftus@intel.com/","project":{"id":47,"url":"http://patchwork.ozlabs.org/api/1.2/projects/47/?format=json","name":"Open vSwitch","link_name":"openvswitch","list_id":"ovs-dev.openvswitch.org","list_email":"ovs-dev@openvswitch.org","web_url":"http://openvswitch.org/","scm_url":"git@github.com:openvswitch/ovs.git","webscm_url":"https://github.com/openvswitch/ovs","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<1509614611-4233-1-git-send-email-ciara.loftus@intel.com>","list_archive_url":null,"date":"2017-11-02T09:23:29","name":"[ovs-dev,v4,0/2] vHost Dequeue Zero Copy","submitter":{"id":67255,"url":"http://patchwork.ozlabs.org/api/1.2/people/67255/?format=json","name":"Ciara Loftus","email":"ciara.loftus@intel.com"},"mbox":"http://patchwork.ozlabs.org/project/openvswitch/cover/1509614611-4233-1-git-send-email-ciara.loftus@intel.com/mbox/","series":[{"id":11459,"url":"http://patchwork.ozlabs.org/api/1.2/series/11459/?format=json","web_url":"http://patchwork.ozlabs.org/project/openvswitch/list/?series=11459","date":"2017-11-02T09:23:29","name":"vHost Dequeue Zero Copy","version":4,"mbox":"http://patchwork.ozlabs.org/series/11459/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/833263/comments/","headers":{"Return-Path":"<ovs-dev-bounces@openvswitch.org>","X-Original-To":["incoming@patchwork.ozlabs.org","dev@openvswitch.org"],"Delivered-To":["patchwork-incoming@bilbo.ozlabs.org","ovs-dev@mail.linuxfoundation.org"],"Authentication-Results":"ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=openvswitch.org\n\t(client-ip=140.211.169.12; helo=mail.linuxfoundation.org;\n\tenvelope-from=ovs-dev-bounces@openvswitch.org;\n\treceiver=<UNKNOWN>)","Received":["from mail.linuxfoundation.org (mail.linuxfoundation.org\n\t[140.211.169.12])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3ySKQQ4MJmz9sNw\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu,  2 Nov 2017 20:23:41 +1100 (AEDT)","from mail.linux-foundation.org (localhost [127.0.0.1])\n\tby mail.linuxfoundation.org (Postfix) with ESMTP id 644E0A7A;\n\tThu,  2 Nov 2017 09:23:38 +0000 (UTC)","from smtp1.linuxfoundation.org (smtp1.linux-foundation.org\n\t[172.17.192.35])\n\tby mail.linuxfoundation.org (Postfix) with ESMTPS id A7B3B6C\n\tfor <dev@openvswitch.org>; Thu,  2 Nov 2017 09:23:37 +0000 (UTC)","from mga05.intel.com (mga05.intel.com [192.55.52.43])\n\tby smtp1.linuxfoundation.org (Postfix) with ESMTPS id 643D816A\n\tfor <dev@openvswitch.org>; Thu,  2 Nov 2017 09:23:37 +0000 (UTC)","from orsmga004.jf.intel.com ([10.7.209.38])\n\tby fmsmga105.fm.intel.com with ESMTP; 02 Nov 2017 02:23:36 -0700","from sivswdev01.ir.intel.com (HELO localhost.localdomain)\n\t([10.237.217.45])\n\tby orsmga004.jf.intel.com with ESMTP; 02 Nov 2017 02:23:35 -0700"],"X-Greylist":"domain auto-whitelisted by SQLgrey-1.7.6","X-ExtLoop1":"1","X-IronPort-AV":"E=Sophos;i=\"5.44,333,1505804400\"; d=\"scan'208\";a=\"145057657\"","From":"Ciara Loftus <ciara.loftus@intel.com>","To":"dev@openvswitch.org","Date":"Thu,  2 Nov 2017 09:23:29 +0000","Message-Id":"<1509614611-4233-1-git-send-email-ciara.loftus@intel.com>","X-Mailer":"git-send-email 1.7.0.7","X-Spam-Status":"No, score=-2.3 required=5.0 tests=RCVD_IN_DNSWL_MED,\n\tRP_MATCHES_RCVD autolearn=disabled version=3.3.1","X-Spam-Checker-Version":"SpamAssassin 3.3.1 (2010-03-16) on\n\tsmtp1.linux-foundation.org","Subject":"[ovs-dev] [PATCH v4 0/2] vHost Dequeue Zero Copy","X-BeenThere":"ovs-dev@openvswitch.org","X-Mailman-Version":"2.1.12","Precedence":"list","List-Id":"<ovs-dev.openvswitch.org>","List-Unsubscribe":"<https://mail.openvswitch.org/mailman/options/ovs-dev>,\n\t<mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe>","List-Archive":"<http://mail.openvswitch.org/pipermail/ovs-dev/>","List-Post":"<mailto:ovs-dev@openvswitch.org>","List-Help":"<mailto:ovs-dev-request@openvswitch.org?subject=help>","List-Subscribe":"<https://mail.openvswitch.org/mailman/listinfo/ovs-dev>,\n\t<mailto:ovs-dev-request@openvswitch.org?subject=subscribe>","MIME-Version":"1.0","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Sender":"ovs-dev-bounces@openvswitch.org","Errors-To":"ovs-dev-bounces@openvswitch.org"},"content":"This patch enables optional dequeue zero copy for vHost ports.\nThis gives a performance increase for some use cases. I'm using\nthe cover letter to report my results.\n\nvhost (vm1) -> vhost (vm2)\nUsing testpmd to source (txonly) in vm1 and sink (rxonly) in vm2.\n4C1Q 64B packets: 5.05Mpps -> 5.52Mpps = 9.2% improvement\n256B:    4.69 vs 5.42 Mpps (+~16%)\n512B:    4.04 vs 4.90 Mpps (+~21%)\n1518B:    2.51 vs 3.05 Mpps (+~22%)\n\nvhost (virtio_user backend 1) -> vhost (virtio_user backend 2)\nUsing 2 instances of testpmd, each with a virtio_user backend\nconnected to one of the two vhost ports created in OVS.\n2C1Q 1518B packets: 2.59Mpps -> 3.09Mpps = 19.3% improvement\n\nvhost -> phy\nUsing testpmd to source (txonly) and sink in the NIC\n1C1Q 64B packets: 6.81Mpps -> 7.76Mpps = 13.9% improvement\n\nphy -> vhost -> phy\nNo improvement measured\n\nv4:\n* Rebase\n\nv3:\n* Documentation updates:\n** Style fixes\n** Elaborate on expected logs\n** Describe how to disable the feature\n** Describe NIC descriptors limitation in more detail\n\nv2 changes:\n* Mention feature is disabled by default in the documentation\n* Add PHY-VM-PHY with vHost dequeue zero copy documentation guide\n* Line wrap link to DPDK documentation\n* Rename zc_enabled to dq_zc_enabled for future-proofing\n* Mention feature is available for both vHost port types in the docs\n* In practise, rebooting the VM doesn't always enable the feature if\nenabled post-boot, so update the documentation to suggest a shutdown\nrather than a reboot. The reason why this doesn't work is probably\nbecause the total downtime during reboot isn't enough to allow a vhost\ndevice unregister & re-register with the new feature, so when the VM\nstarts again it doesn't pick up the new device as it hasn't been\nre-registered in time.\n\nCiara Loftus (2):\n  netdev-dpdk: Helper function for vHost device setup\n  netdev-dpdk: Enable optional dequeue zero copy for vHost User\n\n Documentation/howto/dpdk.rst             |  33 +++++\n Documentation/topics/dpdk/vhost-user.rst |  58 +++++++++\n NEWS                                     |   3 +\n lib/netdev-dpdk.c                        | 202 +++++++++++++++++++++----------\n vswitchd/vswitch.xml                     |  11 ++\n 5 files changed, 245 insertions(+), 62 deletions(-)"}