[dpdk-dev] [PATCH v9 0/2] Add VHOST PMD
Tetsuya Mukawa
mukawa at igel.co.jp
Tue Mar 1 03:19:23 CET 2016
On 2016/03/01 11:00, Qiu, Michael wrote:
> On 2/26/2016 4:36 PM, Tetsuya Mukawa wrote:
>> On 2016/02/26 13:29, Tetsuya Mukawa wrote:
>>> On 2016/02/25 16:51, Qiu, Michael wrote:
>>>> 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.
>>> I have checked below cases.
>>> - Case1: Disable mergeable feature in virtio-net PMD.
>>> - Case2: Disable mergeable feature in virtio-net PMD and use
>>> '--txqflags=0xf01' option to use simple ring deploying.
>>> Both cases, I still cannot see the drop.
>>>
>>> Anyway, I will send a few patch-series to determine the cause of drop.
>>> So, could you please apply them and check the performance to determine
>>> which cause the drop?
>> Hi Michael,
>>
>> I may find what causes the drop.
>> Could you please restart testpmd on guest when you see the drop, then
>> check performance again?
>>
>> I guess the drop will occur only first time when testpmd on guest and
>> host is connected.
>> Here are rough steps.
>>
>> 1. Start testpmd on host
>> 2. Start QEMU
>> 3. Start testpmd on guest
>>
>> Then you will see the drop.
>> Probably, if testpmd on guest is restarted, then you don't see the drop
>> again.
>>
>> 4. Type 'quit' on guest.
>> 5. Start testpmd on guest again.
Hi Michael,
I am sorry that above was caused by my miss configuration.
So please ignore it.
If you can have time today, could you please check v7 and v8 performance?
Thanks,
Tetsuya
> OK, I will help to tested today.
>
> Thanks,
> Michael
>> If so, I guess the drop is caused by queue notifying.
>> Could you please let me know whether your issue is above case?
>>
>> Thanks,
>> Tetsuya
>>
>>> Thanks,
>>> Tetsuya
>>>
>>>> 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
>>>>>>>
More information about the dev
mailing list