#
0dff3f26 |
| 03-Feb-2022 |
Dmitry Kozlyuk <dkozlyuk@nvidia.com> |
eal: extend --huge-unlink for hugepage file reuse
Expose Linux EAL ability to reuse existing hugepage files via --huge-unlink=never switch. Default behavior is unchanged, it can also be specified us
eal: extend --huge-unlink for hugepage file reuse
Expose Linux EAL ability to reuse existing hugepage files via --huge-unlink=never switch. Default behavior is unchanged, it can also be specified using --huge-unlink=existing for consistency. Old --huge-unlink switch is kept, it is an alias for --huge-unlink=always. Add a test case for the --huge-unlink=never mode.
Signed-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
#
24d5a1ce |
| 12-Oct-2021 |
John Levon <john.levon@nutanix.com> |
eal/linux: allow hugetlbfs sub-directories
get_hugepage_dir() was implemented in such a way that a --huge-dir option had to exactly match the mountpoint, but there's no reason for this restriction:
eal/linux: allow hugetlbfs sub-directories
get_hugepage_dir() was implemented in such a way that a --huge-dir option had to exactly match the mountpoint, but there's no reason for this restriction: DPDK might not be the only user of hugepages, and shouldn't assume it owns an entire mountpoint. For example, if I have /dev/hugepages/myapp, and /dev/hugepages/dpdk, I should be able to specify:
--huge-dir=/dev/hugepages/dpdk/
and have DPDK only use that sub-directory.
Fix the implementation to allow a sub-directory within a suitable hugetlbfs mountpoint to be specified, preferring the closest match.
Signed-off-by: John Levon <john.levon@nutanix.com> Acked-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
598be723 |
| 03-Jul-2020 |
Haiyue Wang <haiyue.wang@intel.com> |
vfio: support VF token
The Linux kernel module vfio-pci introduces the VF token to enable SR-IOV support since 5.7.
The VF token can be set by a vfio-pci based PF driver and must be known by the vf
vfio: support VF token
The Linux kernel module vfio-pci introduces the VF token to enable SR-IOV support since 5.7.
The VF token can be set by a vfio-pci based PF driver and must be known by the vfio-pci based VF driver in order to gain access to the device.
Since the vfio-pci module uses the VF token as internal data to provide the collaboration between SR-IOV PF and VFs, so DPDK can use the same VF token for all PF devices by specifying the related EAL option.
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Andrew Rybchenko <arybchenko@solarflare.com> Tested-by: Harman Kalra <hkalra@marvell.com>
show more ...
|
#
8f29a607 |
| 24-Oct-2019 |
Anatoly Burakov <anatoly.burakov@intel.com> |
eal/freebsd: support option --base-virtaddr
According to our docs, only Linuxapp supports base-virtaddr option. That is, strictly speaking, not true because most of the things that are attempting to
eal/freebsd: support option --base-virtaddr
According to our docs, only Linuxapp supports base-virtaddr option. That is, strictly speaking, not true because most of the things that are attempting to respect base-virtaddr are in common files, so FreeBSD already *mostly* supports this option in practice.
This commit fixes the remaining bits to explicitly support base-virtaddr option, and moves the arg parsing from EAL to common options parsing code. Documentation is also updated to reflect that all platforms now support base-virtaddr.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Reviewed-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
476c847a |
| 14-Dec-2018 |
Jim Harris <james.r.harris@intel.com> |
malloc: add option --match-allocations
SPDK uses the rte_mem_event_callback_register API to create RDMA memory regions (MRs) for newly allocated regions of memory. This is used in both the SPDK NVMe
malloc: add option --match-allocations
SPDK uses the rte_mem_event_callback_register API to create RDMA memory regions (MRs) for newly allocated regions of memory. This is used in both the SPDK NVMe-oF target and the NVMe-oF host driver.
DPDK creates internal malloc_elem structures for these allocated regions. As users malloc and free memory, DPDK will sometimes merge malloc_elems that originated from different allocations that were notified through the registered mem_event callback routine. This results in subsequent allocations that can span across multiple RDMA MRs. This requires SPDK to check each DPDK buffer to see if it crosses an MR boundary, and if so, would have to add considerable logic and complexity to describe that buffer before it can be accessed by the RNIC. It is somewhat analagous to rte_malloc returning a buffer that is not IOVA-contiguous.
As a malloc_elem gets split and some of these elements get freed, it can also result in DPDK sending an RTE_MEM_EVENT_FREE notification for a subset of the original RTE_MEM_EVENT_ALLOC notification. This is also problematic for RDMA memory regions, since unregistering the memory region is all-or-nothing. It is not possible to unregister part of a memory region.
To support these types of applications, this patch adds a new --match-allocations EAL init flag. When this flag is specified, malloc elements from different hugepage allocations will never be merged. Memory will also only be freed back to the system (with the requisite memory event callback) exactly as it was originally allocated.
Since part of this patch is extending the size of struct malloc_elem, we also fix up the malloc autotests so they do not assume its size exactly fits in one cacheline.
Signed-off-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
#
3ee567cf |
| 19-Nov-2018 |
Anatoly Burakov <anatoly.burakov@intel.com> |
doc: document all EAL parameters in one place
Currently, the most complete (but still incomplete) user guide for EAL command-line parameters resides in user guide for testpmd. This is wrong on multi
doc: document all EAL parameters in one place
Currently, the most complete (but still incomplete) user guide for EAL command-line parameters resides in user guide for testpmd. This is wrong on multiple levels, and should not be the case.
To fix it, we have to create a document that lists all supported EAL command-line arguments. However, because different platforms support different subsets of available EAL parameters, instead of creating a single file, we will create a common file in doc/guides/common containing documentation for EAL parameters that are supported on all of our supported platforms (Linux and FreeBSD at the time of this writing).
We will then include this document in the Getting Started guides for all supported platforms, so that any changes made to documentation for commonly supported EAL parameters will be reflected in Getting Started guides for all platforms.
This patch also removes EAL parameters documentation from the testpmd user guide, and instead adds references to the newly created documents in both testpmd user guides and in sample applications guide.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com> Reviewed-by: Rami Rosen <roszenrami@gmail.com>
show more ...
|