numam-dpdk/lib/eal
Xuan Ding 56259f7fc0 vfio: allow partially unmapping adjacent memory
Currently, if we map a memory area A, then map a separate memory area B
that by coincidence happens to be adjacent to A, current implementation
will merge these two segments into one, and if partial unmapping is not
supported, these segments will then be only allowed to be unmapped in
one go. In other words, given segments A and B that are adjacent, it
is currently not possible to map A, then map B, then unmap A.

Fix this by adding a notion of "chunk size", which will allow
subdividing segments into equally sized segments whenever we are dealing
with an IOMMU that does not support partial unmapping. With this change,
we will still be able to merge adjacent segments, but only if they are
of the same size. If we keep with our above example, adjacent segments A
and B will be stored as separate segments if they are of different
sizes.

Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Signed-off-by: Xuan Ding <xuan.ding@intel.com>
Tested-by: Yvonne Yang <yvonnex.yang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
2021-10-21 14:24:21 +02:00
..
arm config/arm: fix SVE build with GCC 8.3 2021-07-09 22:25:24 +02:00
common devargs: make bus optional 2021-10-21 11:32:44 +02:00
freebsd eal: limit telemetry to primary processes 2021-10-14 20:31:10 +02:00
include mcslock: use WFE in lock for aarch64 2021-10-20 08:22:41 +02:00
linux vfio: allow partially unmapping adjacent memory 2021-10-21 14:24:21 +02:00
ppc eal/ppc: use compiler builtins for atomics 2021-10-14 16:51:25 +02:00
unix eal: handle compressed firmware 2021-07-07 16:41:53 +02:00
windows eal/windows: do not install virt2phys header 2021-10-11 21:17:12 +02:00
x86 eal/x86: sort CPU extended features definitions 2021-10-12 21:07:53 +02:00
meson.build lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
version.map log: promote some function to stable 2021-10-02 11:12:32 +02:00