RE: [PATCH v3] net/iavf: add devargs to enable vf auto-reset
From: Zhang, Qi Z <hidden>
Date: 2023-09-26 12:15:40
-----Original Message----- From: Bruce Richardson <redacted> Sent: Tuesday, September 26, 2023 3:49 PM To: He, ShiyangX <redacted> Cc: dev@dpdk.org; Zhou, YidingX <redacted>; Wang, Liang- min [off-list ref]; Su, Simei [off-list ref]; Wu, Wenjun1 [off-list ref]; Zhang, Yuying [off-list ref]; Xing, Beilei [off-list ref]; Yang, Qiming [off-list ref]; Wu, Jingjing [off-list ref] Subject: Re: [PATCH v3] net/iavf: add devargs to enable vf auto-reset On Fri, Sep 15, 2023 at 01:02:49PM +0000, Shiyang He wrote:quoted
Originally, the iavf PMD does not perform special actions when it receives a PF-to-VF reset event, resulting in vf being offline and unavailable. This patch enables vf auto-reset by setting 'watchdog_period' devargs to true. The iavf PMD will perform an automatic reset to bring the vf back online when it receives a PF-to-VF event. v2: handling reset by event handler v3: change reset process Signed-off-by: Shiyang He <redacted> Signed-off-by: Liang-Min Larry Wang <redacted> --- doc/guides/nics/intel_vf.rst | 3 + doc/guides/rel_notes/release_23_11.rst | 3 + drivers/net/iavf/iavf.h | 7 +++ drivers/net/iavf/iavf_ethdev.c | 86 +++++++++++++++++++++++--- drivers/net/iavf/iavf_rxtx.c | 52 ++++++++++------ drivers/net/iavf/iavf_vchnl.c | 11 +++- 6 files changed, 135 insertions(+), 27 deletions(-)diff --git a/doc/guides/nics/intel_vf.rstb/doc/guides/nics/intel_vf.rst index d365dbc185..c0acd2a7f5 100644--- a/doc/guides/nics/intel_vf.rst +++ b/doc/guides/nics/intel_vf.rst@@ -101,6 +101,9 @@ For more detail on SR-IOV, please refer to thefollowing documents:quoted
Set ``devargs`` parameter ``watchdog_period`` to adjust the watchdogperiod in microseconds, or set it to 0 to disable the watchdog,quoted
for example, ``-a 18:01.0,watchdog_period=5000`` or ``-a18:01.0,watchdog_period=0``.quoted
+ Enable vf auto-reset by setting the ``devargs`` parameter like ``-a18:01.0,enable_auto_reset=1`` when IAVF is backedquoted
+ by an Intel(r) E810 device or an Intel(r) 700 Series Ethernet device. +Why do we need a devargs for this? If the VF is unavailable - as you mention in the commit log above - should this behaviour not always be the case without the user having to ask?
Ideally it does not need, but with below considerations: 1. Not break existing scenario, which still assume some application will call dev_reset /dev_configure/ queue_setup / ... after receive RTE_ETH_EVENT_INTR_RESET event to recover the VF manually, the devargs make sure application be aware of this new feature and will not call rte_eth_dev_reset which will fail now. 2. intent to ensure a smoother transition, in case some corner case issues evaded our validation, keeping this devargs provides us with the flexibility to remove it once we determine that the implementation is stable enough.
/Bruce