[dpdk-dev] [PATCH v1 0/4] Generalize PCI specific EAL function/structures

Shreyansh Jain shreyansh.jain at nxp.com
Tue Sep 27 16:12:27 CEST 2016


(I rebased these over HEAD 7b3c4f3)

These patches were initially part of Jan's original series on SoC
Framework ([1],[2]). An update to that series, without these patches,
was posted here [3].

Main motivation for these is aim of introducing a non-PCI centric
subsystem in EAL. As of now the first usecase is SoC, but not limited to
it.

4 patches in this series are independent of each other, as well as SoC
framework. All these focus on generalizing some structure or functions
present with the PCI specific code to EAL Common area (or splitting a
function to be more userful).

 - 0001: move the rte_kernel_driver enum from rte_pci to rte_dev. As of
   now this structure is embedded in rte_pci_device, but, going ahead it
   can be part of other rte_xxx_device structures. Either way, it has no
   impact on PCI.
 - 0002: Functions pci_map_resource/pci_unmap_resource are moved to EAL
   common as rte_eal_map_resource/rte_eal_unmap_resource, respectively.
 - 0003: Split the  pci_unbind_kernel_driver into two, still working on
   the PCI BDF sysfs layout, first handles the file path (and validations)
   and second does the actual unbind. The second part might be useful in
   case of non-PCI layouts.
 - 0004: Move pci_get_kernel_driver_by_path to
   rte_eal_get_kernel_driver_by_path in EAL common. This function is
   generic for any sysfs compliant driver and can be re-used by other
   non-PCI subsystem.

Changes since v0 [4]:
 - Fix for checkpatch and check-git-log
 - Fix missing include in patch 0001
 - Drop patch 2 for splitting sysfs into a sub-function taking file
   handle. This patch doesn't really fit into the model of PCI->EAL
   movement of generic functions which other patches relate to.
   Also, taking cue from review comment [5], it might not have a
   viable use-case as of now.

[1] http://dpdk.org/ml/archives/dev/2016-January/030915.html
[2] http://www.dpdk.org/ml/archives/dev/2016-May/038486.html
[3] http://dpdk.org/ml/archives/dev/2016-August/045993.html
[4] http://dpdk.org/ml/archives/dev/2016-September/046035.html
[5] http://dpdk.org/ml/archives/dev/2016-September/046041.html

Jan Viktorin (4):
  eal: generalize PCI kernel driver enum to EAL
  eal: generalize PCI map/unmap resource to EAL
  eal/linux: generalize PCI kernel unbinding driver to EAL
  eal/linux: generalize PCI kernel driver extraction to EAL

 lib/librte_eal/bsdapp/eal/eal_pci.c             |  2 +-
 lib/librte_eal/bsdapp/eal/rte_eal_version.map   |  8 ++++
 lib/librte_eal/common/eal_common_dev.c          | 39 ++++++++++++++++
 lib/librte_eal/common/eal_common_pci.c          | 39 ----------------
 lib/librte_eal/common/eal_common_pci_uio.c      | 16 ++++---
 lib/librte_eal/common/eal_private.h             | 27 +++++++++++
 lib/librte_eal/common/include/rte_dev.h         | 44 ++++++++++++++++++
 lib/librte_eal/common/include/rte_pci.h         | 42 +----------------
 lib/librte_eal/linuxapp/eal/eal.c               | 55 ++++++++++++++++++++++
 lib/librte_eal/linuxapp/eal/eal_pci.c           | 62 ++++---------------------
 lib/librte_eal/linuxapp/eal/eal_pci_uio.c       |  2 +-
 lib/librte_eal/linuxapp/eal/eal_pci_vfio.c      |  5 +-
 lib/librte_eal/linuxapp/eal/rte_eal_version.map |  8 ++++
 13 files changed, 205 insertions(+), 144 deletions(-)

-- 
2.7.4



More information about the dev mailing list