#
849f773b |
| 25-Jun-2024 |
David Marchand <david.marchand@redhat.com> |
bus/pci: use a dynamic logtype
Register a logtype for this bus driver and stop logging as EAL.
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Chenbo Xia <chenbox@nvidia.com>
|
#
095cf6e6 |
| 31-May-2023 |
Chenbo Xia <chenbo.xia@intel.com> |
bus/pci: introduce MMIO read/write
The MMIO regions may not be mmap-able for VFIO-PCI devices. In this case, the driver should explicitly do read and write to access these regions.
Signed-off-by: C
bus/pci: introduce MMIO read/write
The MMIO regions may not be mmap-able for VFIO-PCI devices. In this case, the driver should explicitly do read and write to access these regions.
Signed-off-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Yahui Cao <yahui.cao@intel.com>
show more ...
|
#
87a02023 |
| 31-May-2023 |
Chenbo Xia <chenbo.xia@intel.com> |
bus/pci: introduce internal representation of device
This patch introduces an internal representation of the PCI device which will be used to store the internal information that don't have to be exp
bus/pci: introduce internal representation of device
This patch introduces an internal representation of the PCI device which will be used to store the internal information that don't have to be exposed to drivers, e.g., the VFIO region sizes/offsets.
In this patch, the internal structure is simply a wrapper of the rte_pci_device structure. More fields will be added.
Signed-off-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Yahui Cao <yahui.cao@intel.com>
show more ...
|
#
7dcd73e3 |
| 04-Oct-2022 |
Olivier Matz <olivier.matz@6wind.com> |
drivers/bus: set device NUMA node to unknown by default
The dev->device.numa_node field is set by each bus driver for every device it manages to indicate on which NUMA node this device lies.
When t
drivers/bus: set device NUMA node to unknown by default
The dev->device.numa_node field is set by each bus driver for every device it manages to indicate on which NUMA node this device lies.
When this information is unknown, the assigned value is not consistent across the bus drivers.
Set the default value to SOCKET_ID_ANY (-1) by all bus drivers when the NUMA information is unavailable. This change impacts rte_eth_dev_socket_id() in the same manner.
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
#
8f4de2db |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
bus/pci: fill bus specific information
For diagnostic, it may be useful to provide the PCI vendor and device id.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson
bus/pci: fill bus specific information
For diagnostic, it may be useful to provide the PCI vendor and device id.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
1f37cb2b |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
bus/pci: make driver-only headers private
The pci bus interface is for drivers only. Mark as internal and move the header in the driver headers list.
While at it, cleanup the code: - fix indentatio
bus/pci: make driver-only headers private
The pci bus interface is for drivers only. Mark as internal and move the header in the driver headers list.
While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fix the code that relied on implicit inclusion,
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Rosen Xu <rosen.xu@intel.com>
show more ...
|
#
d61138d4 |
| 22-Oct-2021 |
Harman Kalra <hkalra@marvell.com> |
drivers: remove direct access to interrupt handle
Removing direct access to interrupt handle structure fields, rather use respective get set APIs for the same. Making changes to all the drivers acce
drivers: remove direct access to interrupt handle
Removing direct access to interrupt handle structure fields, rather use respective get set APIs for the same. Making changes to all the drivers access the interrupt handle fields.
Signed-off-by: Harman Kalra <hkalra@marvell.com> Acked-by: Hyong Youb Kim <hyonkim@cisco.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Tested-by: Raslan Darawsheh <rasland@nvidia.com>
show more ...
|
#
aa777f00 |
| 02-May-2021 |
Thomas Monjalon <thomas@monjalon.net> |
bus/pci: update files description
Some files were starting with some outdated introductions.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: David Marchand <david.marchand@redhat.
bus/pci: update files description
Some files were starting with some outdated introductions.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
59440fba |
| 14-Oct-2020 |
Thomas Monjalon <thomas@monjalon.net> |
bus/pci: remove unused scan by address
The function pci_update_device was used to scan a device for probing by PCI address. This private function (and implementations) are unused since such probing
bus/pci: remove unused scan by address
The function pci_update_device was used to scan a device for probing by PCI address. This private function (and implementations) are unused since such probing is removed.
Fixes: f3bac43b60da ("bus/pci: remove unused function to probe by address") Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
56bb5841 |
| 07-Sep-2020 |
Thomas Monjalon <thomas@monjalon.net> |
kernel/linux: remove igb_uio
As decided in the Technical Board in November 2019, the kernel module igb_uio is moved to the dpdk-kmods repository in the /linux/igb_uio/ directory.
Minutes of Technic
kernel/linux: remove igb_uio
As decided in the Technical Board in November 2019, the kernel module igb_uio is moved to the dpdk-kmods repository in the /linux/igb_uio/ directory.
Minutes of Technical Board meeting: https://mails.dpdk.org/archives/dev/2019-November/151763.html
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
e200535c |
| 17-Sep-2020 |
David Marchand <david.marchand@redhat.com> |
mem: drop mapping API workaround
Now that the pci_map_resource API is private to the PCI bus, we can drop the compatibility workaround we had implemented in 20.08.
Signed-off-by: David Marchand <da
mem: drop mapping API workaround
Now that the pci_map_resource API is private to the PCI bus, we can drop the compatibility workaround we had implemented in 20.08.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
7c0d798a |
| 17-Sep-2020 |
David Marchand <david.marchand@redhat.com> |
bus/pci: switch to private kernel driver enum
The rte_kernel_driver enum actually only pointed at PCI drivers and is only used in the PCI subsystem. Remove it from the generic device API and use a p
bus/pci: switch to private kernel driver enum
The rte_kernel_driver enum actually only pointed at PCI drivers and is only used in the PCI subsystem. Remove it from the generic device API and use a private enum in the PCI code.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
show more ...
|
#
9d2b2459 |
| 10-Jul-2020 |
Thomas Monjalon <thomas@monjalon.net> |
pci: keep API compatibility with mmap values
The function pci_map_resource() returns MAP_FAILED in case of error. When replacing the call to mmap() by rte_mem_map(), the error code became NULL, brea
pci: keep API compatibility with mmap values
The function pci_map_resource() returns MAP_FAILED in case of error. When replacing the call to mmap() by rte_mem_map(), the error code became NULL, breaking the API. This function is probably not used outside of DPDK, but it is still a problem for two reasons: - the deprecation process was not followed - the Linux function pci_vfio_mmap_bar() is broken for i40e
The error code is reverted to the Unix value MAP_FAILED. Windows needs to define this special value (-1 as in Unix). After proper deprecation process, the API could be changed again if really needed.
Because of the switch from mmap() to rte_mem_map(), another part of the API was changed: "int additional_flags" are defined as "additional flags for the mapping range" without mentioning it was directly used in mmap(). Currently it is directly used in rte_mem_map(), that's why the values rte_map_flags must be mapped (sic) on the mmap ones in case of Unix OS.
These are side effects of a badly defined API using Unix values.
Bugzilla ID: 503 Fixes: 2fd3567e5425 ("pci: use OS generic memory mapping functions")
Reported-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Tested-by: Lihong Ma <lihongx.ma@intel.com>
show more ...
|
#
2fd3567e |
| 29-Jun-2020 |
Tal Shnaiderman <talshn@mellanox.com> |
pci: use OS generic memory mapping functions
Changing all of PCIs Unix memory mapping to the new memory allocation API wrapper.
Change all of PCI mapping function usage in bus/pci to support the ne
pci: use OS generic memory mapping functions
Changing all of PCIs Unix memory mapping to the new memory allocation API wrapper.
Change all of PCI mapping function usage in bus/pci to support the new API.
Signed-off-by: Tal Shnaiderman <talshn@mellanox.com>
show more ...
|
#
463a5245 |
| 02-May-2020 |
Sunil Kumar Kori <skori@marvell.com> |
bus/pci: optimise scanning with whitelist/blacklist
rte_bus_scan API scans all the available PCI devices irrespective of white or black listing parameters then further devices are probed based on wh
bus/pci: optimise scanning with whitelist/blacklist
rte_bus_scan API scans all the available PCI devices irrespective of white or black listing parameters then further devices are probed based on white or black listing parameters. So unnecessary CPU cycles are wasted during rte_pci_scan.
For Octeontx2 platform with core frequency 2.4 Ghz, rte_bus_scan consumes around 26ms to scan around 90 PCI devices but all may not be used by the application. So for the application which uses 2 NICs, rte_bus_scan consumes few microseconds and rest time is saved with this patch.
Patch restricts devices to be scanned as per below mentioned conditions: - All devices will be scanned if no parameters are passed. - Only white listed devices will be scanned if white list is available. - All devices, except black listed, will be scanned if black list is available.
Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Acked-by: Gaetan Rivet <grive@u256.net>
show more ...
|
#
e02b661b |
| 22-Oct-2019 |
David Marchand <david.marchand@redhat.com> |
bus/pci: check IO permissions for UIO only
On x86, calling inb/outb special instructions (used in UIO ioport read/write parts) is only possible if the right IO permissions has been granted.
The onl
bus/pci: check IO permissions for UIO only
On x86, calling inb/outb special instructions (used in UIO ioport read/write parts) is only possible if the right IO permissions has been granted.
The only user of this API (the net/virtio pmd) checks this unconditionnaly but this should be hidden by the rte_pci_ioport API itself and only checked when the device is bound to a UIO driver.
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
show more ...
|
#
8ac35916 |
| 12-Aug-2019 |
David Marchand <david.marchand@redhat.com> |
remove useless include of EAL memory config header
Restrict this header inclusion to its real users.
Fixes: 028669bc9f0d ("eal: hide shared memory config") Cc: stable@dpdk.org
Signed-off-by: David
remove useless include of EAL memory config header
Restrict this header inclusion to its real users.
Fixes: 028669bc9f0d ("eal: hide shared memory config") Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
#
66d3724b |
| 05-Aug-2019 |
David Marchand <david.marchand@redhat.com> |
bus/pci: always check IOMMU capabilities
IOMMU capabilities won't change and must be checked even if no PCI device seem to be supported yet when EAL initialised.
This is to accommodate with SPDK th
bus/pci: always check IOMMU capabilities
IOMMU capabilities won't change and must be checked even if no PCI device seem to be supported yet when EAL initialised.
This is to accommodate with SPDK that registers its drivers after rte_eal_init(), especially on PPC platform where the IOMMU does not support VA.
Fixes: 703458e19c16 ("bus/pci: consider only usable devices for IOVA mode")
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: David Christensen <drc@linux.vnet.ibm.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Tested-by: Jerin Jacob <jerinj@marvell.com> Tested-by: Takeshi Yoshimura <tyos@jp.ibm.com>
show more ...
|
#
703458e1 |
| 14-Jun-2019 |
Ben Walker <benjamin.walker@intel.com> |
bus/pci: consider only usable devices for IOVA mode
When selecting the preferred IOVA mode of the pci bus, the current heuristic ("are devices bound?", "are devices bound to UIO?", "are pmd drivers
bus/pci: consider only usable devices for IOVA mode
When selecting the preferred IOVA mode of the pci bus, the current heuristic ("are devices bound?", "are devices bound to UIO?", "are pmd drivers supporting IOVA as VA?" etc..) should honor the device white/blacklist so that an unwanted device does not impact the decision.
There is no reason to consider a device which has no driver available.
This applies to all OS, so implements this in common code then call a OS specific callback.
On Linux side: - the VFIO special considerations should be evaluated only if VFIO support is built, - there is no strong requirement on using VA rather than PA if a driver supports VA, so defaulting to DC in such a case.
Signed-off-by: Ben Walker <benjamin.walker@intel.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
#
f9acaf84 |
| 03-Apr-2019 |
Bruce Richardson <bruce.richardson@intel.com> |
replace snprintf with strlcpy without adding extra include
For files that already have rte_string_fns.h included in them, we can do a straight replacement of snprintf(..."%s",...) with strlcpy. The
replace snprintf with strlcpy without adding extra include
For files that already have rte_string_fns.h included in them, we can do a straight replacement of snprintf(..."%s",...) with strlcpy. The changes in this patch were auto-generated via command:
spatch --sp-file devtools/cocci/strlcpy-with-header.cocci --dir . --in-place
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
e8d435f1 |
| 28-Aug-2018 |
Luca Boccassi <bluca@debian.org> |
bus/pci: harmonize return value of config read
On Linux, rte_pci_read_config on success returns the number of read bytes, but on BSD it returns 0. Document the return values, and have BSD behave as
bus/pci: harmonize return value of config read
On Linux, rte_pci_read_config on success returns the number of read bytes, but on BSD it returns 0. Document the return values, and have BSD behave as Linux does.
At least one case (bnx2x PMD) treats 0 as an error, so the change makes sense also for that.
Signed-off-by: Luca Boccassi <bluca@debian.org> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
6844d146 |
| 02-Oct-2018 |
Thomas Monjalon <thomas@monjalon.net> |
eal: add bus pointer in device structure
When a device is added with a devargs (hotplug or whitelist), the bus pointer can be retrieved via its devargs. But there is no such devargs.bus in case of s
eal: add bus pointer in device structure
When a device is added with a devargs (hotplug or whitelist), the bus pointer can be retrieved via its devargs. But there is no such devargs.bus in case of standard scan.
A pointer to the rte_bus handle is added to rte_device. When a device is allocated (during a scan), the pointer to its bus is assigned.
It will make possible to remove a rte_device, using the function pointer from its bus.
The function rte_bus_find_by_device() becomes useless, and may be removed later.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com> Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
#
5566a3e3 |
| 19-Dec-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@in
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
82bf1caf |
| 12-Nov-2017 |
Jerin Jacob <jerin.jacob@caviumnetworks.com> |
bus/pci: fix a typo in doxygen file description
Fixes: 764bf26873b9 ("add FreeBSD support")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
|
#
4c00cfdc |
| 04-Nov-2017 |
Thomas Monjalon <thomas@monjalon.net> |
remove useless memzone includes
The memzone header is often included without good reason.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
|