| #
c1d14583 |
| 24-Jan-2025 |
Bruce Richardson <bruce.richardson@intel.com> |
net/intel: move Intel drivers to a subdirectory
Consolidate all Intel HW NIC drivers into a drivers/net/intel directory. This matches the layout used for drivers in the kernel, and potentially enabl
net/intel: move Intel drivers to a subdirectory
Consolidate all Intel HW NIC drivers into a drivers/net/intel directory. This matches the layout used for drivers in the kernel, and potentially enables easier sharing among drivers.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Praveen Shetty <praveen.shetty@intel.com>
show more ...
|
|
Revision tags: v24.11, v24.11-rc4, v24.11-rc3, v24.11-rc2 |
|
| #
6f987b59 |
| 28-Oct-2024 |
Sivaprasad Tummala <sivaprasad.tummala@amd.com> |
power: refactor core power management
This patch introduces a comprehensive refactor to the core power management library. The primary focus is on improving modularity and organization by relocating
power: refactor core power management
This patch introduces a comprehensive refactor to the core power management library. The primary focus is on improving modularity and organization by relocating specific driver implementations from the 'lib/power' directory to dedicated directories within 'drivers/power/*'. The adjustment of meson.build files enables the selective activation of individual drivers.
These changes contribute to a significant enhancement in code organization, providing a clearer structure for driver implementations. The refactor aims to improve overall code clarity and boost maintainability. Additionally, it establishes a foundation for future development, allowing for more focused work on individual drivers and seamless integration of forthcoming enhancements.
Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com> Acked-by: Huisong Li <lihuisong@huawei.com>
show more ...
|
| #
63c9142b |
| 25-Oct-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
build: limit packed member warning disabling to drivers
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 h
build: limit packed member warning disabling to drivers
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 <bruce.richardson@intel.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
|
Revision tags: v24.11-rc1, v24.07, v24.07-rc4, v24.07-rc3, v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2, v24.03-rc1, v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2 |
|
| #
90cb8ff8 |
| 23-Oct-2023 |
David Marchand <david.marchand@redhat.com> |
buildtools/chkincs: check driver specific headers
Only driver headers exported by libraries were checked. Add driver specific headers to the checked headers list.
This reveals a small issue with th
buildtools/chkincs: check driver specific headers
Only driver headers exported by libraries were checked. Add driver specific headers to the checked headers list.
This reveals a small issue with the vmbus driver header as some driver headers rely on it.
Fixes: b232b2aa212b ("buildtools/chkincs: check SDK headers for C++ compatibility") Fixes: 84aaf06d817c ("bus/vmbus: make driver-only headers private")
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
| #
b0d0c84b |
| 20-Sep-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
build: replace deprecated function for cross compilation
The meson function "get_cross_property" is deprecated in meson 0.58 and should be replaced by "get_external_property".
Signed-off-by: Bruce
build: replace deprecated function for cross compilation
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 <bruce.richardson@intel.com> Reviewed-by: Robin Jarry <rjarry@redhat.com> Tested-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
| #
3019b11f |
| 20-Sep-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
build: remove unnecessary version checks
Since minimum meson version is now 0.57 we can remove all version checks for versions lower than that.
Signed-off-by: Bruce Richardson <bruce.richardson@int
build: remove unnecessary version checks
Since minimum meson version is now 0.57 we can remove all version checks for versions lower than that.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Robin Jarry <rjarry@redhat.com> Tested-by: Ferruh Yigit <ferruh.yigit@amd.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
| #
024a8abb |
| 02-Mar-2024 |
Nagadheeraj Rottela <rnagadheeraj@marvell.com> |
crypto/nitrox: move common code
A new compressdev Nitrox PMD will be added in next few patches. This patch moves some of the common code which is shared across Nitrox crypto and compress drivers to
crypto/nitrox: move common code
A new compressdev Nitrox PMD will be added in next few patches. This patch moves some of the common code which is shared across Nitrox crypto and compress drivers to drivers/common/nitrox folder.
Signed-off-by: Nagadheeraj Rottela <rnagadheeraj@marvell.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
| #
a206a015 |
| 31-Jan-2024 |
David Marchand <david.marchand@redhat.com> |
build: fix reasons conflict
The "_disable_reason" variables are subject to naming conflicts.
This has been caught while looking at mingw builds where the graph application was skipped with an <unkn
build: fix reasons conflict
The "_disable_reason" variables are subject to naming conflicts.
This has been caught while looking at mingw builds where the graph application was skipped with an <unknown_reason> (which is caused by a missing reason variable set in app/graph/meson.build) and the graph library was skipped with the same <unknown_reason> too, even though this library meson does set a proper reason variable.
Example in GHA:
================= Content Skipped =================
apps: dumpcap: not supported on Windows graph: <unknown reason> pdump: not supported on Windows ...
libs: acl: not supported on Windows bbdev: not supported on Windows ... graph: <unknown reason> node: not supported on Windows
Prefix all those variables with the type of component.
Fixes: ecf75180171b ("build: list selected applications") Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
| #
29cb31c9 |
| 27-Oct-2023 |
Chaoyong He <chaoyong.he@corigine.com> |
common/nfp: introduce driver
A new NFP vdpa PMD will be added to support vdpa operations by NFP adapters.
This vdpa PMD share some logic with the net/nfp PMD. So create a new common library in driv
common/nfp: introduce driver
A new NFP vdpa PMD will be added to support vdpa operations by NFP adapters.
This vdpa PMD share some logic with the net/nfp PMD. So create a new common library in drivers/common for NFP PMDs.
We import a 'nfp_class_driver' layer and which can support various device type in addition to the Ethernet device.
The shared logic will move into this common library in the following commits.
Signed-off-by: Chaoyong He <chaoyong.he@corigine.com> Signed-off-by: Shujing Dong <shujing.dong@corigine.com> Reviewed-by: Long Wu <long.wu@corigine.com> Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
show more ...
|
|
Revision tags: v23.11-rc1 |
|
| #
aaee22f1 |
| 01-Sep-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
build: raise error if requested driver is unbuildable
When the user passes a list of desired drivers to build via the "enable_drivers" option, the expectation is that those drivers should be part of
build: raise error if requested driver is unbuildable
When the user passes a list of desired drivers to build via the "enable_drivers" option, the expectation is that those drivers should be part of the build. However, if those drivers have either external or internal dependencies, they still may be silently disabled, for example: running "meson setup -Denable_drivers=net/iavf build" will successfully run, but the iavf net driver will not be configured as "common/iavf" is missing.
We can fix this by setting a flag to indicate when the drivers are specified via an enable_drivers flag. However, unlike when erroring out on missing libs, we don't error out if a driver in unbuildable, unless the driver name explicitly appears in the "enable_drivers" list. This is implemented this way to ensure that wildcarding still works. For example: we still want to allow "meson setup -Denable_drivers=net/*" to work, configuring only the buildable network drivers. While it's true that this additional restriction may cause some builds to pass when they should fail, e.g. if the wildcard refers only to a single driver, implementing things this way avoids massive amounts of complexity, and is still an improvement on the status-quo.
Suggested-by: Anatoly Burakov <anatoly.burakov@intel.com> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: David Marchand <david.marchand@redhat.com>
show more ...
|
| #
f15114c6 |
| 16-Aug-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
build: limit what is built for MSVC
Build only kvargs and telemetry when is_ms_compiler.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Bruce Richardson <bruce.richardson@in
build: limit what is built for MSVC
Build only kvargs and telemetry when is_ms_compiler.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
|
Revision tags: v23.07, v23.07-rc4, v23.07-rc3 |
|
| #
70b6941e |
| 28-Jun-2023 |
David Marchand <david.marchand@redhat.com> |
build: check drivers class dependencies early
Drivers implementing a class of devices (for example, drivers/event) depend on the associated abstraction library (lib/eventdev). This dependency is exp
build: check drivers class dependencies early
Drivers implementing a class of devices (for example, drivers/event) depend on the associated abstraction library (lib/eventdev). This dependency is expressed in the top level meson.build for this class (drivers/event/meson.build).
As we are making more libraries optional, custom constructs referencing the class dependencies in some drivers meson.build (event/dlb2) may break.
It would be possible to add more checks in those drivers meson.build but it is more straightforward to not even consider a driver meson.build when the class dependencies are not met.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
|
Revision tags: v23.07-rc2, v23.07-rc1 |
|
| #
70cc4e1f |
| 04-Apr-2023 |
David Marchand <david.marchand@redhat.com> |
enable lock check
Now that a lot of components can be compiled with the lock checks, invert the logic and opt out for components not ready yet: - drivers/bus/dpaa, - drivers/common/cnxk, - drivers/c
enable lock check
Now that a lot of components can be compiled with the lock checks, invert the logic and opt out for components not ready yet: - drivers/bus/dpaa, - drivers/common/cnxk, - drivers/common/mlx5, - drivers/event/cnxk, - drivers/net/bnx2x, - drivers/net/bnxt, - drivers/net/cnxk, - drivers/net/enic, - drivers/net/hns3, - drivers/net/mlx5, - lib/ipsec, - lib/timer,
The FreeBSD pthread API has been annotated but Linux glibc does not have those annotations. Disable lock checks for FreeBSD where pthread_mutex_* are used: - drivers/net/failsafe, - drivers/net/hinic, - lib/eal, - lib/ethdev,
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com> Acked-by: Sachin Saxena <sachin.saxena@oss.nxp.com>
show more ...
|
|
Revision tags: v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2 |
|
| #
d5d9e8fe |
| 06-Mar-2023 |
Thomas Monjalon <thomas@monjalon.net> |
build: clarify configuration without IOVA field in mbuf
The impact of the option "enable_iova_as_pa" is explained for users.
Also the code flag "RTE_IOVA_AS_PA" is renamed as "RTE_IOVA_IN_MBUF" in
build: clarify configuration without IOVA field in mbuf
The impact of the option "enable_iova_as_pa" is explained for users.
Also the code flag "RTE_IOVA_AS_PA" is renamed as "RTE_IOVA_IN_MBUF" in order to be more accurate (IOVA mode is decided at runtime), and more readable in the code.
Similarly the drivers are using the variable "require_iova_in_mbuf" instead of "pmd_supports_disable_iova_as_pa" with an opposite meaning. By default, it is assumed that drivers require the IOVA field in mbuf. The drivers which support removing this field have to declare themselves. Some bus drivers are declared compatible.
If the option "enable_iova_as_pa" is disabled, the unsupported drivers will be listed with the new reason text "requires IOVA in mbuf".
Suggested-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Reviewed-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
show more ...
|
|
Revision tags: v23.03-rc1 |
|
| #
fe83ffd9 |
| 07-Feb-2023 |
Srikanth Yalavarthi <syalavarthi@marvell.com> |
ml/cnxk: add skeleton
Added initial source files and build files for ML cnxk driver.
Signed-off-by: Srikanth Yalavarthi <syalavarthi@marvell.com> Acked-by: Prince Takkar <ptakkar@marvell.com>
|
| #
bb9d6b23 |
| 13-Feb-2023 |
David Marchand <david.marchand@redhat.com> |
disable lock annotation with clang 3.4.2
Venerable RHEL7 clang 3.4.2 has (at least) two issues with lock annotations.
A first one with regards to the attribute position: lib/vhost/vhost.h:518:2: er
disable lock annotation with clang 3.4.2
Venerable RHEL7 clang 3.4.2 has (at least) two issues with lock annotations.
A first one with regards to the attribute position: lib/vhost/vhost.h:518:2: error: GCC does not allow assert_exclusive_lock attribute in this position on a function definition [-Werror,-Wgcc-compat] __rte_assert_exclusive_lock(&vq->access_lock) ^ lib/eal/include/rte_lock_annotations.h:29:38: note: expanded from macro '__rte_assert_exclusive_lock' __attribute__((assert_exclusive_lock(__VA_ARGS__))) ^
This can be worked around by splitting and having the allocation on the function declaration.
But on the other hand, clang 3.4.2 does not seem to propagate those annotations in presence of a __builtin_expect (i.e. unlikely()), like for example when calling if (unlikely(rte_spinlock_trylock() == 0)).
Those annotations were only working with clang in any case, so restrict to clang versions newer than 3.5.0.
Fixes: 657a98f38940 ("eal: annotate spinlock, rwlock and seqlock")
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Tested-by: Raslan Darawsheh <rasland@nvidia.com>
show more ...
|
| #
657a98f3 |
| 07-Feb-2023 |
David Marchand <david.marchand@redhat.com> |
eal: annotate spinlock, rwlock and seqlock
clang offers some thread safety checks, statically verifying that locks are taken and released in the code. To use those checks, the full code leading to t
eal: annotate spinlock, rwlock and seqlock
clang offers some thread safety checks, statically verifying that locks are taken and released in the code. To use those checks, the full code leading to taking or releasing locks must be annotated with some attributes.
Wrap those attributes into our own set of macros.
rwlock, seqlock and the "normal" spinlock are instrumented.
Those checks might be of interest out of DPDK, but it requires that the including application locks are annotated. On the other hand, applications out there might have been using those same checks. To be on the safe side, keep this instrumentation under a RTE_ANNOTATE_LOCKS internal build flag.
A component may en/disable this check by setting annotate_locks = true/false in its meson.build.
Note: Doxygen preprocessor does not understand trailing function attributes (this can be observed with the rte_seqlock.h header). One would think that expanding the annotation macros to a noop in rte_lock_annotations.h would be enough (since RTE_ANNOTATE_LOCKS is not set during doxygen processing)). Unfortunately, the use of EXPAND_ONLY_PREDEF defeats this.
Removing EXPAND_ONLY_PREDEF entirely is not an option as it would expand all other DPDK macros.
The chosen solution is to expand the annotation macros explicitly to a noop in PREDEFINED.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Acked-by: Chenbo Xia <chenbo.xia@intel.com>
show more ...
|
| #
6c8aed5a |
| 01-Dec-2022 |
David Marchand <david.marchand@redhat.com> |
build: generate Windows build artefacts when needed
We have been generating some Windows and mingw artefacts on all OS while there is no need for them.
Signed-off-by: David Marchand <david.marchand
build: generate Windows build artefacts when needed
We have been generating some Windows and mingw artefacts on all OS while there is no need for them.
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
| #
bfc43a0f |
| 29-Nov-2022 |
David Marchand <david.marchand@redhat.com> |
drivers: fix symbol exports when map is omitted
ld exports any global symbol by default if no version script is passed. As a consequence, the incriminated change let any public symbol leak out of th
drivers: fix symbol exports when map is omitted
ld exports any global symbol by default if no version script is passed. As a consequence, the incriminated change let any public symbol leak out of the driver shared libraries.
Hide again those symbols by providing a default map file which unexports any global symbol using a local: * catch-all statement.
The checks are skipped for this default map file as it is intentionnally an empty map (see commit b67bdda86cd4 ("devtools: catch empty symbol maps")) and there is nothing else to check in this map.
This change impacts the exported symbols, hence, bump the version in the ABI check to the v22.11.1 from the 22.11 LTS branch.
Fixes: 7dde9c844a37 ("drivers: omit symbol map when unneeded") Cc: stable@dpdk.org
Reported-by: Luca Boccassi <luca.boccassi@microsoft.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Tested-by: Ferruh Yigit <ferruh.yigit@amd.com> Reviewed-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Aaron Conole <aconole@redhat.com>
show more ...
|
|
Revision tags: v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2 |
|
| #
7dde9c84 |
| 12-Oct-2022 |
Abdullah Ömer Yamaç <omer.yamac@ceng.metu.edu.tr> |
drivers: omit symbol map when unneeded
In this patch, we removed the necessity of the version files and you don't need to update these files for each release, you can just remove them.
Suggested-by
drivers: omit symbol map when unneeded
In this patch, we removed the necessity of the version files and you don't need to update these files for each release, you can just remove them.
Suggested-by: Ferruh Yigit <ferruh.yigit@amd.com> Signed-off-by: Abdullah Ömer Yamaç <omer.yamac@ceng.metu.edu.tr> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Tested-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
| #
45d7cf91 |
| 14-Oct-2022 |
Markus Theil <markus.theil@tu-ilmenau.de> |
build: export include directories list
In order to perform things like LTO more easily in our DPDK applications, we use DPDK as a meson subproject. Export include directories list in order to be usa
build: export include directories list
In order to perform things like LTO more easily in our DPDK applications, we use DPDK as a meson subproject. Export include directories list in order to be usable in this context.
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
|
Revision tags: v22.11-rc1 |
|
| #
dfd5b25b |
| 10-Oct-2022 |
Bruce Richardson <bruce.richardson@intel.com> |
build: introduce deprecated libraries
Add support for a list of deprecated libs to the lib/meson.build file. This will be used to mark libraries that are planned to be removed from DPDK. The first u
build: introduce deprecated libraries
Add support for a list of deprecated libs to the lib/meson.build file. This will be used to mark libraries that are planned to be removed from DPDK. The first user of this will be KNI in a next patch.
Deprecated libraries should still be tested in the CI, so update our build testing and CI scripts.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
| #
a986c2b7 |
| 07-Oct-2022 |
Shijith Thotton <sthotton@marvell.com> |
build: add option to configure IOVA mode as PA
IOVA mode in DPDK is either PA or VA. The new build option enable_iova_as_pa configures the mode to PA at compile time. By default, this option is enab
build: add option to configure IOVA mode as PA
IOVA mode in DPDK is either PA or VA. The new build option enable_iova_as_pa configures the mode to PA at compile time. By default, this option is enabled. If the option is disabled, only drivers which support it are enabled. Supported driver can set the flag pmd_supports_disable_iova_as_pa in its build file.
mbuf structure holds the physical (PA) and virtual address (VA). If IOVA as PA is disabled at compile time, PA field (buf_iova) of mbuf is redundant as it is the same as VA and is replaced by a dummy field.
Signed-off-by: Shijith Thotton <sthotton@marvell.com> Acked-by: Olivier Matz <olivier.matz@6wind.com>
show more ...
|
| #
ada73389 |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
build: export drivers headers
Same as for device classes, external DPDK users may need to include some bus headers for their out of tree drivers.
Signed-off-by: David Marchand <david.marchand@redha
build: export drivers headers
Same as for device classes, external DPDK users may need to include some bus headers for their out of tree drivers.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
| #
3e88909d |
| 29-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
test: load drivers using build directory
Since commit 49b536fc3060 ("eal: load only shared libs from driver ..."), we can specify a build directory to the -d option.
Suggested-by: Bruce Richardson
test: load drivers using build directory
Since commit 49b536fc3060 ("eal: load only shared libs from driver ..."), we can specify a build directory to the -d option.
Suggested-by: Bruce Richardson <bruce.richardson@intel.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|