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. 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 >>> >