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