[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