DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Gaëtan Rivet" <grive@u256.net>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: Jerin Jacob <jerinjacobk@gmail.com>,
	Manish Chopra <manishc@marvell.com>,
	Ferruh Yigit <ferruh.yigit@intel.com>,
	Igor Russkikh <irusskikh@marvell.com>, dpdk-dev <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v2 1/7] lib/librte_pci: add rte_pci_regs.h
Date: Thu, 16 Jul 2020 19:56:00 +0200	[thread overview]
Message-ID: <20200716175600.no5svwut34lb2wyr@u256.net> (raw)
In-Reply-To: <33229780.9rCRSYNQsn@thomas>

On 16/07/20 18:57 +0200, Thomas Monjalon wrote:
> 16/07/2020 18:43, Jerin Jacob:
> > On Thu, Jul 16, 2020 at 9:25 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >
> > > 16/07/2020 15:02, Jerin Jacob:
> > > > On Thu, Jul 16, 2020 at 6:20 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > >
> > > > > 16/07/2020 13:55, Jerin Jacob:
> > > > > > On Thu, Jul 16, 2020 at 4:57 PM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > > > >
> > > > > > > 16/07/2020 12:27, Jerin Jacob:
> > > > > > > > On Thu, Jul 16, 2020 at 3:48 PM Gaëtan Rivet <grive@u256.net> wrote:
> > > > > > > > >
> > > > > > > > > On 16/07/20 12:08 +0200, Gaëtan Rivet wrote:
> > > > > > > > > > Re-CCing dev@dpdk.org as it was removed from the reply.
> > > > > > > > > >
> > > > > > > > > > On 13/07/20 08:13 -0700, Manish Chopra wrote:
> > > > > > > > > > > This is merely copy of latest linux/pci_regs.h in
> > > > > > > > > > > order to avoid dependency of dpdk on user headers.
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > I guess this dependency is an issue on non-linux systems, when you must
> > > > > > > > > > use those defines in a generic implementation. Can you confirm this is
> > > > > > > > > > the motivation here?
> > > > > > > > > >
> > > > > > > > > > If so, I think it would be clearer to state "in order to avoid
> > > > > > > > > > dependency of DPDK on linux headers".
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > To add to it, if this is actually the motivation to add this header, I
> > > > > > > > > don't think it is sufficient.
> > > > > > > > >
> > > > > > > > > You can restrict the function definition to the linux part of the
> > > > > > > > > PCI bus driver instead, using stubs for other systems.
> > > > > > > > >
> > > > > > > > > > > Signed-off-by: Manish Chopra <manishc@marvell.com>
> > > > > > > > > > > Signed-off-by: Igor Russkikh <irusskikh@marvell.com>
> > > > > > > > > > > ---
> > > > > > > > > > >  drivers/bus/pci/linux/pci_uio.c     |    2 +-
> > > > > > > > > > >  drivers/bus/pci/linux/pci_vfio.c    |    2 +-
> > > > > > > > > > >  drivers/net/bnx2x/bnx2x.h           |    2 +-
> > > > > > > > > > >  drivers/net/hns3/hns3_ethdev_vf.c   |    2 +-
> > > > > > > > > > >  drivers/vdpa/ifc/base/ifcvf_osdep.h |    2 +-
> > > > > > > > > > >  lib/librte_pci/Makefile             |    1 +
> > > > > > > > > > >  lib/librte_pci/meson.build          |    2 +-
> > > > > > > > > > >  lib/librte_pci/rte_pci_regs.h       | 1075 +++++++++++++++++++++++++++
> > > > > > > > > > >  8 files changed, 1082 insertions(+), 6 deletions(-)
> > > > > > > > > > >  create mode 100644 lib/librte_pci/rte_pci_regs.h
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > [...]
> > > > > > > > > >
> > > > > > > > > > > diff --git a/lib/librte_pci/rte_pci_regs.h b/lib/librte_pci/rte_pci_regs.h
> > > > > > > > > > > new file mode 100644
> > > > > > > > > > > index 000000000..1d11f4de5
> > > > > > > > > > > --- /dev/null
> > > > > > > > > > > +++ b/lib/librte_pci/rte_pci_regs.h
> > > > > > > > > > > @@ -0,0 +1,1075 @@
> > > > > > > > > > > +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> > > > > > > > > > > +/*
> > > > > > > > > >
> > > > > > > > > > This file is delivered alongside the PCI lib, targeting userspace.
> > > > > > > > > > This seems to be an exception to the license policy described in
> > > > > > > > > > license/README. Code shared between kernel and userspace is expected
> > > > > > > > > > to be dual-licensed BSD-3 and GPL-2.0.
> > > > > > > > > >
> > > > > > > > > > As it is a copy of Linux user includes, re-licensing it as BSD-3 as well
> > > > > > > > > > is not possible.
> > > > > > > > > >
> > > > > > > > > > So I think it might require a techboard + governing board exception
> > > > > > > > > > approval. Ferruh or Thomas, what do you think?
> > > > > > > >
> > > > > > > > I think, instead of importing GPL-2.0 file, We can add the constants
> > > > > > > > as need by the DPDK
> > > > > > > > as symbols start from RTE_PCI_*(It will fix up the namespace as well).
> > > > > > >
> > > > > > > If symbols can be found in /usr/include/, don't add anything.
> > > > > >
> > > > > > Not by default on all the distros. It is part of pciutils library.
> > > > > > Moreover, we need these symbols for Windows OS as well.
> > > > > > IMO, We should add absolute minimum constants that needed for DPDK as RTE_PCI_*
> > > > >
> > > > > I am for mandating the dependency instead of copying it.
> > > >
> > > > You mean _pciutils_ package as a mandatory dependency to  DPDK.
> > >
> > > There is already this dependency:
> > >         #include <linux/pci_regs.h>
> > 
> > I just checked in archlinux, PCI headers can be provided by
> > 
> > # pacman -F /usr/include/pci/header.h
> > usr/include/pci/header.h is owned by core/pciutils 3.7.0-
> > 
> > # pacman -F /usr/include/linux/pci.h
> > usr/include/linux/pci.h is owned by core/linux-api-headers 5.4.17-1
> > 
> > 
> > > I'm missing the real justification for this patch.
> > 
> > See below.
> > 
> > > Is there some missing definitions?
> > > Is there some environments where this file is missing?
> > >
> > > > > pciutils cannot be installed on Windows?
> > > > > Why do you care about Windows?
> > > > > I don't see any contribution for qede on Windows.
> > > >
> > > > You closely review the patch, it not about qede. The proposed file
> > > > comes at lib/librte_pci/rte_pci_regs.h which is common to Windows.
> > >
> > > The series is for qede. I'm trying to understand the motivation.
> > 
> > First version of qede driver sent with defined generic PCI symbols and
> > generic PCI function like pci_find_next_ext_capability() in qede driver.
> 
> That's a pity the v2 is not threaded with v1,
> I would have found these explanations easily myself.
> 
> > In the review, I suggested using generic rte_ function as
> > a) It is not specific to qede.
> > b) Other drivers also doing the same thing in their own driver space
> > as there is no dpdk API for the same.
> > This patches create generic API for pci_find_next_ext_capability() and
> > remove duplicate implementation
> > from the drivers.
> > http://patches.dpdk.org/patch/73959/
> 
> I agree it's good to have an API for such thing.
> 
> So far such feature is supported in drivers on Linux,
> requiring only Linux headers to be installed.
> Do we need more?
> 
> 

+1 to make it generic, no question here.

On linux, the dependency is already there (either from linux headers or
pciutils) to have the original. So including this header in DPDK is only
useful for other OSes.

I think right now we should only add pci_find_next_ext_capability() full
implementation within linux part of PCI bus, other systems being stubs.

We can go with your suggestion Jerin about adding only the specific
symbols needed, prefixed with RTE_, once we decide to have windows
support. Question is whether we need it right now. Is there a driver
that would make use of it support more than linux currently?

-- 
Gaëtan

  parent reply	other threads:[~2020-07-16 17:56 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-13 15:13 [dpdk-dev] [PATCH v2 0/7] qede: SR-IOV PF driver support Manish Chopra
2020-07-13 15:13 ` [dpdk-dev] [PATCH v2 1/7] lib/librte_pci: add rte_pci_regs.h Manish Chopra
2020-07-16  9:43   ` Gaëtan Rivet
2020-07-16 10:08   ` Gaëtan Rivet
2020-07-16 10:17     ` Gaëtan Rivet
2020-07-16 10:27       ` Jerin Jacob
2020-07-16 11:26         ` Thomas Monjalon
2020-07-16 11:55           ` Jerin Jacob
2020-07-16 12:49             ` Thomas Monjalon
2020-07-16 13:02               ` Jerin Jacob
2020-07-16 15:55                 ` Thomas Monjalon
2020-07-16 16:43                   ` Jerin Jacob
2020-07-16 16:57                     ` Thomas Monjalon
2020-07-16 17:33                       ` Jerin Jacob
2020-07-16 17:56                       ` Gaëtan Rivet [this message]
2020-07-16 20:49                         ` [dpdk-dev] [EXT] " Manish Chopra
2020-07-18 19:42                           ` Manish Chopra
2020-07-19  8:47                             ` Jerin Jacob
2020-07-20  8:57                               ` Gaëtan Rivet
2020-07-13 15:13 ` [dpdk-dev] [PATCH v2 2/7] drivers: add generic API to find PCI extended cap Manish Chopra
2020-07-20  9:36   ` Gaëtan Rivet
2020-07-13 15:13 ` [dpdk-dev] [PATCH v2 3/7] net/qede: define PCI config space specific osals Manish Chopra
2020-07-13 15:13 ` [dpdk-dev] [PATCH v2 4/7] net/qede: configure VFs on hardware Manish Chopra
2020-07-13 15:13 ` [dpdk-dev] [PATCH v2 5/7] net/qede: add infrastructure support for VF load Manish Chopra
2020-07-13 15:13 ` [dpdk-dev] [PATCH v2 6/7] net/qede: initialize VF MAC and link Manish Chopra
2020-07-13 15:13 ` [dpdk-dev] [PATCH v2 7/7] net/qede: add VF FLR support Manish Chopra

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=20200716175600.no5svwut34lb2wyr@u256.net \
    --to=grive@u256.net \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=irusskikh@marvell.com \
    --cc=jerinjacobk@gmail.com \
    --cc=manishc@marvell.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).