[dpdk-dev] [PATCH v9 0/2] Add VHOST PMD

Tetsuya Mukawa mukawa at igel.co.jp
Wed Feb 24 06:09:59 CET 2016


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



More information about the dev mailing list