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