summaryrefslogtreecommitdiff
path: root/config
AgeCommit message (Collapse)Author
2024-10-30common/cnxk: allow enabling IOVA field in mbufShijith Thotton
The value of RTE_IOVA_IN_MBUF has always been disabled on CNXK platforms, as IOVA in the mbuf is unnecessary. This update changes that behavior to respect the value set by the user. A warning message will be printed if the build is configured to enable IOVA on the CNXK platform. Signed-off-by: Shijith Thotton <[email protected]>
2024-11-11build: skip driver symlinks without sub-directoryGagandeep Singh
if user gives option -Ddrivers_install_subdir= or -Ddrivers_install_subdir=. to install all the PMDs in parent directory, The post installation script "symlink-drivers-solibs.sh" can create invalid library file named 'librte_*.so*' or meson installation errors: ln: './librte_*' and './librte_*' are the same file FAILED: install script '/bin/sh /home/nxa12342/upstream/dpdk/config/. /buildtools/symlink-drivers-solibs.sh lib/x86_64-linux-gnu .' exit code 1, stopped FAILED: meson-install This patch removes this post-install script execution to symlink the PMDs libraries when no sub directory is given. Signed-off-by: Gagandeep Singh <[email protected]> Acked-by: Bruce Richardson <[email protected]>
2024-11-09dma/dpaa: add QDMA stall workaround for ERR050265Jun Yang
Non-prefetchable read setting in the source descriptor may be required for targets other than local memory. Prefetchable read setting will offer better performance for misaligned transfers in the form of fewer transactions and should be set if possible. This patch also fixes QDMA stall issue due to unaligned transactions. Signed-off-by: Jun Yang <[email protected]> Signed-off-by: Gagandeep Singh <[email protected]>
2024-11-09dma/dpaa: add workaround for ERR050757Jun Yang
ERR050757 on LS104x indicates: For outbound PCIe read transactions, a completion buffer is used to store the PCIe completions till the data is passed back to the initiator. At most 16 outstanding transactions are allowed and maximum read request is 256 bytes. The completion buffer size inside the controller needs to be at least 4KB, but the PCIe controller has 3 KB of buffer. In case the size of pending outbound read transactions of more than 3KB, the PCIe controller may drop the incoming completions without notifying the initiator of the transaction, leaving transactions unfinished. All subsequent outbound reads to PCIe are blocked permanently. To avoid qDMA hang as it keeps waiting for data that was silently dropped, set stride mode for qDMA. Signed-off-by: Jun Yang <[email protected]> Signed-off-by: Gagandeep Singh <[email protected]>
2024-11-09config: limit lcore variable maximum size to 128kDavid Marchand
OVS locks all pages to avoid page faults while processing packets. 1M for each lcore translates to allocating 128M with default build options on x86. This resulted in OOM while running unit tests in parallel. At the moment, the more demanding DPDK user of lcore variable is rte_service, with a 2112 bytes object. Limit the lcore variable maximum size to 128k which looks more reasonable. Fixes: 5bce9bed67ad ("eal: add static per-lcore memory allocation facility") Signed-off-by: David Marchand <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]>
2024-11-07eal: add static per-lcore memory allocation facilityMattias Rönnblom
Introduce DPDK per-lcore id variables, or lcore variables for short. An lcore variable has one value for every current and future lcore id-equipped thread. The primary <rte_lcore_var.h> use case is for statically allocating small, frequently-accessed data structures, for which one instance should exist for each lcore. Lcore variables are similar to thread-local storage (TLS, e.g., C11 _Thread_local), but decoupling the values' life time with that of the threads. Lcore variables are also similar in terms of functionality provided by FreeBSD kernel's DPCPU_*() family of macros and the associated build-time machinery. DPCPU uses linker scripts, which effectively prevents the reuse of its, otherwise seemingly viable, approach. The currently-prevailing way to solve the same problem as lcore variables is to keep a module's per-lcore data as RTE_MAX_LCORE-sized array of cache-aligned, RTE_CACHE_GUARDed structs. The benefit of lcore variables over this approach is that data related to the same lcore now is close (spatially, in memory), rather than data used by the same module, which in turn avoid excessive use of padding, polluting caches with unused data. Signed-off-by: Mattias Rönnblom <[email protected]> Acked-by: Morten Brørup <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Acked-by: Chengwen Feng <[email protected]> Acked-by: Stephen Hemminger <[email protected]>
2024-10-30config/x86: set maximum lcores for AMD EPYC Zen5Sivaprasad Tummala
On x86 platforms, max lcores are limited to 128 by default. On AMD EPYC processors, this limit was adjusted for native builds in the commit acb34af951cf ("config/x86: increase lcores number for native AMD EPYC") As agreed earlier in mailing list, this patch adjusts the limit for specific AMD EPYC target/cross builds. Signed-off-by: Sivaprasad Tummala <[email protected]> Acked-by: Morten Brørup <[email protected]>
2024-10-30config/arm: fix warning for native build with meson >= 0.55David Marchand
Caught in UNH logs for native compilation on ARM: Program /...../dpdk/config/arm/armv8_machine.py found: YES (/...../dpdk/config/arm/armv8_machine.py) WARNING: Project targeting '>= 0.57' but tried to use feature deprecated since '0.55.0': ExternalProgram.path. use ExternalProgram.full_path() instead There is nothing to search, nor a reason to call the script with an absolute path. The script can be directly pointed at with files(). Fixes: 200b88cbe0e6 ("build: detect micro-arch on ARM") Fixes: 6f3dbd306de0 ("build: increase minimum meson version to 0.57") Signed-off-by: David Marchand <[email protected]> Reviewed-by: Robin Jarry <[email protected]> Acked-by: Chengwen Feng <[email protected]>
2024-10-30build: limit packed member warning disabling to driversBruce Richardson
The flag '-Wno-address-of-packed-member' is a global warning flag in DPDK. Rather than disabling this warning globally, it is better to just have it enabled for components that may need it. This patch limits the scope of it in the following ways: * limit the use of the flag to the drivers subfolder only - all libs and apps should be buildable without the warning. * exception is made for the vhost library and the ipsec-secgw example for now, as making them buildable with the warning enabled is more complicated. This exception can hopefully be removed in future. Limiting the scope further within the drivers directory is also left for future consideration. However, since HW drivers often have to use packed structures to align with hardware-implemented data layouts, it may be more practical to keep the warning disabled in the longer term. Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Acked-by: Morten Brørup <[email protected]> Acked-by: Chengwen Feng <[email protected]>
2024-10-17build: enable warning for zero-length arrayStephen Hemminger
The zero length array warning can be re-enabled. The zero length marker fields are now removed by commit 9e152e674c77 ("mbuf: remove marker fields") in DPDK 24.03. This reverts the commit cfacbcb5a23b ("build: disable gcc 10 zero-length-bounds warning") Signed-off-by: Stephen Hemminger <[email protected]> Acked-by: Morten Brørup <[email protected]> Acked-by: Bruce Richardson <[email protected]> Acked-by: Kevin Traynor <[email protected]>
2024-10-17config/x86: add 32-bit cross compilation for Arch LinuxBruce Richardson
Add a 32-bit cross file for x86 for Arch linux. Signed-off-by: Bruce Richardson <[email protected]> Acked-by: David Marchand <[email protected]>
2024-10-17config/x86: add 32-bit cross compilation for FedoraBruce Richardson
Add cross compilation target for building 32-bit x86 DPDK on Fedora or RHEL. Signed-off-by: Bruce Richardson <[email protected]> Acked-by: David Marchand <[email protected]>
2024-10-17config/x86: add 32-bit cross compilation for DebianBruce Richardson
To simplify building 32-bit binaries on 64-bit system, we can supply a cross compilation file which provides the relevant compiler flags and settings needed - '-m32' compile/link flag, and appropriate PKG_CONFIG_LIBDIR value. This latter setting will depend upon the layout format of the particular OS/distro in use, so initially add a cross file with paths set for Debian or Ubuntu systems. Note, unlike previous cross files, this file has a .ini extension which means that editors use correct syntax highlighting on it. Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Vladimir Medvedkin <[email protected]> Acked-by: David Marchand <[email protected]>
2024-10-17build: replace deprecated function for cross compilationBruce Richardson
The meson function "get_cross_property" is deprecated in meson 0.58 and should be replaced by "get_external_property". Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Robin Jarry <[email protected]> Tested-by: Ferruh Yigit <[email protected]> Acked-by: Chengwen Feng <[email protected]>
2024-10-17build: remove unnecessary version checksBruce Richardson
Since minimum meson version is now 0.57 we can remove all version checks for versions lower than that. Signed-off-by: Bruce Richardson <[email protected]> Reviewed-by: Robin Jarry <[email protected]> Tested-by: Ferruh Yigit <[email protected]> Acked-by: Chengwen Feng <[email protected]>
2024-10-10config/arm: add Arm Neoverse N3 SoCWathsala Vithanage
Add Arm Neoverse N3 part number to build configuration. Signed-off-by: Wathsala Vithanage <[email protected]> Reviewed-by: Dhruv Tripathi <[email protected]>
2024-10-09build: add common checks for AVX512Bruce Richardson
Rather than having each driver do its own checking for AVX-512 support, let's do it once in config/x86/meson.build and let all drivers and libraries reuse that result. Signed-off-by: Bruce Richardson <[email protected]> Acked-by: David Marchand <[email protected]>
2024-10-08trace: disable traces at compilationMorten Brørup
Some applications want to omit the trace feature. Either to reduce the memory footprint, to reduce the exposed attack surface, or for other reasons. This patch adds an option in rte_config.h to include or omit trace in the build. Trace is included by default. Omitting trace works by omitting all trace points. For API and ABI compatibility, the trace feature itself remains. Furthermore, a public function to determine if trace is build time enabled is added; mainly for the benefit of the unit tests. Signed-off-by: Morten Brørup <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Acked-by: Jerin Jacob <[email protected]>
2024-07-07config/arm: add AmpereOneAC04 platformYutang Jiang
The AmpereOneAC04 is efficient Cloud Native CPU: Up to 192 Cores 2MB Private L2 Cache per Core 8 channel DDR5 128 lanes PCIe Gen5 Signed-off-by: Yutang Jiang <[email protected]> Acked-by: Ruifeng Wang <[email protected]>
2024-06-25config: fix warning for cross build with meson >= 1.3.0David Marchand
Starting meson 1.3.0, the pkgconfig variable is deprecated in favor of pkg-config. Keep both variables as suggested in meson RN. Link: https://mesonbuild.com/Release-notes-for-1-3-0.html#machine-files-pkgconfig-field-deprecated-and-replaced-by-pkgconfig Cc: [email protected] Signed-off-by: David Marchand <[email protected]> Acked-by: Bruce Richardson <[email protected]> Acked-by: Ruifeng Wang <[email protected]>
2024-03-15config/arm: add -march fallback for Neoverse V2Anoob Joseph
Add fallback march for Neoverse V2 to support build with older compilers that doesn't support mcpu = 'neoverse-v2'. Signed-off-by: Anoob Joseph <[email protected]> Acked-by: Jerin Jacob <[email protected]>
2024-03-15config/arm: allow WFE to be enabled by userPavan Nikhilesh
Allow RTE_ARM_USE_WFE to be enabled at meson configuration time by passing it via c_args instead of modifying `config/arm/meson.build`. Example usage: meson build -Dc_args='-DRTE_ARM_USE_WFE' \ --cross-file config/arm/arm64_cn10k_linux_gcc Signed-off-by: Pavan Nikhilesh <[email protected]> Acked-by: Chengwen Feng <[email protected]> Acked-by: Ruifeng Wang <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]> Reviewed-by: Wathsala Vithanage <[email protected]>
2024-03-15config/arm: support -march fallbackPavan Nikhilesh
Some ARM CPUs have specific march requirements and are not compatible with the supported march list. Add fallback march in case the mcpu and the march advertised in the part_number_config are not supported by the compiler. Example mcpu = neoverse-n2 march = armv9-a fallback_march = armv8.5-a mcpu, march not supported machine_args = ['-march=armv8.5-a'] mcpu, march, fallback_march not supported least march supported = armv8-a machine_args = ['-march=armv8-a'] Signed-off-by: Pavan Nikhilesh <[email protected]> Reviewed-by: Juraj Linkeš <[email protected]>
2024-03-15config/arm: add -march crypto feature to thunderxt83Pavan Nikhilesh
Some older compilers don't recognize crypto march feature for thunderxt83 mcpu. Explicitly add it to march feature list. Signed-off-by: Pavan Nikhilesh <[email protected]> Acked-by: Jerin Jacob <[email protected]>
2024-03-15config/arm: add -march armv9-aPavan Nikhilesh
Add armv9-a as supported march flag for ARM neoverse class of processors. Update supported march list to include armv9-a. Signed-off-by: Pavan Nikhilesh <[email protected]>
2024-03-15config/arm: avoid -mcpu and -march conflictsPavan Nikhilesh
The compiler options march and mtune are a subset of mcpu and will lead to conflicts if improper march is chosen for a given mcpu. To avoid conflicts, discard part number march when mcpu is available and is supported by the compiler. Example: march = armv9-a mcpu = neoverse-n2 mcpu supported, march supported machine_args = ['-mcpu=neoverse-n2'] mcpu supported, march not supported machine_args = ['-mcpu=neoverse-n2'] mcpu not supported, march supported machine_args = ['-march=armv9-a'] mcpu not supported, march not supported machine_args = ['-march=armv8.6-a'] Signed-off-by: Pavan Nikhilesh <[email protected]> Reviewed-by: Juraj Linkeš <[email protected]>
2024-03-07config/arm: sort in alphabetical orderAnoob Joseph
Move 'soc_cn9k' above 'soc_cn10k' to have the list alphabetically sorted. Signed-off-by: Anoob Joseph <[email protected]> Reviewed-by: Morten Brørup <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]>
2024-03-06config: add Meson option for packet buffer headroomParthakumar Roy
The default value for RTE_PKTMBUF_HEADROOM used to be set in config/rte_config.h. This patch removes it from the file and instead, a Meson option, pkt_mbuf_headroom, is introduced to make headroom tunable from the build process. Signed-off-by: Parthakumar Roy <[email protected]>
2024-03-06config/arm: add Marvell OdysseyAnoob Joseph
Add meson build configuration for Marvell Odyssey platform with 64-bit ARM Neoverse V2 cores. Signed-off-by: Anoob Joseph <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]>
2024-03-06config/arm: add AWS Graviton4 CPUHonnappa Nagarahalli
Add meson build configuration for AWS Graviton4 platform with 64-bit Arm Neoverse V2 cores. Signed-off-by: Honnappa Nagarahalli <[email protected]> Reviewed-by: Wathsala Vithanage <[email protected]>
2024-03-06config/arm: add NVIDIA Grace CPUHonnappa Nagarahalli
Add meson build configuration for NVIDIA Grace platform with 64-bit Arm Neoverse V2 cores. Signed-off-by: Honnappa Nagarahalli <[email protected]> Acked-by: Ruifeng Wang <[email protected]> Reviewed-by: Wathsala Vithanage <[email protected]>
2024-03-06config/arm: add generic V2 SoCHonnappa Nagarahalli
Add generic V2 CPU SoC. This will allow for compiling a binary that will run on any SoC that uses V2 CPU. Signed-off-by: Honnappa Nagarahalli <[email protected]> Reviewed-by: Wathsala Vithanage <[email protected]>
2024-03-06config/arm: add Neoverse V2 part numberHonnappa Nagarahalli
Add Arm Neoverse V2 CPU part number Signed-off-by: Honnappa Nagarahalli <[email protected]> Acked-by: Ruifeng Wang <[email protected]> Reviewed-by: Wathsala Vithanage <[email protected]>
2024-03-06config: fix CPU instruction set for cross-buildJoyce Kong
The platform value would be 'native' only when not cross build. Move the operation about modifying cpu_instruction_set while platform equals 'native' to the not cross build branch. Fixes: bf66003b51ec ("build: use platform for generic and native builds") Cc: [email protected] Signed-off-by: Joyce Kong <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> Acked-by: Stephen Hemminger <[email protected]> Tested-by: Pavan Nikhilesh <[email protected]>
2024-03-06build: build ring library with MSVCTyler Retzlaff
* Use RTE_USE_C11_MEM_MODEL when building with MSVC. * When building with MSVC enable building of ring library. Signed-off-by: Tyler Retzlaff <[email protected]> Acked-by: Bruce Richardson <[email protected]>
2024-03-06build: build EAL library with MSVCTyler Retzlaff
* MSVC now has limited handling of GCC __extension__ keyword when compiling C so only expand __extension__ empty on MSVC when building with C++. * When building with MSVC enable the statement expressions compiler extension. * When building with MSVC enable building of eal library. Signed-off-by: Tyler Retzlaff <[email protected]> Acked-by: Bruce Richardson <[email protected]>
2024-02-23net/ionic: support vdev for embedded applicationsAndrew Boyer
Add support for running DPDK applications directly on AMD Pensando embedded HW. The platform exposes the device BARs through UIO. The UIO code in the common/ionic library walks the sysfs filesystem to identify the relevant BARs and map them into process memory. The SoCs are named 'Capri' and 'Elba'. The vdev device interface code is located in ionic_dev_vdev.c. Some datapath operations are #ifdef-ed out to save on resources when running in embedded mode. Some control path operations are skipped by the ionic_is_embedded() helper function. Before ringing the doorbell, use an ARM 'dsb st' barrier. The normal barrier inside rte_write64() is insufficient on these devices due to a chip errata. Signed-off-by: Andrew Boyer <[email protected]> Signed-off-by: Neel Patel <[email protected]> Signed-off-by: R Mohamed Shah <[email protected]> Signed-off-by: Alfredo Cardigliano <[email protected]> Acked-by: Ferruh Yigit <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]>
2024-02-19build: set toolchain macros from predefined macrosTyler Retzlaff
Stop writing RTE_TOOLCHAIN_XXX macros to rte_build_config.h. When an application builds it doesn't necessarily use the same toolchain that DPDK was built with. Instead evaluate toolchain predefined macros and define RTE_TOOLCHAIN_XXX macros as appropriate each time rte_config.h is preprocessed. Signed-off-by: Tyler Retzlaff <[email protected]> Acked-by: Bruce Richardson <[email protected]>
2024-02-18build: fix linker warnings about undefined symbolsBruce Richardson
The default behaviour of "ld.lld" has changed, so it now prints out warnings about entries in the version.map file which don't exist in the current build. Since we use our version.map file simply to filter out the functions we don't want made public, we include in it all functions across all OS's and builds that we want public if present. This causes these ld warnings to be emitted, e.g. on BSD, which is missing functionality found on Linux. For example: * hpet functions in EAL * regexdev enqueue and dequeue burst * eventdev event_timer functions Easiest solution, without major rework of how we use our version.map files, and without dynamically generating them per-build, is to pass the --undefined-version flag to the linker, to restore the old behaviour. Cc: [email protected] Signed-off-by: Bruce Richardson <[email protected]>
2024-02-13config/x86: increase lcores for AMD EPYC cross buildSivaprasad Tummala
On x86 platforms, max lcores are limited to 128 by default. On AMD EPYC processors, this limit was adjusted for native builds in the commit acb34af951cf ("config/x86: increase lcores number for native AMD EPYC") As agreed earlier in mailing list, this patch adjusts the limit for specific AMD EPYC target/cross builds. Signed-off-by: Sivaprasad Tummala <[email protected]> Acked-by: Morten Brørup <[email protected]> Acked-by: Konstantin Ananyev <[email protected]>
2023-11-22config: fix RISC-V native buildChristian Ehrhardt
If building riscv natively with -Dplatform=generic, config/meson.build will select cpu_instruction_set=riscv. That was fine because config/riscv/meson.build did override it to valid values later, but since commit b7676fcccab4 ("config: verify machine arch flag"), it will break the build as it tries to test -march=riscv which is not a valid value. The generic setting used in most cases is rv64gc, set this here as well. Fixes: b7676fcccab4 ("config: verify machine arch flag") Fixes: f22e705ebf12 ("eal/riscv: support RISC-V architecture") Signed-off-by: Christian Ehrhardt <[email protected]> Acked-by: Sivaprasad Tummala <[email protected]>
2023-11-12config/x86: increase lcores number for native AMD EPYCSivaprasad Tummala
By default, max lcores are limited to 128 for x86 platforms. On AMD EPYC processors, this limit needs to be increased to leverage all the cores. The patch adjusts the limit specifically for native compilation on AMD EPYC CPUs. techboard: https://mails.dpdk.org/archives/dev/2023-October/279672.html Signed-off-by: Sivaprasad Tummala <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Acked-by: Morten Brørup <[email protected]>
2023-11-06build: add libarchive to optional external dependenciesSrikanth Yalavarthi
In order to avoid linking with Libs.private, libarchive is not added to ext_deps during the meson setup stage. Since libarchive is not added to ext_deps, cross-compilation or native compilation with libarchive installed in non-standard location fails with errors related to "cannot find -larchive" or "archive.h: No such file or directory". In order to fix the build failures, user is required to define the 'c_args' and 'c_link_args' with '-I<includedir>' and '-L<libdir>'. This patch adds libarchive to ext_deps and further would not require setting c_args and c_link_args externally. Fixes: 40edb9c0d36b ("eal: handle compressed firmware") Cc: [email protected] Signed-off-by: Srikanth Yalavarthi <[email protected]> Acked-by: Bruce Richardson <[email protected]>
2023-11-06config: verify machine arch flagSivaprasad Tummala
Added additional checks for compiler support of specific cpu arch flags to fix incorrect error reporting. Without this patch, meson build reports '__SSE4_2__' not defined error for x86 builds when the compiler does not support the specified cpu_instruction_set (or) machine argument. Signed-off-by: Sivaprasad Tummala <[email protected]> Acked-by: Bruce Richardson <[email protected]>
2023-11-06config/arm: fix aarch32 build with GCC 13Juraj Linkeš
The aarch32 with gcc13 fails with: Compiler for C supports arguments -march=armv8-a: NO ../config/arm/meson.build:714:12: ERROR: Problem encountered: No suitable armv8 march version found. This is because we test -march=armv8-a alone (without the -mpfu option), which is no longer supported in gcc13 aarch32 builds. The most recent recommendation from the compiler team is to build with -march=armv8-a+simd -mfpu=auto, which should work for compilers old and new. The suggestion is to first check -march=armv8-a+simd and only then check -mfpu=auto. To address this, add a way to force the architecture (the value of the -march option). Cc: [email protected] Signed-off-by: Juraj Linkeš <[email protected]> Acked-by: Ruifeng Wang <[email protected]> Reviewed-by: Paul Szczepanek <[email protected]>
2023-11-06config/arm: add cortex-A55 part numberHemant Agrawal
This patch adds the part number for Cortex-A55 ARM Cores A55 is used in NXP-i.mx93 SoCs. Signed-off-by: Hemant Agrawal <[email protected]>
2023-10-29ml/cnxk: support config/close TVMDP librarySrikanth Yalavarthi
Added support to configure and close TVMDP library based on ML device configuration options. Updated meson build to enable Jansson, TVM runtime, TVMDP library as build dependencies. Signed-off-by: Srikanth Yalavarthi <[email protected]>
2023-10-31build: temporarily disable MSVC warningsTyler Retzlaff
Temporarily disable integer truncation and conversion warnings for MSVC to allow CI pipeline to be established. Signed-off-by: Tyler Retzlaff <[email protected]> Acked-by: Bruce Richardson <[email protected]>
2023-10-17power: refactor uncore power management APISivaprasad Tummala
Currently the uncore power management implementation is vendor specific. Added new vendor agnostic uncore power interface similar to rte_power and rename specific implementations ("rte_power_intel_uncore") to "power_intel_uncore" along with functions. Signed-off-by: Sivaprasad Tummala <[email protected]>
2023-10-04eventdev: introduce link profilesPavan Nikhilesh
A collection of event queues linked to an event port can be associated with a unique identifier called as a link profile, multiple such profiles can be created based on the event device capability using the function `rte_event_port_profile_links_set` which takes arguments similar to `rte_event_port_link` in addition to the profile identifier. The maximum link profiles that are supported by an event device is advertised through the structure member `rte_event_dev_info::max_profiles_per_port`. By default, event ports are configured to use the link profile 0 on initialization. Once multiple link profiles are set up and the event device is started, the application can use the function `rte_event_port_profile_switch` to change the currently active profile on an event port. This effects the next `rte_event_dequeue_burst` call, where the event queues associated with the newly active link profile will participate in scheduling. An unlink function `rte_event_port_profile_unlink` is provided to modify the links associated to a profile, and `rte_event_port_profile_links_get` can be used to retrieve the links associated with a profile. Using Link profiles can reduce the overhead of linking/unlinking and waiting for unlinks in progress in fast-path and gives applications the ability to switch between preset profiles on the fly. Signed-off-by: Pavan Nikhilesh <[email protected]> Acked-by: Jerin Jacob <[email protected]>