From: Jakub Kicinski <kuba@kernel.org>
To: Jacob Keller <jacob.e.keller@intel.com>
Cc: Gal Pressman <gal@nvidia.com>, Saeed Mahameed <saeedm@nvidia.com>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Simon Horman <horms@verge.net.au>,
Andy Gospodarek <andy@greyhouse.net>
Subject: Re: [PATCH net-next 0/2] ice: support FEC automatic disable
Date: Fri, 26 Aug 2022 16:57:11 -0700 [thread overview]
Message-ID: <20220826165711.015e7827@kernel.org> (raw)
In-Reply-To: <9d962e38-1aa9-d0ed-261e-eb77c82b186b@intel.com>
On Fri, 26 Aug 2022 10:51:21 -0700 Jacob Keller wrote:
> On 8/25/2022 6:01 PM, Jakub Kicinski wrote:
> > Oh, but per the IEEE standard No FEC is _not_ an option for CA-L.
> > From the initial reading of your series I thought that Intel NICs
> > would _never_ pick No FEC.
>
> That was my original interpretation when I was first introduced to this
> problem but I was mistaken, hence why the commit message wasn't clear :(
>
> This is rather more complicated than I originally understood and the
> names for various bits have not been named very well so their behavior
> isn't exactly obvious...
>
> > Sounds like we need a bit for "ignore the standard and try everything".
> >
> > What about BASE-R FEC? Is the FW going to try it on the CA-L cable?
>
> Ok I got further clarification on this. We have a bit, "Auto FEC
> enable", as well as a bitmask for which FEC modes to try.
>
> If "Auto FEC En" is set, then the Link Establishment State Machine will
> try all of the FEC options we list in that bitmask, as long as we can
> theoretically support them even if they aren't spec compliant.
>
> For old firmware the bitmask didn't include a bit for "No FEC", where as
> the new firmware has a bit for "No FEC".
>
> We were always setting "Auto FEC En" so currently we try all FEC modes
> we could theoretically support.
>
> If "Auto FEC En" is disabled, then we only try FEC modes which are spec
> compliant. Additionally, only a single FEC mode is tried based on a
> priority and the bitmask.
>
> Currently and historically the driver has always set "Auto FEC En", so
> we were enabling non-spec compliant FEC modes, but "No FEC" was only
> based on spec compliance with the media type.
>
> From this, I think I agree the correct behavior is to add a bit for
> "override the spec and try everything", and then on new firmware we'd
> set the "No FEC" while on old firmware we'd be limited to only trying
> FEC modes.
>
> Does that make sense?
>
> So yea I think we do probably need a "ignore the standard" bit.. but
> currently that appears to already be what ice does (excepting No FEC
> which didn't previously have a bit to set for it)
Thanks for getting to the bottom of this :)
The "override spec modes" bit sounds like a reasonable addition,
since we possibly have different behavior between vendors letting
the user know if the device will follow the rules can save someone
debugging time.
But it does sound orthogonal to you adding the No FEC bit to the mask
for ice.
Let me add Simon and Andy so that we have the major vendors on the CC.
(tl;dr the question is whether your FW follows the guidance of
'Table 110C–1—Host and cable assembly combinations' in AUTO FEC mode).
If all the vendors already ignore the standard (like Intel and AFAIU
nVidia) then we just need to document, no point adding the bit...
next prev parent reply other threads:[~2022-08-26 23:57 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-23 15:04 [PATCH net-next 0/2] ice: support FEC automatic disable Jacob Keller
2022-08-23 15:04 ` [PATCH net-next 1/2] ethtool: pass netlink extended ACK to .set_fecparam Jacob Keller
2022-08-23 15:06 ` Simon Horman
2022-08-23 22:13 ` Jakub Kicinski
2022-08-24 17:27 ` Keller, Jacob E
2022-08-23 15:04 ` [PATCH net-next 2/2] ice: add support for Auto FEC with FEC disabled via ETHTOOL_SFECPARAM Jacob Keller
2022-08-23 22:17 ` Jakub Kicinski
2022-08-24 17:29 ` Keller, Jacob E
2022-08-24 21:29 ` Keller, Jacob E
2022-08-24 22:47 ` Jakub Kicinski
2022-08-24 22:53 ` Keller, Jacob E
2022-08-24 23:02 ` Jakub Kicinski
2022-08-24 23:13 ` Keller, Jacob E
2022-08-24 23:32 ` Jakub Kicinski
2022-08-24 13:35 ` [PATCH net-next 0/2] ice: support FEC automatic disable Gal Pressman
2022-08-24 16:25 ` Jakub Kicinski
2022-08-25 7:08 ` Gal Pressman
2022-08-24 17:40 ` Keller, Jacob E
2022-08-25 7:08 ` Gal Pressman
2022-08-25 16:29 ` Jakub Kicinski
2022-08-25 16:57 ` Keller, Jacob E
2022-08-25 17:30 ` Jakub Kicinski
2022-08-25 17:51 ` Keller, Jacob E
2022-08-25 20:34 ` Jakub Kicinski
2022-08-25 21:04 ` Keller, Jacob E
2022-08-26 0:38 ` Jacob Keller
2022-08-26 1:01 ` Jakub Kicinski
2022-08-26 17:51 ` Jacob Keller
2022-08-26 23:57 ` Jakub Kicinski [this message]
2022-08-28 10:42 ` Gal Pressman
2022-08-29 7:11 ` Keller, Jacob E
2022-08-29 11:21 ` Gal Pressman
2022-08-29 18:10 ` Jacob Keller
2022-08-30 20:09 ` Jacob Keller
2022-08-30 21:44 ` Jakub Kicinski
2022-08-30 23:09 ` Keller, Jacob E
2022-08-31 11:01 ` Gal Pressman
2022-08-31 17:36 ` Jakub Kicinski
2022-09-01 11:52 ` Gal Pressman
2022-09-05 11:25 ` Gal Pressman
2022-08-31 20:15 ` Jacob Keller
2022-09-01 11:51 ` Gal Pressman
2022-09-01 17:59 ` Keller, Jacob E
2022-09-07 3:44 ` Michael Chan
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=20220826165711.015e7827@kernel.org \
--to=kuba@kernel.org \
--cc=andy@greyhouse.net \
--cc=gal@nvidia.com \
--cc=horms@verge.net.au \
--cc=jacob.e.keller@intel.com \
--cc=netdev@vger.kernel.org \
--cc=saeedm@nvidia.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).