All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhang, Qi Z" <qi.z.zhang@intel.com>
To: Luca Boccassi <bluca@debian.org>,
	Chas Williams <3chas3@gmail.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "Lu, Wenzhuo" <wenzhuo.lu@intel.com>,
	"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
	"stable@dpdk.org" <stable@dpdk.org>
Subject: Re: [PATCH v3 1/2] net/ixgbe: fix x550 code to handle unidentified PHY
Date: Wed, 7 Nov 2018 18:27:36 +0000	[thread overview]
Message-ID: <039ED4275CED7440929022BC67E70611532E0FC0@SHSMSX103.ccr.corp.intel.com> (raw)
In-Reply-To: <1541595308.31208.0.camel@debian.org>



> -----Original Message-----
> From: Luca Boccassi [mailto:bluca@debian.org]
> Sent: Wednesday, November 7, 2018 5:55 AM
> To: Zhang, Qi Z <qi.z.zhang@intel.com>; Chas Williams <3chas3@gmail.com>;
> dev@dpdk.org
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>; stable@dpdk.org
> Subject: Re: [PATCH v3 1/2] net/ixgbe: fix x550 code to handle unidentified
> PHY
> 
> On Tue, 2018-11-06 at 23:31 +0000, Zhang, Qi Z wrote:
> > > -----Original Message-----
> > > From: Chas Williams [mailto:3chas3@gmail.com]
> > > Sent: Monday, November 5, 2018 11:19 AM
> > > To: Zhang, Qi Z <qi.z.zhang@intel.com>; Luca Boccassi <bluca@debian
> > > .org>; dev@dpdk.org
> > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > <konstantin.ananyev@intel.com>; stable@dpdk.org
> > > Subject: Re: [PATCH v3 1/2] net/ixgbe: fix x550 code to handle
> > > unidentified PHY
> > >
> > >
> > >
> > > On 11/05/2018 12:41 PM, Zhang, Qi Z wrote:
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Luca Boccassi [mailto:bluca@debian.org]
> > > > > Sent: Friday, November 2, 2018 8:19 AM
> > > > > To: dev@dpdk.org
> > > > > Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> > > > > <konstantin.ananyev@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.c
> > > > > om>;
> > > > > 3chas3@gmail.com; Luca Boccassi <bluca@debian.org>; stable@dpdk
> > > > > .org
> > > > > Subject: [PATCH v3 1/2] net/ixgbe: fix x550 code to handle
> > > > > unidentified PHY
> > > > >
> > > > > ixgbe_identify_sfp_module_X550em() was missing the code to
> > > > > handle
> > > > > unidentified PHY that has been there in 82599 so it was not
> > > > > able to
> > > > > complete initialization of ixgbe sequence if no sfp plugged in.
> > > > > Port it over to return an appropriate type and complete init
> > > > > sequence
> > > > > properly.
> > > > >
> > > > > Fixes: d2e72774e58c ("ixgbe/base: support X550")
> > > > > Cc: stable@dpdk.org
> > > > >
> > > > > Signed-off-by: Luca Boccassi <bluca@debian.org>
> > > > > ---
> > > > > v2: refresh to remove merge conflict with master
> > > > > v3: coalesce fix into ixgbe_identify_sfp_module_X550em to avoid
> > > > >      code duplication, improve comment
> > > > >
> > > > >   drivers/net/ixgbe/base/ixgbe_x550.c | 6 ++++++
> > > > >   1 file changed, 6 insertions(+)
> > > > >
> > > > > diff --git a/drivers/net/ixgbe/base/ixgbe_x550.c
> > > > > b/drivers/net/ixgbe/base/ixgbe_x550.c
> > > > > index f7b98af52..a88d5c86a 100644
> > > > > --- a/drivers/net/ixgbe/base/ixgbe_x550.c
> > > > > +++ b/drivers/net/ixgbe/base/ixgbe_x550.c
> > > > > @@ -1561,6 +1561,12 @@ s32
> > >
> > > ixgbe_identify_sfp_module_X550em(struct
> > > > > ixgbe_hw *hw)
> > > > >
> > > > >   	status = ixgbe_identify_module_generic(hw);
> > > > >
> > > > > +	/* Set PHY type none if no PHY detected to allow init
> > > > > without SFP */
> > > > > +	if (hw->phy.type == ixgbe_phy_unknown) {
> > > > > +		hw->phy.type = ixgbe_phy_none;
> > > >
> > > > Set PHY type to none for a device that does have PHY looks weird.
> > > > does ixgeb_phy_generic works here?
> > >
> > > Yes, it does seem strange but that's what
> > > ixgbe_identify_sfp_module_generic
> > > seems to do:
> > >
> > > 	err_read_i2c_eeprom:
> > > 		hw->phy.sfp_type = ixgbe_sfp_type_not_present;
> > > 		if (hw->phy.type != ixgbe_phy_nl) {
> > > 			hw->phy.id = 0;
> > > 			hw->phy.type = ixgbe_phy_unknown;
> > > 		}
> > >
> > > The QSFP version a little more forceful:
> > >
> > > 	err_read_i2c_eeprom:
> > > 		hw->phy.sfp_type = ixgbe_sfp_type_not_present;
> > > 		hw->phy.id = 0;
> > > 		hw->phy.type = ixgbe_phy_unknown;
> > >
> > > If we go forward without setting the phy_type to none, we will
> > > eventually run
> > > into issues calling other phy routines.
> > >
> > > So should a lack of SFP, reset the PHY type? It's hazy because the
> > > difference
> > > between PHY and SFP isn't that clear to me here.
> >
> > I'm not sure that's the same case:).
> > Just feel that it's better to handle ixgbe_phy_unknown directly for
> > some device id as a special case than just replace it to
> > ixgbe_phy_none to cheat the check path, since that rely on we never
> > change the way to handle ixgbe_phy_none.
> >
> > So still have the question?
> > What is the failure if you go with ixgbe_phy_unknown?
> > Is that possible to work around this like
> > if (phy_type == ixgbe_phy_unknown && dev_id == xxxx)
> > 	...
> 
> Hi,
> 
> Thanks for having a look at this again. If you could please see the
> other answer, from myself, I've quoted the exact error we see and the
> issue it causes.

