DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: "Zhang, RobinX" <robinx.zhang@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"Yang, Qiming" <qiming.yang@intel.com>,
	"Zhang, Qi Z" <qi.z.zhang@intel.com>,
	"Yang, SteveX" <stevex.yang@intel.com>
Subject: Re: [PATCH v2] common/sff_module: add telemetry command to dump module EEPROM
Date: Fri, 8 Apr 2022 12:26:59 +0100	[thread overview]
Message-ID: <YlAcA/D2cHkzW+wj@bricha3-MOBL.ger.corp.intel.com> (raw)
In-Reply-To: <BN9PR11MB5529217D8EE6906E354842A59BE99@BN9PR11MB5529.namprd11.prod.outlook.com>

On Fri, Apr 08, 2022 at 12:20:23PM +0100, Zhang, RobinX wrote:
> Hi Bruce
> 
> > -----Original Message-----
> > From: Richardson, Bruce <bruce.richardson@intel.com>
> > Sent: Friday, April 8, 2022 7:01 PM
> > To: Zhang, RobinX <robinx.zhang@intel.com>
> > Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> > <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>
> > Subject: Re: [PATCH v2] common/sff_module: add telemetry command to
> > dump module EEPROM
> >
> > On Fri, Apr 08, 2022 at 11:55:07AM +0100, Zhang, RobinX wrote:
> > > Hi Bruce,
> > >
> > > > -----Original Message-----
> > > > From: Richardson, Bruce <bruce.richardson@intel.com>
> > > > Sent: Friday, April 8, 2022 6:33 PM
> > > > To: Zhang, RobinX <robinx.zhang@intel.com>
> > > > Cc: dev@dpdk.org; Yang, Qiming <qiming.yang@intel.com>; Zhang, Qi Z
> > > > <qi.z.zhang@intel.com>; Yang, SteveX <stevex.yang@intel.com>
> > > > Subject: Re: [PATCH v2] common/sff_module: add telemetry command
> > to
> > > > dump module EEPROM
> > > >
> > > > On Fri, Apr 08, 2022 at 10:23:30AM +0000, Robin Zhang wrote:
> > > > > This patch introduce a new telemetry command '/sff_module/info'
> > > > > to dump format module EEPROM information.
> > > > >
> > > > > The format support for SFP(Small Formfactor Pluggable)/SFP+
> > > > > /QSFP+(Quad Small Formfactor Pluggable)/QSFP28 modules based on
> > > > > SFF(Small Form Factor) Committee specifications
> > > > > SFF-8079/SFF-8472/SFF-8024/SFF-8636.
> > > > >
> > > > > Signed-off-by: Robin Zhang <robinx.zhang@intel.com>
> > > > > ---
> > > > >
> > > > > v2:
> > > > > - Redesign the dump function as a telemetry command, so that the
> > > > EEPROM
> > > > >   information can be used by other app.
> > > > >
> > > > > - The usage like this:
> > > > >
> > > > >   Launch the primary application with telemetry:
> > > > >   Take testpmd as example: ./app/dpdk-testpmd
> > > > >
> > > > >   Then launch the telemetry client script:
> > > > >   ./usertools/dpdk-telemetry.py
> > > > >
> > > > >   In telemetry client run command:
> > > > >   --> /sff_module/info,<port number>
> > > > >
> > > > >   Both primary application and telemetry client will show the formated
> > > > >   module EEPROM information.
> > > > >
> > > > >  drivers/common/meson.build                |    1 +
> > > > >  drivers/common/sff_module/meson.build     |   16 +
> > > > >  drivers/common/sff_module/sff_8079.c      |  672 ++++++++++++++
> > > > >  drivers/common/sff_module/sff_8472.c      |  301 ++++++
> > > > >  drivers/common/sff_module/sff_8636.c      | 1004
> > > > +++++++++++++++++++++
> > > > >  drivers/common/sff_module/sff_8636.h      |  592 ++++++++++++
> > > > >  drivers/common/sff_module/sff_common.c    |  415 +++++++++
> > > > >  drivers/common/sff_module/sff_common.h    |  192 ++++
> > > > >  drivers/common/sff_module/sff_telemetry.c |  142 +++
> > > > >  drivers/common/sff_module/sff_telemetry.h |   41 +
> > > > >  drivers/common/sff_module/version.map     |    9 +
> > > > >  11 files changed, 3385 insertions(+)  create mode 100644
> > > > > drivers/common/sff_module/meson.build
> > > > >  create mode 100644 drivers/common/sff_module/sff_8079.c
> > > > >  create mode 100644 drivers/common/sff_module/sff_8472.c
> > > > >  create mode 100644 drivers/common/sff_module/sff_8636.c
> > > > >  create mode 100644 drivers/common/sff_module/sff_8636.h
> > > > >  create mode 100644 drivers/common/sff_module/sff_common.c
> > > > >  create mode 100644 drivers/common/sff_module/sff_common.h
> > > > >  create mode 100644 drivers/common/sff_module/sff_telemetry.c
> > > > >  create mode 100644 drivers/common/sff_module/sff_telemetry.h
> > > > >  create mode 100644 drivers/common/sff_module/version.map
> > > > >
> > > > Is this is whole new driver just to provide telemetry dumps of SFP
> > > > information? I can understand the problem somewhat - though I am in
> > > > some doubt that telemetry is the best way to expose this information
> > > > - but creating a new driver seems the wrong approach here. SFPs are
> > > > for NIC devices, so why isn't this available in a common API such as
> > ethdev?
> > > >
> > >
> > > I have considered add this function as a new telemetry command of
> > ethdev (like '/ethdev/sff_module_info') to dump these SFP information.
> > > But I'm not sure if it's acceptable to add all these production code
> > (sff_8xxx.c) into lib/ethdev?
> > > If it's OK, I can make V3 patches to change it as a telemetry command of
> > ethdev.
> > >
> >
> > Hi,
> >
> > I think some discussion is needed before you go preparing a new version of
> > this patchset.
> >
> > Some initial questions:
> >
> > 1. Does SFF code apply only to Intel products/NICs or is it multi-vendor?
> The SFF code apply to multi-vendor.
> In fact, it's applied to all the NIC driver which implemented dev_ops->get_module_eeprom.
> 
> > 2. For the driver approach you previously took, how was the presence of
> >    hardware detected to load the driver?
> The purpose of put these production code into drivers/common is want to treat it as a common function for NIC drivers.
> It will not related to any presence of hardware.
> 
> > 3. Does this work on SFPs need to interact with the NIC drivers in any way?
> >
> Yes, just like my answer in question 1, the module EEPROM raw data is get from dev_ops->get_module_eeprom.
> So need the NIC drivers to implement dev_ops->get_module_eeprom.
> 

