#
009c327c |
| 29-Jan-2018 |
Olivier Matz <olivier.matz@6wind.com> |
net/failsafe: use SPDX tags in 6WIND copyrighted files
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Thomas Monjalon <thomas@
net/failsafe: use SPDX tags in 6WIND copyrighted files
Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
dcd0c9c3 |
| 22-Jan-2018 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: use ownership mechanism for slaves
Fail-safe PMD sub devices management is based on ethdev port mechanism. So, the sub-devices management structures are exposed to other DPDK entities
net/failsafe: use ownership mechanism for slaves
Fail-safe PMD sub devices management is based on ethdev port mechanism. So, the sub-devices management structures are exposed to other DPDK entities which may use them in parallel to fail-safe PMD.
Use the new port ownership mechanism to avoid multiple managments of fail-safe PMD sub-devices.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
709676bc |
| 25-Jan-2018 |
Moti Haimovsky <motih@mellanox.com> |
net/failsafe: add Rx interrupts
This patch is the last patch in the series of patches aimed to add support for registering and waiting for Rx interrupts in failsafe PMD. This allows applications to
net/failsafe: add Rx interrupts
This patch is the last patch in the series of patches aimed to add support for registering and waiting for Rx interrupts in failsafe PMD. This allows applications to wait for Rx events from the PMD using the DPDK rte_epoll subsystem. The failsafe PMD presents to the application a facade of a single device to be handled by the application while internally it manages several devices on behalf of the application including packets transmission and reception. The Proposed failsafe Rx interrupt scheme follows this approach. The failsafe PMD will present the application with a single set of Rx interrupt vectors representing the failsafe Rx queues, while internally it will serve as an interrupt proxy for its subdevices. will allow applications to wait for Rx traffic from the failsafe PMD by registering and waiting for Rx events from its Rx queues. In order to support this the following is suggested: * Every Rx queue in the failsafe (virtual) device will be assigned * a Linux event file descriptor (efd) and an enable_interrupts flag. * The failsafe PMD will fill in its rte_intr_handle structure with the Rx efds assigned previously and register them with the EAL. * The failsafe driver will create a private epoll fd (epfd) and * will allocate enough space to handle all the Rx events from all its subdevices. * Acting as an application, for each Rx queue in each active subdevice the failsafe will: o Register the Rx queue with the EAL. o Pass the EAL the failsafe private epoll fd as the epfd to register the Rx queue event on. o Pass the EAL, as a parameter, the pointer to the failsafe Rx queue that handles this Rx queue. o Using the DPDK service callbacks, the failsafe PMD will launch an Rx proxy service that will Wait on the epoll fd for Rx events from the sub-devices. o For each Rx event received the proxy service will - Retrieve the pointer to failsafe Rx queue that handles this subdevice Rx queue from the user info returned by the EAL. - Trigger a failsafe Rx event on that queue by writing to the event fd unless interrupts are disabled for that queue. * The failsafe pmd will also implement the rx_queue_intr_enable * and rx_queue_intr_disable routines that will enable and disable Rx interrupts respectively on both on the failsafe and its subdevices.
Signed-off-by: Moti Haimovsky <motih@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
f234e5bd |
| 25-Jan-2018 |
Moti Haimovsky <motih@mellanox.com> |
net/failsafe: register slaves Rx interrupts
This commit adds the following functionality to failsafe PMD: * Register and unregister slaves Rx interrupts. * Enable and Disable slaves Rx interrupts. T
net/failsafe: register slaves Rx interrupts
This commit adds the following functionality to failsafe PMD: * Register and unregister slaves Rx interrupts. * Enable and Disable slaves Rx interrupts. The interrupts events generated by the slaves are not handled in this commit.
Signed-off-by: Moti Haimovsky <motih@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
9e0360ae |
| 25-Jan-2018 |
Moti Haimovsky <motih@mellanox.com> |
net/failsafe: register as Rx interrupt mode
This patch adds registering the Rx queues of the failsafe PMD with EAL Rx interrupts subsystem. Each failsafe RX queue is assigned with a unique eventfd a
net/failsafe: register as Rx interrupt mode
This patch adds registering the Rx queues of the failsafe PMD with EAL Rx interrupts subsystem. Each failsafe RX queue is assigned with a unique eventfd and an enable interrupts flag. The PMD creates an interrupt vector containing the above eventfds and Registers it with EAL. The PMD also implements the Rx interrupts enable and disable interface routines. This patch does not implement the generation of Rx interrupts, so an application can now wait for failsafe Rx interrupts but it will not receive one.
Signed-off-by: Moti Haimovsky <motih@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
ffc905f3 |
| 22-Jan-2018 |
Ferruh Yigit <ferruh.yigit@intel.com> |
ethdev: separate driver APIs
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file.
There is no update in header content and since ethde
ethdev: separate driver APIs
Create a rte_ethdev_driver.h file and move PMD specific APIs here. Drivers updated to include this new header file.
There is no update in header content and since ethdev.h included by ethdev_driver.h, nothing changed from driver point of view, only logically grouping of APIs. From applications point of view they can't access to driver specific APIs anymore and they shouldn't.
More PMD specific data structures still remain in ethdev.h because of inline functions in header use them. Those will be handled separately.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Thomas Monjalon <thomas@monjalon.net>
show more ...
|
#
ae80146c |
| 20-Jan-2018 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: fix removed device handling
There is time between the physical removal of the device until sub-device PMDs get a RMV interrupt. At this time DPDK PMDs and applications still don't know
net/failsafe: fix removed device handling
There is time between the physical removal of the device until sub-device PMDs get a RMV interrupt. At this time DPDK PMDs and applications still don't know about the removal and may call sub-device control operation which should return an error.
In previous code this error is reported to the application contrary to fail-safe principle that the app should not be aware of device removal.
Add an removal check in each relevant control command error flow and prevent an error report to application when the sub-device is removed.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
53a2d53f |
| 18-Jan-2018 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: add probed device capture
Previous fail-safe code didn't support probed sub-devices capture and failed when it tried to probe them.
Skip fail-safe sub-device probing when it already w
net/failsafe: add probed device capture
Previous fail-safe code didn't support probed sub-devices capture and failed when it tried to probe them.
Skip fail-safe sub-device probing when it already was probed.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
d1b961db |
| 18-Jan-2018 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: add fd parameter
This parameter enables applications to provide device definitions through an arbitrary file descriptor number.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind
net/failsafe: add fd parameter
This parameter enables applications to provide device definitions through an arbitrary file descriptor number.
Signed-off-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
8052bbd9 |
| 19-Dec-2017 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: improve Rx sub-devices iteration
Connecting the sub-devices each other by cyclic linked list can help to iterate over them by Rx burst functions because there is no need to check the s
net/failsafe: improve Rx sub-devices iteration
Connecting the sub-devices each other by cyclic linked list can help to iterate over them by Rx burst functions because there is no need to check the sub-devices ring wraparound.
Create the aforementioned linked-list and change the Rx burst functions iteration accordingly.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
1e2670a9 |
| 19-Dec-2017 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: mitigate data plane atomic operations
Fail-safe uses atomic operations to protect sub-device close operation calling by host thread in removal time while the removed sub-device burst f
net/failsafe: mitigate data plane atomic operations
Fail-safe uses atomic operations to protect sub-device close operation calling by host thread in removal time while the removed sub-device burst functions are still in process by application threads.
Using "set" atomic operations is a little bit more efficient than "add" or "sub" atomic operations because "set" shouldn't read the value and in fact, it does not need a special atomic mechanism in x86 platforms.
Replace "add 1" and "sub 1" atomic operations by "set 1" and "set 0" atomic operations.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
9dda3e33 |
| 21-Oct-2017 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: add timestamp to stats snapshot
Fail-safe attempts to read an ultimate statistics on removal time; if that fails, it uses the latest recorded snapshot.
This patch adds timestamp for e
net/failsafe: add timestamp to stats snapshot
Fail-safe attempts to read an ultimate statistics on removal time; if that fails, it uses the latest recorded snapshot.
This patch adds timestamp for each stats snapshot to allow a time report since the last snapshot in case of the above failure.
By this way, the user can estimate the stats read accuracy.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
f8244c63 |
| 29-Sep-2017 |
Zhiyong Yang <zhiyong.yang@intel.com> |
ethdev: increase port id range
Extend port_id definition from uint8_t to uint16_t in lib and drivers data structures, specifically rte_eth_dev_data. Modify the APIs, drivers and app using port_id at
ethdev: increase port id range
Extend port_id definition from uint8_t to uint16_t in lib and drivers data structures, specifically rte_eth_dev_data. Modify the APIs, drivers and app using port_id at the same time.
Fix some checkpatch issues from the original code and remove some unnecessary cast operations.
release_17_11 and deprecation docs have been updated in this patch.
Signed-off-by: Zhiyong Yang <zhiyong.yang@intel.com> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
6265ab51 |
| 07-Sep-2017 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: stat support enhancement
The previous stats code returned only the current TX sub device stats.
This enhancement extends it to return the sum of all sub devices stats with history of
net/failsafe: stat support enhancement
The previous stats code returned only the current TX sub device stats.
This enhancement extends it to return the sum of all sub devices stats with history of removed sub-devices.
Dedicated stats accumulator saves the stat history of all sub device remove events.
Each failsafe sub device contains the last stats asked by the user and updates the accumulator in removal time.
I would like to implement ultimate snapshot on removal time. The stats_get API needs to be changed to return error in the case it is too late to retrieve statistics. By this way, failsafe can get stats snapshot in removal interrupt callback for each PMD which can give stats after removal event.
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
495ca788 |
| 23-Aug-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: safer subdev iterator
The sub_device iterator macro should follow the general gist of the tailq API for an easier understanding and safer use.
Once the loop has finished, the iterator
net/failsafe: safer subdev iterator
The sub_device iterator macro should follow the general gist of the tailq API for an easier understanding and safer use.
Once the loop has finished, the iterator should be set to NULL. If no sub_device was iterated upon, the iterator should still be NULL.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
d8d89966 |
| 16-Aug-2017 |
Matan Azrad <matan@mellanox.com> |
net/failsafe: fix Tx sub device deactivating
The corrupted code couldn't recognize that all sub devices were not ready for Tx traffic when failsafe PMD was trying to switch device because of an unre
net/failsafe: fix Tx sub device deactivating
The corrupted code couldn't recognize that all sub devices were not ready for Tx traffic when failsafe PMD was trying to switch device because of an unreachable condition using.
Hence, the current Tx sub device variable was not updated correctly.
The fix removed the unreachable branch and added new one in the right place respecting the original intent.
Fixes: ebea83f899d8 ("net/failsafe: add plug-in support") Fixes: 598fb8aec6f6 ("net/failsafe: support device removal") Cc: stable@dpdk.org
Signed-off-by: Matan Azrad <matan@mellanox.com> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
show more ...
|
#
2cc52cd7 |
| 18-Jul-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: support flow API isolation mode
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
|
#
ad7d6a35 |
| 18-Jul-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: support link status change event
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
|
#
598fb8ae |
| 18-Jul-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: support device removal
Listen to INTR_RMV events issued by slaves. Add atomic flags on slave queues to detect use of slave bursts function. If a removal is detected, set the recollecti
net/failsafe: support device removal
Listen to INTR_RMV events issued by slaves. Add atomic flags on slave queues to detect use of slave bursts function. If a removal is detected, set the recollection flag on this slave.
During a slave upkeep round, if its recollection flag is set and its burst functions are not in use by any thread, remove that slave.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com> Acked-by: Olga Shern <olgas@mellanox.com>
show more ...
|
#
72a57bfd |
| 18-Jul-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: add fast burst functions
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com> Acked-by: Olga Shern <olgas@mellanox.com>
|
#
b737a1ee |
| 18-Jul-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: support flow API
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com> Acked-by: Olga Shern <olgas@mellanox.com>
|
#
a0194d82 |
| 18-Jul-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: add flexible device definition
Add the "exec" device type. The parameters given to this type of device will be executed in a shell. The output of this command is then used as a definit
net/failsafe: add flexible device definition
Add the "exec" device type. The parameters given to this type of device will be executed in a shell. The output of this command is then used as a definition for a device.
That command can be re-interpreted if the related device is not plugged-in. It allows for a device definition to react to system changes (e.g. changing PCI bus for a given device).
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com> Acked-by: Olga Shern <olgas@mellanox.com>
show more ...
|
#
ebea83f8 |
| 18-Jul-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: add plug-in support
Periodically check for the existence of a device. If a device has not been initialized and exists on the system, then it is probed and configured.
The configuratio
net/failsafe: add plug-in support
Periodically check for the existence of a device. If a device has not been initialized and exists on the system, then it is probed and configured.
The configuration process strives to synchronize the states between the plugged-in sub-device and the fail-safe device.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com> Acked-by: Olga Shern <olgas@mellanox.com>
show more ...
|
#
a46f8d58 |
| 18-Jul-2017 |
Gaetan Rivet <gaetan.rivet@6wind.com> |
net/failsafe: add fail-safe PMD
Introduce the fail-safe poll mode driver initialization and enable its build infrastructure.
This PMD allows for applications to benefit from true hot-plugging suppo
net/failsafe: add fail-safe PMD
Introduce the fail-safe poll mode driver initialization and enable its build infrastructure.
This PMD allows for applications to benefit from true hot-plugging support without having to implement it.
It intercepts and manages Ethernet device removal events issued by slave PMDs and re-initializes them transparently when brought back. It also allows defining a contingency to the removal of a device, by designating a fail-over device that will take on transmitting operations if the preferred device is removed.
Applications only see a fail-safe instance, without caring for underlying activity ensuring their continued operations.
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com> Acked-by: Olga Shern <olgas@mellanox.com>
show more ...
|