[dpdk-dev] [PATCH v11 00/11] introduce fail-safe PMD
Ferruh Yigit
ferruh.yigit at intel.com
Thu Aug 3 15:00:15 CEST 2017
On 7/18/2017 5:08 PM, Ferruh Yigit wrote:
> On 7/18/2017 1:48 PM, Gaetan Rivet wrote:
>> This PMD intercepts and manages Ethernet device removal events issued by
>> slave PMDs and re-initializes them transparently when brought back so that
>> existing applications do not need to be modified to benefit from true
>> hot-plugging support.
>>
>> The stacked PMD approach shares many similarities with the bonding PMD but
>> with a different purpose. While bonding provides the ability to group
>> several links into a single logical device for enhanced throughput and
>> supports fail-over at link level, this one manages the sudden disappearance
>> of the underlying device; it guarantees applications face a valid device in
>> working order at all times.
>>
>> Each fail-safe instance is configured to run atop one or several
>> devices, with one defined as the preferred device. Hot-plug events are
>> handled on all of them, and Tx is always directed to the preferred device
>> if present or to the next available failover device (Rx is always performed
>> on all devices for simplicity).
>>
>> Moreover, the configured slaves (preferred or failover) do not need to be
>> present at initialization time and may appear later.
>>
>> Slaves configuration is continuously synchronized with that of the virtual
>> device, which exposes their common set of capabilities to the application.
>> Failure to apply the current configuration state to a slave for any reason
>> simply reschedules its initialization.
>>
>> This patchset depends on:
>>
>> [dpdk-dev] [PATCH v4 0/8] fix hotplug API
>> http://dpdk.org/ml/archives/dev/2017-July/071340.html
>>
>> v1 --> v2:
>>
>> - Wrote documentation
>> - Fixed commit logs, signed-off-by
>> - Added LSC event support
>> - A few minor fixes
>>
>> v2 --> v3:
>>
>> - Numerous bug fixes.
>> - Complete sub-EAL rework to follow new bus API.
>> - burst protection on sub removal.
>> - more flexible sub definition.
>> - flow isolated mode support.
>>
>> v3 --> v4:
>>
>> - Split back commits
>> net/failsafe: add fast burst functions
>> net/failsafe: support device removal
>> That were squashed by error during a rebase
>> - Fix segfault on port plugin
>> - Fix isolate mode support for MLX4 ports plugin
>>
>> v4 --> v5:
>>
>> - Follow new plug / unplug API.
>>
>> v5 --> v6:
>>
>> - Follow new hotplug API.
>> - Improve usability of hotplug API.
>> - Fix rte_dev hotplug API implementation.
>> - Introduce rte_eal_devargs_rmv API as EXPERIMENTAL.
>> - Use it to clean up resources on hotplug_remove.
>> - Fix hotplug implementation and support un pci bus.
>> The scan was not idempotent, nor clean.
>> Neither were the device fields.
>> - Implement plug operation for vdev bus.
>> This is needed for hotplug support and to make the EAL
>> independent from vdev-specific API.
>> - Remove useless parameters from plug / unplug API.
>>
>> This patchset is fairly big and complex. The hotplug API has been rushed and
>> has never been tested outside of the special case of vdev bus.
>>
>> These evolutions are proposed alongside this PMD as only this PMD allows to test
>> this API at the moment, and without those evolutions this PMD cannot be used.
>>
>> v6 --> v7
>>
>> - Split the series in three, with
>> vlan filter configuration store standing alone
>> Hotplug API fixes separated
>> Fail-safe PMD on its own.
>>
>> These changes should ease integration.
>>
>> v7 --> v8
>>
>> - Fix usage examples in documentation.
>> - Use rte_eth_dev_allocated when relevant.
>>
>> v8 --> v9
>>
>> - Use calloc instead of rte_realloc for command line parsing.
>> - Include errno only when necessary.
>>
>> v9 --> v10
>>
>> - Fix rte_flow description double-free issue.
>> Thanks Raslan for finding the issue :)
>> - Use RTE_ASSERT instead of assert.
>> Integrate the debug log of the fail-safe to
>> RTE_LOG_DEBUG macro as well, allowing dynamic log levels.
>> - Remove devices post-state-sync during slave upkeep,
>> to avoid a useless early probe attempt.
>>
>> v10 --> v11
>>
>> - Added Glossary in documentation.
>> - Fixed issues oulined in [1].
>> - Removed Rx offload advertizement in feature matrix.
>>
>> [1]: http://dpdk.org/ml/archives/dev/2017-July/071406.html
>>
>> Gaetan Rivet (11):
>> ethdev: add deferred intermediate device state
>> ethdev: count devices consistently
>> net/failsafe: add fail-safe PMD
>> net/failsafe: add plug-in support
>> net/failsafe: add flexible device definition
>> net/failsafe: support flow API
>> net/failsafe: support Rx offload capabilities
>> net/failsafe: add fast burst functions
>> net/failsafe: support device removal
>> net/failsafe: support link status change event
>> net/failsafe: support flow API isolation mode
>
> Series applied to dpdk-next-net/master, thanks.
Hi Gaetan,
Can you please send a patch to update release notes to announce the new PMD?
And can you also send a web page to list the PMD within supported NICs [1]?
Thanks,
ferruh
[1]
http://dpdk.org/doc/nics
More information about the dev
mailing list