[v2] doc: update API deprecation for device reset

Message ID 20180920045959.106252-1-qi.z.zhang@intel.com
State New
Delegated to: Thomas Monjalon
Headers show
Series
  • [v2] doc: update API deprecation for device reset
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Zhang, Qi Z Sept. 20, 2018, 4:59 a.m.
Device reset may have the dependency, for example, a VF reset expects
PF ready, or a NIC function as a part of a SOC need to wait for other
parts of the system be ready, these are time-consuming tasks and will
block current thread.

So we rename rte_eth_dev_reset to rte_eth_dev_reset_async as an async
API, that makes things easy for an application that what to reset the
device from the interrupt thread since typically a
RTE_ETH_EVENT_INTR_RESET handler is invoked in interrupt thread.

RFC patch:
http://patchwork.dpdk.org/patch/44989/

Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---

v2:
- rename rte_eth_dev_reset to rte_eth_dev_reset_async


 doc/guides/rel_notes/deprecation.rst | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Thomas Monjalon Jan. 28, 2019, 12:20 a.m. | #1
Hi,

I don't remember why this deprecation notice did not get any feedback
in the 18.11 cycle. It looks to be outdated now.
In case you still plan some changes, I give my opinion below.

20/09/2018 06:59, Qi Zhang:
> Device reset may have the dependency, for example, a VF reset expects
> PF ready, or a NIC function as a part of a SOC need to wait for other
> parts of the system be ready, these are time-consuming tasks and will
> block current thread.
> 
> So we rename rte_eth_dev_reset to rte_eth_dev_reset_async as an async
> API, that makes things easy for an application that what to reset the
> device from the interrupt thread since typically a
> RTE_ETH_EVENT_INTR_RESET handler is invoked in interrupt thread.
> 
> RFC patch:
> http://patchwork.dpdk.org/patch/44989/
> 
> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>

I remmember I did not like this function when it was introduced.
I think the cases addressed by rte_eth_dev_reset() should be handled
with hotplug mechanism.

> --- a/doc/guides/rel_notes/deprecation.rst
> +++ b/doc/guides/rel_notes/deprecation.rst
> +* ethdev: In v19.02 ``rte_eth_dev_reset`` is renamed to

Is it still planned for 19.05?

> +  ``rte_eth_dev_reset_async``. As the name, it is an async API.

Why removing the old function?
We could avoid breaking applications by adding an async flavor
of the function.

> +  Application should not assume device reset is finished after
> +  ``rte_eth_dev_reset_async`` return, it should always wait for a
> +  RTE_ETH_EVENT_RESET_COMPLETE event and check the reset result.

This could be done in the synchronous flavor with sleeps in a loop.

Patch

diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index bade1e4c4..c8dd6522e 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -95,3 +95,9 @@  Deprecation Notices
   - ``rte_pdump_set_socket_dir`` will be removed;
   - The parameter, ``path``, of ``rte_pdump_init`` will be removed;
   - The enum ``rte_pdump_socktype`` will be removed.
+
+* ethdev: In v19.02 ``rte_eth_dev_reset`` is renamed to
+  ``rte_eth_dev_reset_async``. As the name, it is an async API.
+  Application should not assume device reset is finished after
+  ``rte_eth_dev_reset_async`` return, it should always wait for a
+  RTE_ETH_EVENT_RESET_COMPLETE event and check the reset result.