| f1f6ebc0 | 24-Aug-2021 |
William Tu <[email protected]> |
eal: remove sys/queue.h from public headers
Currently there are some public headers that include 'sys/queue.h', which is not POSIX, but usually provided by the Linux/BSD system library. (Not in POSI
eal: remove sys/queue.h from public headers
Currently there are some public headers that include 'sys/queue.h', which is not POSIX, but usually provided by the Linux/BSD system library. (Not in POSIX.1, POSIX.1-2001, or POSIX.1-2008. Present on the BSDs.) The file is missing on Windows. During the Windows build, DPDK uses a bundled copy, so building a DPDK library works fine. But when OVS or other applications use DPDK as a library, because some DPDK public headers include 'sys/queue.h', on Windows, it triggers an error due to no such file.
One solution is to install the 'lib/eal/windows/include/sys/queue.h' into Windows environment, such as [1]. However, this means DPDK exports the functionalities of 'sys/queue.h' into the environment, which might cause symbols, macros, headers clashing with other applications.
The patch fixes it by removing the "#include <sys/queue.h>" from DPDK public headers, so programs including DPDK headers don't depend on the system to provide 'sys/queue.h'. When these public headers use macros such as TAILQ_xxx, we replace it by the ones with RTE_ prefix. For Windows, we copy the definitions from <sys/queue.h> to rte_os.h in Windows EAL. Note that these RTE_ macros are compatible with <sys/queue.h>, both at the level of API (to use with <sys/queue.h> macros in C files) and ABI (to avoid breaking it).
Additionally, the TAILQ_FOREACH_SAFE is not part of <sys/queue.h>, the patch replaces it with RTE_TAILQ_FOREACH_SAFE.
[1] http://mails.dpdk.org/archives/dev/2021-August/216304.html
Suggested-by: Nick Connolly <[email protected]> Suggested-by: Dmitry Kozlyuk <[email protected]> Signed-off-by: William Tu <[email protected]> Acked-by: Dmitry Kozlyuk <[email protected]> Acked-by: Narcisa Vasile <[email protected]>
show more ...
|
| 41e026c1 | 16-Mar-2021 |
Thomas Monjalon <[email protected]> |
bus/pci: fix Windows kernel driver categories
In Windows probing, the value RTE_PCI_KDRV_NONE was used instead of RTE_PCI_KDRV_UNKNOWN. This value covers the mlx case where the kernel driver is in p
bus/pci: fix Windows kernel driver categories
In Windows probing, the value RTE_PCI_KDRV_NONE was used instead of RTE_PCI_KDRV_UNKNOWN. This value covers the mlx case where the kernel driver is in place, offering a bifurcated mode to the userspace driver. When the kernel driver is listed as unknown, there is no special treatment in DPDK probing, contrary to UIO modes.
The value RTE_PCI_KDRV_NIC_UIO (FreeBSD) was re-used instead of having a new RTE_PCI_KDRV_NET_UIO for Windows NetUIO. While adding the new value RTE_PCI_KDRV_NET_UIO (at the end for ABI compatibility), the enum of kernel driver categories is annotated.
Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers") Fixes: c76ec01b4591 ("bus/pci: support netuio on Windows") Cc: [email protected]
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Dmitry Kozlyuk <[email protected]> Acked-by: Tal Shnaiderman <[email protected]> Acked-by: Ranjit Menon <[email protected]>
show more ...
|
| 6857cb63 | 01-Mar-2021 |
Khoa To <[email protected]> |
bus/pci: support allow/block lists on Windows
EAL -a and -b options are used to specify which PCI devices are explicitly allowed or blocked during PCI bus scan. This evaluation is missing in the Wi
bus/pci: support allow/block lists on Windows
EAL -a and -b options are used to specify which PCI devices are explicitly allowed or blocked during PCI bus scan. This evaluation is missing in the Windows implementation of rte_pci_scan.
This patch provides this missing functionality, so that apps can specify which devices to ignore during PCI bus scan.
Signed-off-by: Khoa To <[email protected]> Acked-by: Ranjit Menon <[email protected]> Acked-by: Dmitry Kozlyuk <[email protected]>
show more ...
|
| d9b02d2b | 01-Mar-2021 |
Nick Connolly <[email protected]> |
bus/pci: set Windows device class and bus
Attaching to an NVMe disk on Windows using SPDK requires the PCI class ID and device.bus fields. Decode the class ID from the PCI device info strings if it
bus/pci: set Windows device class and bus
Attaching to an NVMe disk on Windows using SPDK requires the PCI class ID and device.bus fields. Decode the class ID from the PCI device info strings if it is present and set device.bus.
Signed-off-by: Nick Connolly <[email protected]> Acked-by: Tal Shnaiderman <[email protected]> Acked-by: Dmitry Kozlyuk <[email protected]>
show more ...
|
| ac7c98d0 | 13-Dec-2020 |
Tal Shnaiderman <[email protected]> |
bus/pci: ignore missing NUMA node on Windows
On older processors, NUMA isn't bound to PCIe locality. those cases return ERROR_NOT_FOUND in response to the SetupDiGetDevicePropertyW call with DEVPKEY
bus/pci: ignore missing NUMA node on Windows
On older processors, NUMA isn't bound to PCIe locality. those cases return ERROR_NOT_FOUND in response to the SetupDiGetDevicePropertyW call with DEVPKEY_Device_Numa_Node attribute.
This error fails the probe process for the PCIe device. this commit will ignore such failure and will set the numa_node to 0.
Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers") Cc: [email protected]
Reported-by: Odi Assli <[email protected]> Signed-off-by: Tal Shnaiderman <[email protected]> Tested-by: Odi Assli <[email protected]> Acked-by: Dmitry Kozlyuk <[email protected]> Acked-by: Ranjit Menon <[email protected]>
show more ...
|
| 6d10ddb4 | 11-Dec-2020 |
Dmitry Kozlyuk <[email protected]> |
bus/pci: fix hardware ID limit on Windows
Length of hardware IDs list is limited by REGSTR_VAL_MAX_HCID_LEN [1], which is currently 1024. With the old limit of 260, obtaining the list could fail in
bus/pci: fix hardware ID limit on Windows
Length of hardware IDs list is limited by REGSTR_VAL_MAX_HCID_LEN [1], which is currently 1024. With the old limit of 260, obtaining the list could fail in a rare occasion of a very long result (no examples known). This also removes a bogus dependency on the maximum path length.
[1]: https://docs.microsoft.com/en-us/windows-hardware/drivers/install/hardware-ids
Fixes: b762221ac24f ("bus/pci: support Windows with bifurcated drivers") Cc: [email protected]
Signed-off-by: Dmitry Kozlyuk <[email protected]>
show more ...
|