From: "Wang, Haiyue" <haiyue.wang@intel.com>
To: "Daly, Jeff" <jeffd@silicom-usa.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "stable@dpdk.org" <stable@dpdk.org>,
Xiaolong Ye <xiaolong.ye@intel.com>,
Xiao Zhang <xiao.zhang@intel.com>,
"Zhao1, Wei" <wei.zhao1@intel.com>,
Lunyuan Cui <lunyuanx.cui@intel.com>
Subject: RE: [PATCH v6 1/2] net/ixgbe: Limit SDP3 check of TX_DISABLE to appropriate devices
Date: Wed, 13 Apr 2022 01:21:32 +0000 [thread overview]
Message-ID: <BYAPR11MB3495A4BCD1DCDB79877FFECDF7EC9@BYAPR11MB3495.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20220412174220.31195-2-jeffd@silicom-usa.com>
> -----Original Message-----
> From: Jeff Daly <jeffd@silicom-usa.com>
> Sent: Wednesday, April 13, 2022 01:42
> To: dev@dpdk.org
> Cc: stable@dpdk.org; Wang, Haiyue <haiyue.wang@intel.com>; Xiaolong Ye <xiaolong.ye@intel.com>; Xiao
> Zhang <xiao.zhang@intel.com>; Zhao1, Wei <wei.zhao1@intel.com>; Lunyuan Cui <lunyuanx.cui@intel.com>
> Subject: [PATCH v6 1/2] net/ixgbe: Limit SDP3 check of TX_DISABLE to appropriate devices
>
> 1ca05831b9b added a check that SDP3 (used as a TX_DISABLE output to the
> SFP cage on these cards) is not asserted to avoid incorrectly reporting
> link up when the SFP's laser is turned off.
>
> ff8162cb957 limited this workaround to fiber ports
>
> This patch:
> * Adds devarg 'fiber_sdp3_no_tx_disable' not all fiber ixgbe devs use
> SDP3 as TX_DISABLE
>
> Fixes: 1ca05831b9b ("net/ixgbe: fix link status")
> Fixes: ff8162cb957 ("net/ixgbe: fix link status")
> Cc: stable@dpdk.org
This is new for soc for BIG change, not cc to stable.
>
> Signed-off-by: Jeff Daly <jeffd@silicom-usa.com>
> ---
> drivers/net/ixgbe/ixgbe_ethdev.c | 39 +++++++++++++++++++++++++++++++-
> drivers/net/ixgbe/ixgbe_ethdev.h | 3 +++
> 2 files changed, 41 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 2da3f67bbc..f31bbb7895 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -128,6 +128,13 @@
> #define IXGBE_EXVET_VET_EXT_SHIFT 16
> #define IXGBE_DMATXCTL_VT_MASK 0xFFFF0000
>
> +#define IXGBE_DEVARG_FIBER_SDP3_NOT_TX_DISABLE "fiber_sdp3_no_tx_disable"
> +
'platform' may be a good arg for the soc related change.
dpdk-testpmd -a af:10.0,platform=xxx - -i
enum ixgbe_platform_type {
ixgbe_platform_unknown = 0,
ixgbe_platform_soc_atom, ??? You can specify it.
enum ixgbe_media_type ixgbe_get_platform_type(xxx)
{
return xxx;
}
> +static const char * const ixgbe_valid_arguments[] = {
> + IXGBE_DEVARG_FIBER_SDP3_NOT_TX_DISABLE,
> + NULL
> +};
> +
> #define IXGBEVF_DEVARG_PFLINK_FULLCHK "pflink_fullchk"
>
> static const char * const ixgbevf_valid_arguments[] = {
> @@ -348,6 +355,8 @@ static int ixgbe_dev_udp_tunnel_port_del(struct rte_eth_dev *dev,
> static int ixgbe_filter_restore(struct rte_eth_dev *dev);
> static void ixgbe_l2_tunnel_conf(struct rte_eth_dev *dev);
> static int ixgbe_wait_for_link_up(struct ixgbe_hw *hw);
> +static int devarg_handle_int(__rte_unused const char *key, const char *value,
> + void *extra_args);
>
> /*
> * Define VF Stats MACRO for Non "cleared on read" register
> @@ -1032,6 +1041,29 @@ ixgbe_swfw_lock_reset(struct ixgbe_hw *hw)
> ixgbe_release_swfw_semaphore(hw, mask);
> }
>
> +static void
> +ixgbe_parse_devargs(struct ixgbe_adapter *adapter,
> + struct rte_devargs *devargs)
> +{
> + struct rte_kvargs *kvlist;
> + uint16_t sdp3_no_tx_disable;
> +
> + if (devargs == NULL)
> + return;
> +
> + kvlist = rte_kvargs_parse(devargs->args, ixgbe_valid_arguments);
> + if (kvlist == NULL)
> + return;
> +
> + if (rte_kvargs_count(kvlist, IXGBE_DEVARG_FIBER_SDP3_NOT_TX_DISABLE) == 1 &&
> + rte_kvargs_process(kvlist, IXGBE_DEVARG_FIBER_SDP3_NOT_TX_DISABLE,
> + devarg_handle_int, &sdp3_no_tx_disable) == 0 &&
> + sdp3_no_tx_disable == 1)
> + adapter->sdp3_no_tx_disable = 1;
> +
> + rte_kvargs_free(kvlist);
> +}
> +
> /*
> * This function is based on code in ixgbe_attach() in base/ixgbe.c.
> * It returns 0 on success.
> @@ -1095,6 +1127,8 @@ eth_ixgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
> }
>
> rte_atomic32_clear(&ad->link_thread_running);
> + ixgbe_parse_devargs(eth_dev->data->dev_private,
> + pci_dev->device.devargs);
> rte_eth_copy_pci_info(eth_dev, pci_dev);
> eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
>
> @@ -4261,7 +4295,8 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
> return rte_eth_linkstatus_set(dev, &link);
> }
>
> - if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber) {
> + if (ixgbe_get_media_type(hw) == ixgbe_media_type_fiber &&
> + !ad->sdp3_no_tx_disable) {
> esdp_reg = IXGBE_READ_REG(hw, IXGBE_ESDP);
> if ((esdp_reg & IXGBE_ESDP_SDP3))
> link_up = 0;
> @@ -8250,6 +8285,8 @@ ixgbe_dev_macsec_register_disable(struct rte_eth_dev *dev)
> RTE_PMD_REGISTER_PCI(net_ixgbe, rte_ixgbe_pmd);
> RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe, pci_id_ixgbe_map);
> RTE_PMD_REGISTER_KMOD_DEP(net_ixgbe, "* igb_uio | uio_pci_generic | vfio-pci");
> +RTE_PMD_REGISTER_PARAM_STRING(net_ixgbe,
> + IXGBE_DEVARG_FIBER_SDP3_NOT_TX_DISABLE "=<0|1>");
> RTE_PMD_REGISTER_PCI(net_ixgbe_vf, rte_ixgbevf_pmd);
> RTE_PMD_REGISTER_PCI_TABLE(net_ixgbe_vf, pci_id_ixgbevf_map);
> RTE_PMD_REGISTER_KMOD_DEP(net_ixgbe_vf, "* igb_uio | vfio-pci");
> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.h b/drivers/net/ixgbe/ixgbe_ethdev.h
> index 69e0e82a5b..cc6049a66a 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.h
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.h
> @@ -501,6 +501,9 @@ struct ixgbe_adapter {
> /* For RSS reta table update */
> uint8_t rss_reta_updated;
>
> + /* Used for limiting SDP3 TX_DISABLE checks */
> + uint8_t sdp3_no_tx_disable;
> +
> /* Used for VF link sync with PF's physical and logical (by checking
> * mailbox status) link status.
> */
> --
> 2.25.1
next prev parent reply other threads:[~2022-04-13 1:21 UTC|newest]
Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-06 22:19 [PATCH v2 0/7] ixgbe SFP handling fixes Stephen Douthit
2021-12-06 22:19 ` [PATCH v2 1/7] net/ixgbe: Fix ixgbe_is_sfp() to return valid result for X550EM_a devs Stephen Douthit
2021-12-20 7:45 ` Wang, Haiyue
2021-12-20 21:32 ` Stephen Douthit
2021-12-06 22:19 ` [PATCH v2 2/7] net/ixgbe: Add ixgbe_check_sfp_cage() for testing state of PRSNT# signal Stephen Douthit
2021-12-06 22:19 ` [PATCH v2 3/7] net/ixgbe: Check that SFF-8472 soft rate select is supported before write Stephen Douthit
2021-12-20 7:53 ` Wang, Haiyue
2021-12-20 21:32 ` Stephen Douthit
2021-12-21 1:15 ` Wang, Haiyue
2021-12-21 8:57 ` Morten Brørup
2021-12-22 1:24 ` Wang, Haiyue
2021-12-22 10:43 ` Morten Brørup
2021-12-22 16:03 ` Wang, Haiyue
2021-12-22 19:13 ` Morten Brørup
2021-12-22 21:44 ` Stephen Douthit
2021-12-23 0:55 ` Wang, Haiyue
2022-01-18 21:06 ` Stephen Douthit
2022-01-19 0:31 ` Wang, Haiyue
2022-02-07 16:04 ` Ferruh Yigit
2022-02-08 13:50 ` Jeff Daly
2022-02-08 14:52 ` Ferruh Yigit
2022-02-09 4:00 ` Wang, Haiyue
2022-02-09 13:33 ` Ferruh Yigit
2022-02-09 13:43 ` Wang, Haiyue
2021-12-21 14:05 ` Stephen Douthit
2021-12-06 22:19 ` [PATCH v2 4/7] net/ixgbe: Run 82599 link status workaround only on affected devices Stephen Douthit
2021-12-06 22:19 ` [PATCH v2 5/7] net/ixgbe: Fix SFP detection and linking on hotplug Stephen Douthit
2022-02-07 16:07 ` Ferruh Yigit
2021-12-06 22:19 ` [PATCH v2 6/7] net/ixgbe: Retry SFP ID read field to handle misbehaving SFPs Stephen Douthit
2021-12-06 22:19 ` [PATCH v2 7/7] net/ixgbe: Treat 1G Cu SFPs as 1G SX on the X550 devices Stephen Douthit
2021-12-17 9:29 ` [PATCH v2 0/7] ixgbe SFP handling fixes Thomas Monjalon
2022-02-24 15:23 ` [PATCH v3 0/3] " Jeff Daly
2022-02-24 15:23 ` [PATCH v3 1/3] net/ixgbe: Fix ixgbe_is_sfp() to return valid result for X550EM_a devs Jeff Daly
2022-02-24 15:23 ` [PATCH v3 2/3] net/ixgbe: Limit SDP3 check of TX_DISABLE to appropriate devices Jeff Daly
2022-02-24 15:23 ` [PATCH v3 3/3] net/ixgbe: Fix SFP detection and linking on hotplug Jeff Daly
2022-02-25 1:56 ` Wang, Haiyue
2022-02-25 20:50 ` [PATCH v4 " Jeff Daly
2022-02-26 15:57 ` Ferruh Yigit
2022-02-28 15:29 ` [PATCH v4 0/3] ixgbe SFP handling fixes Jeff Daly
2022-02-28 15:29 ` [PATCH v4 1/3] net/ixgbe: Fix ixgbe_is_sfp() to return valid result for X550EM_a devs Jeff Daly
2022-03-01 5:56 ` Wang, Haiyue
2022-03-01 11:18 ` Zhang, Qi Z
2022-03-06 17:56 ` Thomas Monjalon
2022-03-08 15:01 ` Jeff Daly
2022-02-28 15:29 ` [PATCH v4 2/3] net/ixgbe: Limit SDP3 check of TX_DISABLE to appropriate devices Jeff Daly
2022-02-28 15:29 ` [PATCH v4 3/3] net/ixgbe: Fix SFP detection and linking on hotplug Jeff Daly
2022-03-12 13:03 ` Jeff Daly
2022-03-10 12:35 ` [PATCH v4 0/3] ixgbe SFP handling fixes Zhang, Qi Z
2022-04-12 17:34 ` [PATCH v5 0/2] " Jeff Daly
2022-04-12 17:34 ` [PATCH v5 1/2] net/ixgbe: Limit SDP3 check of TX_DISABLE to appropriate devices Jeff Daly
2022-04-12 17:34 ` [PATCH v5 2/2] net/ixgbe: Fix SFP detection and linking on hotplug Jeff Daly
2022-04-12 17:42 ` [PATCH v6 0/2] ixgbe SFP handling fixes Jeff Daly
2022-04-12 17:42 ` [PATCH v6 1/2] net/ixgbe: Limit SDP3 check of TX_DISABLE to appropriate devices Jeff Daly
2022-04-13 1:21 ` Wang, Haiyue [this message]
2022-04-13 15:32 ` Jeff Daly
2022-04-14 1:56 ` Wang, Haiyue
2022-04-12 17:42 ` [PATCH v6 2/2] net/ixgbe: Fix SFP detection and linking on hotplug Jeff Daly
2022-04-13 2:46 ` Wang, Haiyue
2022-04-13 6:57 ` Morten Brørup
2022-04-13 7:01 ` Wang, Haiyue
2022-04-13 7:19 ` Morten Brørup
2022-04-13 11:49 ` Wang, Haiyue
2022-04-13 12:54 ` Morten Brørup
2022-04-13 15:23 ` Jeff Daly
2022-04-14 10:49 ` Jeff Daly
2022-04-14 11:08 ` Jeff Daly
2022-04-14 2:49 ` Wang, Haiyue
2022-04-14 2:59 ` Wang, Haiyue
2022-04-14 10:40 ` Jeff Daly
2022-04-14 12:11 ` Wang, Haiyue
2022-04-18 21:54 ` Jeff Daly
2022-04-19 2:05 ` Wang, Haiyue
2022-04-19 17:33 ` Jeff Daly
2022-04-20 1:09 ` Wang, Haiyue
2022-04-21 17:31 ` Jeff Daly
2022-04-22 2:11 ` Wang, Haiyue
2022-05-12 1:26 ` Zhang, Qi Z
2022-05-25 16:55 ` Jeff Daly
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BYAPR11MB3495A4BCD1DCDB79877FFECDF7EC9@BYAPR11MB3495.namprd11.prod.outlook.com \
--to=haiyue.wang@intel.com \
--cc=dev@dpdk.org \
--cc=jeffd@silicom-usa.com \
--cc=lunyuanx.cui@intel.com \
--cc=stable@dpdk.org \
--cc=wei.zhao1@intel.com \
--cc=xiao.zhang@intel.com \
--cc=xiaolong.ye@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).