So is the intent that individual NIC drivers would add a get_module_eeprom
function to their drivers pointing at this driver? If so, this approach of
putting the code in drivers/common does make sense. However, this needs to
be better explained in the patch description, and maybe include with the
driver patch (which should probably be split up into easier reviewed
sections), additional patches to add the get_eeprom function to some
drivers to show use.

Thanks,
/Bruce

  reply	other threads:[~2022-04-08 11:27 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-15 10:18 [PATCH] app/testpmd: format dump information of " Robin Zhang
2022-02-15 13:28 ` Ferruh Yigit
2022-02-15 15:07   ` Thomas Monjalon
2022-02-16  2:26     ` Zhang, RobinX
2022-02-16  8:03       ` David Marchand
2022-02-16  8:45         ` Thomas Monjalon
2022-02-16  9:30           ` Bruce Richardson
2022-02-16  9:41             ` David Marchand
2022-02-16 10:02               ` Bruce Richardson
2022-02-16 10:15                 ` David Marchand
2022-04-08 10:23 ` [PATCH v2] common/sff_module: add telemetry command to dump " Robin Zhang
2022-04-08 10:33   ` Bruce Richardson
2022-04-08 10:55     ` Zhang, RobinX
2022-04-08 11:00       ` Bruce Richardson
2022-04-08 11:20         ` Zhang, RobinX
2022-04-08 11:26           ` Bruce Richardson [this message]
2022-04-11  8:13             ` Zhang, RobinX
2022-04-11  9:13               ` Bruce Richardson
2022-04-13 12:13                 ` Thomas Monjalon
2022-04-14  7:41                   ` David Marchand
2022-04-20  7:00 ` [PATCH v3 0/5] add telemetry command for show " Robin Zhang
2022-04-20  7:00   ` [PATCH v3 1/5] ethdev: add telemetry command for " Robin Zhang
2022-04-20  9:16     ` Andrew Rybchenko
2022-04-20  7:00   ` [PATCH v3 2/5] ethdev: common utilities for different SFF specs Robin Zhang
2022-04-20  7:00   ` [PATCH v3 3/5] ethdev: format module EEPROM for SFF-8079 Robin Zhang
2022-04-20  7:00   ` [PATCH v3 4/5] ethdev: format module EEPROM for SFF-8472 Robin Zhang
2022-04-20  7:00   ` [PATCH v3 5/5] ethdev: format module EEPROM for SFF-8636 Robin Zhang
2022-04-20  8:49   ` [PATCH v3 0/5] add telemetry command for show module EEPROM Morten Brørup
2022-04-25  5:34 ` [PATCH v4 " Robin Zhang
2022-04-25  5:34   ` [PATCH v4 1/5] ethdev: add telemetry command for " Robin Zhang
2022-04-25  5:34   ` [PATCH v4 2/5] ethdev: common utilities for different SFF specs Robin Zhang
2022-04-25  5:34   ` [PATCH v4 3/5] ethdev: format module EEPROM for SFF-8079 Robin Zhang
2022-04-25  5:34   ` [PATCH v4 4/5] ethdev: format module EEPROM for SFF-8472 Robin Zhang
2022-04-25  5:34   ` [PATCH v4 5/5] ethdev: format module EEPROM for SFF-8636 Robin Zhang
2022-04-26  2:43 ` [PATCH v5 0/5] add telemetry command for show module EEPROM Robin Zhang
2022-04-26  2:43   ` [PATCH v5 1/5] ethdev: add telemetry command for " Robin Zhang
2022-05-04 10:16     ` Andrew Rybchenko
2022-04-26  2:43   ` [PATCH v5 2/5] ethdev: common utilities for different SFF specs Robin Zhang
2022-04-26  2:43   ` [PATCH v5 3/5] ethdev: format module EEPROM for SFF-8079 Robin Zhang
2022-04-26  2:43   ` [PATCH v5 4/5] ethdev: format module EEPROM for SFF-8472 Robin Zhang
2022-04-26  2:43   ` [PATCH v5 5/5] ethdev: format module EEPROM for SFF-8636 Robin Zhang
2022-05-04  8:13   ` [PATCH v5 0/5] add telemetry command for show module EEPROM Andrew Rybchenko
2022-05-11  2:14   ` [PATCH v6 " Robin Zhang
2022-05-11  2:14     ` [PATCH v6 1/5] ethdev: add telemetry command for " Robin Zhang
2022-05-11  2:14     ` [PATCH v6 2/5] ethdev: common utilities for different SFF specs Robin Zhang
2022-05-11  2:14     ` [PATCH v6 3/5] ethdev: format module EEPROM for SFF-8079 Robin Zhang
2022-05-11  2:14     ` [PATCH v6 4/5] ethdev: format module EEPROM for SFF-8472 Robin Zhang
2022-05-19  8:33       ` Andrew Rybchenko
2022-05-11  2:14     ` [PATCH v6 5/5] ethdev: format module EEPROM for SFF-8636 Robin Zhang
2022-05-24  6:24     ` [PATCH v7 0/5] add telemetry command for show module EEPROM Robin Zhang
2022-05-24  6:24       ` [PATCH v7 1/5] ethdev: add telemetry command for " Robin Zhang
2022-05-24  6:24       ` [PATCH v7 2/5] ethdev: common utilities for different SFF specs Robin Zhang
2022-05-24  6:24       ` [PATCH v7 3/5] ethdev: format module EEPROM for SFF-8079 Robin Zhang
2022-05-24  6:24       ` [PATCH v7 4/5] ethdev: format module EEPROM for SFF-8472 Robin Zhang
2022-05-24  6:24       ` [PATCH v7 5/5] ethdev: format module EEPROM for SFF-8636 Robin Zhang
2022-05-24  9:03         ` David Marchand
2022-05-25  2:43           ` Zhang, RobinX
2022-05-25  3:14       ` [PATCH v8 0/5] add telemetry command for show module EEPROM Robin Zhang
2022-05-25  3:14         ` [PATCH v8 1/5] ethdev: add telemetry command for " Robin Zhang
2022-05-25  9:24           ` Andrew Rybchenko
2022-05-25  3:14         ` [PATCH v8 2/5] ethdev: common utilities for different SFF specs Robin Zhang
2022-05-25  8:51           ` Andrew Rybchenko
2022-05-25  9:40           ` Andrew Rybchenko
2022-05-25  3:14         ` [PATCH v8 3/5] ethdev: format module EEPROM for SFF-8079 Robin Zhang
2022-05-25  9:55           ` Andrew Rybchenko
2022-05-25  3:14         ` [PATCH v8 4/5] ethdev: format module EEPROM for SFF-8472 Robin Zhang
2022-05-25 11:58           ` Andrew Rybchenko
2022-05-25  3:14         ` [PATCH v8 5/5] ethdev: format module EEPROM for SFF-8636 Robin Zhang
2022-05-25  9:01           ` Andrew Rybchenko
2022-05-25 12:01           ` Andrew Rybchenko
2022-05-26  7:32         ` [PATCH v9 0/5] add telemetry command for show module EEPROM Robin Zhang
2022-05-26  7:32           ` [PATCH v9 1/5] ethdev: add telemetry command for " Robin Zhang
2022-05-26  7:32           ` [PATCH v9 2/5] ethdev: add common code for different SFF specs Robin Zhang
2022-05-26  7:32           ` [PATCH v9 3/5] ethdev: support SFF-8079 module information telemetry Robin Zhang
2022-05-26  7:32           ` [PATCH v9 4/5] ethdev: support SFF-8472 " Robin Zhang
2022-05-26  7:32           ` [PATCH v9 5/5] ethdev: support SFF-8636 " Robin Zhang
2022-05-31 14:43           ` [PATCH v9 0/5] add telemetry command for show module EEPROM Andrew Rybchenko

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=YlAcA/D2cHkzW+wj@bricha3-MOBL.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=qi.z.zhang@intel.com \
    --cc=qiming.yang@intel.com \
    --cc=robinx.zhang@intel.com \
    --cc=stevex.yang@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).