[dpdk-dev] [PATCH v2 05/14] pci: introduce PCI lib and bus
Gaëtan Rivet
gaetan.rivet at 6wind.com
Mon Sep 18 13:51:51 CEST 2017
Hey,
On Mon, Sep 18, 2017 at 05:23:23PM +0530, Shreyansh Jain wrote:
> Hello Gaetan,
>
> On Monday 18 September 2017 03:01 PM, Gaetan Rivet wrote:
> >The PCI lib defines the types and methods allowing to use PCI elements.
> >
> >The PCI bus implements a bus driver for PCI devices by constructing
> >rte_bus elements using the PCI lib.
> >
> >Move the relevant code out of the EAL to their expected place.
> >
> >Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
> >---
> > config/common_base | 10 +
> > drivers/bus/Makefile | 2 +
> > drivers/bus/pci/Makefile | 59 ++
> > drivers/bus/pci/bsd/Makefile | 32 ++
> > drivers/bus/pci/bsd/rte_pci.c | 670 ++++++++++++++++++++++
> > drivers/bus/pci/include/rte_bus_pci.h | 387 +++++++++++++
> > drivers/bus/pci/linux/Makefile | 37 ++
> > drivers/bus/pci/linux/rte_pci.c | 722 ++++++++++++++++++++++++
> > drivers/bus/pci/linux/rte_pci_init.h | 97 ++++
> > drivers/bus/pci/linux/rte_pci_uio.c | 567 +++++++++++++++++++
> > drivers/bus/pci/linux/rte_pci_vfio.c | 674 ++++++++++++++++++++++
> > drivers/bus/pci/linux/rte_vfio_mp_sync.c | 424 ++++++++++++++
> > drivers/bus/pci/private.h | 173 ++++++
> > drivers/bus/pci/rte_bus_pci_version.map | 21 +
> > drivers/bus/pci/rte_pci_common.c | 542 ++++++++++++++++++
> > drivers/bus/pci/rte_pci_common_uio.c | 234 ++++++++
> > lib/Makefile | 2 +
> > lib/librte_eal/bsdapp/eal/Makefile | 3 -
> > lib/librte_eal/bsdapp/eal/eal_pci.c | 670 ----------------------
> > lib/librte_eal/bsdapp/eal/rte_eal_version.map | 15 -
> > lib/librte_eal/common/Makefile | 2 +-
> > lib/librte_eal/common/eal_common_pci.c | 580 -------------------
> > lib/librte_eal/common/eal_common_pci_uio.c | 233 --------
> > lib/librte_eal/common/include/rte_pci.h | 598 --------------------
> > lib/librte_eal/linuxapp/eal/Makefile | 10 -
> > lib/librte_eal/linuxapp/eal/eal_pci.c | 722 ------------------------
> > lib/librte_eal/linuxapp/eal/eal_pci_init.h | 97 ----
> > lib/librte_eal/linuxapp/eal/eal_pci_uio.c | 567 -------------------
> > lib/librte_eal/linuxapp/eal/eal_pci_vfio.c | 674 ----------------------
> > lib/librte_eal/linuxapp/eal/eal_vfio_mp_sync.c | 424 --------------
> > lib/librte_eal/linuxapp/eal/rte_eal_version.map | 15 -
> > lib/librte_ether/rte_ethdev.h | 2 -
> > lib/librte_pci/Makefile | 48 ++
> > lib/librte_pci/include/rte_pci.h | 279 +++++++++
> > lib/librte_pci/rte_pci.c | 92 +++
> > lib/librte_pci/rte_pci_version.map | 8 +
> > mk/rte.app.mk | 3 +
> > 37 files changed, 5084 insertions(+), 4611 deletions(-)
> > create mode 100644 drivers/bus/pci/Makefile
> > create mode 100644 drivers/bus/pci/bsd/Makefile
> > create mode 100644 drivers/bus/pci/bsd/rte_pci.c
> > create mode 100644 drivers/bus/pci/include/rte_bus_pci.h
> > create mode 100644 drivers/bus/pci/linux/Makefile
> > create mode 100644 drivers/bus/pci/linux/rte_pci.c
> > create mode 100644 drivers/bus/pci/linux/rte_pci_init.h
> > create mode 100644 drivers/bus/pci/linux/rte_pci_uio.c
> > create mode 100644 drivers/bus/pci/linux/rte_pci_vfio.c
> > create mode 100644 drivers/bus/pci/linux/rte_vfio_mp_sync.c
> > create mode 100644 drivers/bus/pci/private.h
> > create mode 100644 drivers/bus/pci/rte_bus_pci_version.map
> > create mode 100644 drivers/bus/pci/rte_pci_common.c
> > create mode 100644 drivers/bus/pci/rte_pci_common_uio.c
> > delete mode 100644 lib/librte_eal/bsdapp/eal/eal_pci.c
> > delete mode 100644 lib/librte_eal/common/eal_common_pci.c
> > delete mode 100644 lib/librte_eal/common/eal_common_pci_uio.c
> > delete mode 100644 lib/librte_eal/common/include/rte_pci.h
> > delete mode 100644 lib/librte_eal/linuxapp/eal/eal_pci.c
> > delete mode 100644 lib/librte_eal/linuxapp/eal/eal_pci_init.h
> > delete mode 100644 lib/librte_eal/linuxapp/eal/eal_pci_uio.c
> > delete mode 100644 lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> > delete mode 100644 lib/librte_eal/linuxapp/eal/eal_vfio_mp_sync.c
> > create mode 100644 lib/librte_pci/Makefile
> > create mode 100644 lib/librte_pci/include/rte_pci.h
> > create mode 100644 lib/librte_pci/rte_pci.c
> > create mode 100644 lib/librte_pci/rte_pci_version.map
> >
>
> <lot of snip here...>
>
> >+#endif /* _PCI_PRIVATE_H_ */
> >diff --git a/drivers/bus/pci/rte_bus_pci_version.map b/drivers/bus/pci/rte_bus_pci_version.map
> >new file mode 100644
> >index 0000000..eca49e9
> >--- /dev/null
> >+++ b/drivers/bus/pci/rte_bus_pci_version.map
> >@@ -0,0 +1,21 @@
> >+DPDK_17.08 {
>
> You might want to bump this to 17.11.
>
Thanks, fixing this.
> >+ global:
> >+
> >+ rte_pci_detach;
> >+ rte_pci_dump;
> >+ rte_pci_ioport_map;
> >+ rte_pci_ioport_read;
> >+ rte_pci_ioport_unmap;
> >+ rte_pci_ioport_write;
> >+ rte_pci_map_device;
> >+ rte_pci_probe;
> >+ rte_pci_probe_one;
> >+ rte_pci_read_config;
> >+ rte_pci_register;
> >+ rte_pci_scan;
> >+ rte_pci_unmap_device;
> >+ rte_pci_unregister;
> >+ rte_pci_write_config;
> >+
> >+ local: *;
> >+};
>
> This is huuuge patch :( and I am not yet through it (most of it is movement
> so I doubt anything major would be problem here).
> Just the above comment in case you are spinning a new series.
>
>
Thanks for reading the patch.
Yes, most of it is moving the code as-is to a new location.
I tried to reduce it, but at some point it does not really make sense
anymore.
I think the important thing to look for here is the build system,
dependency graph and the division of the PCI API between the lib and the
bus driver.
I divided it along the lines of the rte_pci_device being defined or not.
Anything using an rte_pci_device going to the bus and everything
else going to the lib.
I'm mostly worried about this divide. Having the rte_pci_device defined
seems mostly of the responsibility of the bus driver, in my opinion. I'd
like to hear others'.
--
Gaëtan Rivet
6WIND
More information about the dev
mailing list