[dpdk-dev] [PATCH v5 00/14] Wind River Systems AVP PMD

Ferruh Yigit ferruh.yigit at intel.com
Thu Mar 23 15:18:28 CET 2017


On 3/23/2017 11:23 AM, Allain Legacy wrote:
> This patch series submits an initial version of the AVP PMD from Wind River
> Systems.  The series includes shared header files, driver implementation,
> and changes to documentation files in support of this new driver.  The AVP
> driver is a shared memory based device.  It is intended to be used as a PMD
> within a virtual machine running on a Wind River virtualization platform.
> See: http://www.windriver.com/products/titanium-cloud/
> 
> It enables optimized packet throughput without requiring any packet
> processing in qemu. This allowed us to provide our customers with a
> significant performance increase for both DPDK and non-DPDK applications
> in the VM.   Since our AVP implementation supports VM live-migration it
> is viewed as a better alternative to PCI passthrough or PCI SRIOV since
> neither of those support VM live-migration without manual intervention
> or significant performance penalties.
> 
> Since the initial implementation of AVP devices, vhost-user has become part
> of the qemu offering with a significant performance increase over the
> original virtio implementation.  However, vhost-user still does not achieve
> the level of performance that the AVP device can provide to our customers
> for DPDK based guests.
> 
> A number of our customers have requested that we upstream the driver to
> dpdk.org.
> 
> v2:
> * Fixed coding style violations that slipped in accidentally because of an
>   out of date checkpatch.pl from an older kernel.
> 
> v3:
> * Updated 17.05 release notes to add a section for this new PMD
> * Added additional info to the AVP nic guide document to clarify the
>   benefit of using AVP over virtio.
> * Fixed spelling error in debug log missed by local checkpatch.pl version
> * Split the transmit patch to separate the stats functions as they
>   accidentally got squashed in the last patchset.
> * Fixed debug log strings so that they exceed 80 characters rather than
>   span multiple lines.
> * Renamed RTE_AVP_* defines that were in avp_ethdev.h to be AVP_* instead
> * Replaced usage of RTE_WRITE32 and RTE_READ32 with rte_write32_relaxed
>   and rte_read32_relaxed.
> * Declared rte_pci_id table as const
> 
> v4:
> * Split our interrupt handlers to a separate patch and moved to the end
>   of the series.
> * Removed memset() from stats_get API
> * Removed usage of RTE_AVP_ALIGNMENT
> * Removed unnecessary parentheses in rte_avp_common.h
> * Removed unneeded "goto unlock" where there are no statements in between
>   the goto and the end of the function.
> * Re-tested with pktgen and found that rte_eth_tx_burst() is being called
>   with 0 packets even before starting traffic which resulted in
>   incrementing oerrors; fixed in transmit patch.
> 
> v5:
> * Updated documentation to remove references to ivshmem as it lead to
>   confusion about whether AVP is exactly like ivshmem or simply based on
>   how ivshmem exports memory to a VM via a PCI device.
> * Restructured first set of patches to condense them down to a base patch
>   with the files needed to apply subsequent patches.
> * Removed static prototypes from init/uninit functions in avp_ethdev.c
> * Moved MAC addresses init to the device initialization patch because it
>   is setup by the avp_dev_create() function.
> * Split the changes to the avp.ini features file so that features are
>   marked as enabled in the patch that actually enables them.
> 
> Allain Legacy (14):
>   drivers/net: adds AVP PMD base files
>   net/avp: public header files
>   net/avp: debug log macros
>   net/avp: driver registration
>   net/avp: device initialization
>   net/avp: device configuration
>   net/avp: queue setup and release
>   net/avp: packet receive functions
>   net/avp: packet transmit functions
>   net/avp: device statistics operations
>   net/avp: device promiscuous functions
>   net/avp: device start and stop operations
>   net/avp: migration interrupt handling
>   doc: adds information related to the AVP PMD

Hi Allain,

Overall PMD looks good to me.

Only can you please update documentation based on tech board decision [1].

Repeating related part here:
"
It should be clearly stated  that right now AVP PMD is limited to use
with WindRiver hypervisor and for most cases virtio is still a preferred
virtual device to use with QEMU.
"

Thanks,
ferruh


[1]
http://dpdk.org/ml/archives/dev/2017-March/061009.html




More information about the dev mailing list