| 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 ...
|
| d2a66ad7 | 13-Apr-2021 |
Xueming Li <[email protected]> |
bus: add device arguments name parsing
For device probe and iterator, devargs name was key information, parsed by rte_devargs_parse. In legacy parser, devargs name was extracted after bus name: bu
bus: add device arguments name parsing
For device probe and iterator, devargs name was key information, parsed by rte_devargs_parse. In legacy parser, devargs name was extracted after bus name: bus:name,kv_arguments,,, Example: pci:83:00.0,arguments,... vdev:pcap0,...
To be compatible with legacy parser, this patch introduces new bus driver API devargs_parse to parse devargs and update devargs name. If devargs_parse not implemented by bus driver, the new syntax parser rte_devargs_layers_parse default will resolve devargs name from bus's "name" argument.
Different bus driver might choose different keys from arguments with unified format. The PCI bus implementation fills the devargs name with the "addr" argument, example: -a bus=pci,addr=83:00.0/class=eth/driver=mlx5,... name: 0000:03:00.0 -a bus=vdev,name=pcap0/class=eth/driver=pcap,... name:pcap0
Signed-off-by: Xueming Li <[email protected]> Reviewed-by: Gaetan Rivet <[email protected]>
show more ...
|
| 7c83a1e3 | 16-Jun-2021 |
David Marchand <[email protected]> |
bus/pci: fix leak for unbound devices
For devices not bound to any Linux kernel module, we leak a pci object since it is never added to the PCI bus device list.
Fixes: c79a1c67465d ("bus/pci: optim
bus/pci: fix leak for unbound devices
For devices not bound to any Linux kernel module, we leak a pci object since it is never added to the PCI bus device list.
Fixes: c79a1c67465d ("bus/pci: optimize bus scan") Cc: [email protected]
Reported-by: Owen Hilyard <[email protected]> Signed-off-by: David Marchand <[email protected]>
show more ...
|
| fc5bffb8 | 23-Jun-2021 |
David Christensen <[email protected]> |
bus/pci: support IOVA as VA in PowerVM LPARs
Add IOMMU detection logic for PowerVM LPARs.
PowerNV $ cat /proc/cpuinfo ... timebase : 512000000 platform : PowerNV model : 8335-GTW
Po
bus/pci: support IOVA as VA in PowerVM LPARs
Add IOMMU detection logic for PowerVM LPARs.
PowerNV $ cat /proc/cpuinfo ... timebase : 512000000 platform : PowerNV model : 8335-GTW
PowerVM LPAR $ cat /proc/cpuinfo ... timebase : 512000000 platform : pSeries model : IBM,9009-22A machine : CHRP IBM,9009-22A MMU : Hash
PowerNV KVM Guest $ cat /proc/cpuinfo ... timebase : 512000000 platform : pSeries model : IBM pSeries (emulated by qemu) machine : CHRP IBM pSeries (emulated by qemu) MMU : Radix
Signed-off-by: David Christensen <[email protected]> Reviewed-by: Thinh Tran <[email protected]>
show more ...
|