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>,
	thomas@monjalon.net, david.marchand@redhat.com,
	andrew.rybchenko@oktetlabs.ru
Subject: Re: [PATCH v2] common/sff_module: add telemetry command to dump module EEPROM
Date: Mon, 11 Apr 2022 10:13:06 +0100	[thread overview]
Message-ID: <YlPxIuZgmS2pV34j@bricha3-MOBL.ger.corp.intel.com> (raw)
In-Reply-To: <BN9PR11MB5529A33D0D7273EA787AB4BB9BEA9@BN9PR11MB5529.namprd11.prod.outlook.com>

On Mon, Apr 11, 2022 at 09:13:47AM +0100, Zhang, RobinX wrote:
> Hi Bruce,
> 
> > -----Original Message-----
> > From: Richardson, Bruce <bruce.richardson@intel.com>
> > Sent: Friday, April 8, 2022 7:27 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 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.
> >
> 
> Let me explain in more detail.
> 
> This patch actually include two parts:
> 1. Module EEPROM raw data parser code
>     Files: sff_common.h, sff_common.c, sff_8xxx.*
> 2. Add new telemetry command
>     Files: sff_telemetry.h, sff_telemetry.c
> 
> Part 1 will only parsing the module EEPROM raw data base on different module type.
> Now DPDK support 4 types that defined in rte_dev_info.h with macro RTE_ETH_MODULE_SFF_8xxx.
> 
> Part 2 will call rte_eth_dev_get_module_info and rte_eth_dev_get_module_eeprom to get the module EEPROM raw data, then pass the raw data to Part 1 parser code. Finally, Part 1 parser code will print formatted information.
> 
> So, these codes are more likely a common tool than a common driver, because it will only read the module EEPROM raw data from NIC PMD driver.
> For those NIC drivers who has not implemented get_module_info and get_module_eeprom dev_ops, we will simply return not support.
> 
Thanks for the additional explanation. Adding more folks on CC who may have
more thoughts on the best way to handle this.

/Bruce

  reply	other threads:[~2022-04-11  9:13 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
2022-04-11  8:13             ` Zhang, RobinX
2022-04-11  9:13               ` Bruce Richardson [this message]
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=YlPxIuZgmS2pV34j@bricha3-MOBL.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=david.marchand@redhat.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 \
    --cc=thomas@monjalon.net \
    /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).