Yes, I see it failed at eth_ixgbe_dev_init, it will be better if you can provide more detail for the call stack, so we can figure out if we can work around this by handle ixgbe_phy_unknown directly with some special case.

> 
> --
> Kind regards,
> Luca Boccassi

  reply	other threads:[~2018-11-07 18:27 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-15 17:09 [PATCH 1/2] net/ixgbe: fix x550 code to handle unidentified PHY Luca Boccassi
2018-08-15 17:09 ` [PATCH 2/2] net/ixgbe: add LHA ID to x550 code Luca Boccassi
2018-09-26 10:22 ` [PATCH 1/2] net/ixgbe: fix x550 code to handle unidentified PHY Luca Boccassi
2018-11-01 14:04 ` Luca Boccassi
2018-11-01 14:04   ` [PATCH 2/2] net/ixgbe: add LHA ID to x550 code Luca Boccassi
2018-11-01 14:41   ` [PATCH 1/2] net/ixgbe: fix x550 code to handle unidentified PHY Luca Boccassi
2018-11-02 14:11   ` Zhang, Qi Z
2018-11-02 15:21     ` Luca Boccassi
2018-11-02 16:49       ` Zhang, Qi Z
2018-11-02 17:08         ` [dpdk-stable] " Luca Boccassi
2018-11-02 15:18 ` [PATCH v3 " Luca Boccassi
2018-11-02 15:18   ` [PATCH v3 2/2] net/ixgbe: add LHA ID to x550 code Luca Boccassi
2018-11-05 17:41   ` [PATCH v3 1/2] net/ixgbe: fix x550 code to handle unidentified PHY Zhang, Qi Z
2018-11-05 18:08     ` [dpdk-stable] " Luca Boccassi
2018-11-05 18:18     ` Chas Williams
2018-11-06 23:31       ` Zhang, Qi Z
2018-11-07 12:55         ` Luca Boccassi
2018-11-07 18:27           ` Zhang, Qi Z [this message]
2018-11-09 13:18             ` [dpdk-stable] " Luca Boccassi
2018-11-20 11:28               ` Luca Boccassi
2018-11-20 11:27   ` [PATCH v4] net/ixgbe: add LHA ID to x550 code Luca Boccassi
2018-11-20 19:52     ` Zhang, Qi Z
2018-11-20 21:08       ` [dpdk-stable] " Luca Boccassi
2018-11-22 17:54         ` Zhang, Qi Z

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=039ED4275CED7440929022BC67E70611532E0FC0@SHSMSX103.ccr.corp.intel.com \
    --to=qi.z.zhang@intel.com \
    --cc=3chas3@gmail.com \
    --cc=bluca@debian.org \
    --cc=dev@dpdk.org \
    --cc=konstantin.ananyev@intel.com \
    --cc=stable@dpdk.org \
    --cc=wenzhuo.lu@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.