Go to file
Anatoly Burakov 03ba15ca65 vfio: allow mapping MSI-X BARs if kernel allows it
Currently, DPDK will skip mapping some areas (or even an entire BAR)
if MSI-X table happens to be in them but is smaller than page size.

Kernels 4.16+ will allow mapping MSI-X BARs [1], and will report this
as a capability flag. Capability flags themselves are also only
supported since kernel 4.6 [2].

This commit will introduce support for checking VFIO capabilities,
and will use it to check if we are allowed to map BARs with MSI-X
tables in them, along with backwards compatibility for older
kernels, including a workaround for a variable rename in VFIO
region info structure [3].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
linux.git/commit/?id=a32295c612c57990d17fb0f41e7134394b2f35f6

[2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
linux.git/commit/?id=c84982adb23bcf3b99b79ca33527cd2625fbe279

[3] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/
linux.git/commit/?id=ff63eb638d63b95e489f976428f1df01391e15e4

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
2018-10-04 00:45:50 +02:00
app app/eventdev: support Tx adapter 2018-10-01 16:54:00 +02:00
buildtools devtools: use a common prefix for temporary files 2018-10-01 23:51:45 +02:00
config eventdev: add eth Tx adapter implementation 2018-10-01 16:51:13 +02:00
devtools devtools: use a common prefix for temporary files 2018-10-01 23:51:45 +02:00
doc mem: store memory mode flags in shared config 2018-10-04 00:09:47 +02:00
drivers vfio: allow mapping MSI-X BARs if kernel allows it 2018-10-04 00:45:50 +02:00
examples examples/eventdev_pipeline: support Tx adapter 2018-10-01 16:52:47 +02:00
kernel kni: return failure for all ioctls 2018-10-02 17:57:00 +02:00
lib vfio: allow mapping MSI-X BARs if kernel allows it 2018-10-04 00:45:50 +02:00
license license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
mk event/dsw: add device registration and build system 2018-10-01 16:44:14 +02:00
pkg version: 18.08.0 2018-08-09 23:11:26 +02:00
test kni: allocate memory dynamically for each device 2018-10-02 17:57:00 +02:00
usertools usertools: add octeontx zip device for binding 2018-07-25 13:36:26 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add compression driver and ISA-L PMD guides 2018-05-10 17:46:20 +01:00
GNUmakefile move kernel modules directories 2018-03-21 23:04:21 +01:00
MAINTAINERS maintainers: update for OCTEONTX 2018-10-02 17:56:39 +02:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt net/mlx5: support meson build 2018-09-28 01:41:01 +02:00
meson.build build: generate API documentation with meson 2018-09-18 15:50:54 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org