|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2 |
|
| #
81c2337e |
| 14-Feb-2022 |
Bruce Richardson <[email protected]> |
build: make ring mempool driver mandatory
The default mempool driver is one based on the rte_ring, and as such it needs to be present to have just about any app (which doesn't override the mempool)
build: make ring mempool driver mandatory
The default mempool driver is one based on the rte_ring, and as such it needs to be present to have just about any app (which doesn't override the mempool) run. Given this state of affairs it is probably best to add this default mempool driver to the always-enabled list to ensure we get a runnable build in all cases. This means that, for example, to run some NIC tests with testpmd in a minimal build, in most cases, all the user should need to do is specify "-Denable_drivers=net/<nic_drv>" for the build.
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Morten Brørup <[email protected]>
show more ...
|
|
Revision tags: v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2 |
|
| #
8b8036a6 |
| 08-Nov-2021 |
Elena Agostini <[email protected]> |
gpudev: introduce GPU device class library
In heterogeneous computing system, processing is not only in the CPU. Some tasks can be delegated to devices working in parallel.
The new library gpudev i
gpudev: introduce GPU device class library
In heterogeneous computing system, processing is not only in the CPU. Some tasks can be delegated to devices working in parallel.
The new library gpudev is for dealing with GPGPU computing devices from a DPDK application running on the CPU.
The infrastructure is prepared to welcome drivers in drivers/gpu/.
Signed-off-by: Elena Agostini <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc1 |
|
| #
65bcddfc |
| 20-Oct-2021 |
Bruce Richardson <[email protected]> |
raw/ioat: build only if dmadev not present
Only build the rawdev IDXD/IOAT drivers if the dmadev drivers are not present.
This change requires the dependencies to be reordered in drivers/meson.buil
raw/ioat: build only if dmadev not present
Only build the rawdev IDXD/IOAT drivers if the dmadev drivers are not present.
This change requires the dependencies to be reordered in drivers/meson.build so that rawdev can use the "RTE_DMA_* build macros to check for the presence of the equivalent dmadev driver.
A note is also added to the documentation to inform users of this change.
Signed-off-by: Bruce Richardson <[email protected]> Signed-off-by: Kevin Laatz <[email protected]> Reviewed-by: Conor Walsh <[email protected]>
show more ...
|
| #
b36970f2 |
| 13-Oct-2021 |
Chengwen Feng <[email protected]> |
dmadev: introduce DMA device library
The 'dmadev' is a generic type of DMA device.
This patch introduce the 'dmadev' device allocation functions.
The infrastructure is prepared to welcome drivers
dmadev: introduce DMA device library
The 'dmadev' is a generic type of DMA device.
This patch introduce the 'dmadev' device allocation functions.
The infrastructure is prepared to welcome drivers in drivers/dma/
Signed-off-by: Chengwen Feng <[email protected]> Acked-by: Bruce Richardson <[email protected]> Acked-by: Morten Brørup <[email protected]> Acked-by: Jerin Jacob <[email protected]> Reviewed-by: Kevin Laatz <[email protected]> Reviewed-by: Conor Walsh <[email protected]>
show more ...
|
| #
0e837e58 |
| 18-Aug-2021 |
Bruce Richardson <[email protected]> |
build: fix essential drivers in disable list
The PCI and vdev bus drivers cannot be disabled for DPDK builds and special logic is put in place to not skip them when they are specified in the disable
build: fix essential drivers in disable list
The PCI and vdev bus drivers cannot be disabled for DPDK builds and special logic is put in place to not skip them when they are specified in the disable list. This logic is broken though, as the inclusion of the driver-specific meson.build file is only included in the "else" leg of the condition check. This means that when they are specified as disabled the PCI and vdev buses are not disabled, but neither are their source files compiled.
Fix this by moving the "subdir()" call into the next "if build" block, ensuring that if not disabled the sources are always included. To take account of the fact that the subdir call could itself disable the driver, we add a break call into the following loop to ensure we quickly fall through to the following block which stops processing appropriately if the driver is disabled.
Fixes: 2e33309ebe03 ("config: enable/disable drivers in Arm builds") Cc: [email protected]
Signed-off-by: Bruce Richardson <[email protected]> Tested-by: Radu Nicolau <[email protected]> Acked-by: Radu Nicolau <[email protected]>
show more ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3 |
|
| #
1539acc2 |
| 30-Jul-2021 |
Jerin Jacob <[email protected]> |
drivers: remove warning with Meson 0.59
Since meson 0.59.0 version, the extract_all_objects() API need to pass explicit boolean value.
To remove the following warning[1], added explicit `true` for
drivers: remove warning with Meson 0.59
Since meson 0.59.0 version, the extract_all_objects() API need to pass explicit boolean value.
To remove the following warning[1], added explicit `true` for extract_all_objects() use in codebase whever there is no argument.
[1] WARNING: extract_all_objects called without setting recursive keyword argument. Meson currently defaults to non-recursive to maintain backward compatibility but the default will be changed in the future.
Signed-off-by: Jerin Jacob <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
|
Revision tags: v21.08-rc2, v21.08-rc1, v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2 |
|
| #
eeded204 |
| 26-Apr-2021 |
David Marchand <[email protected]> |
log: register with standardized names
Let's try to enforce the convention where most drivers use a pmd. logtype with their class reflected in it, and libraries use a lib. logtype.
Introduce two new
log: register with standardized names
Let's try to enforce the convention where most drivers use a pmd. logtype with their class reflected in it, and libraries use a lib. logtype.
Introduce two new macros: - RTE_LOG_REGISTER_DEFAULT can be used when a single logtype is used in a component. It is associated to the default name provided by the build system, - RTE_LOG_REGISTER_SUFFIX can be used when multiple logtypes are used, and then the passed name is appended to the default name,
RTE_LOG_REGISTER is left untouched for existing external users and for components that do not comply with the convention.
There is a new Meson variable log_prefix to adapt the default name for baseband (pmd.bb.), bus (no pmd.) and mempool (no pmd.) classes.
Note: achieved with below commands + reverted change on net/bonding + edits on crypto/virtio, compress/mlx5, regex/mlx5
$ git grep -l RTE_LOG_REGISTER drivers/ | while read file; do pattern=${file##drivers/}; class=${pattern%%/*}; pattern=${pattern#$class/}; drv=${pattern%%/*}; case "$class" in baseband) pattern=pmd.bb.$drv;; bus) pattern=bus.$drv;; mempool) pattern=mempool.$drv;; *) pattern=pmd.$class.$drv;; esac sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern',/RTE_LOG_REGISTER_DEFAULT(\1,/' $file; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern'\.\(.*\),/RTE_LOG_REGISTER_SUFFIX(\1, \2,/' $file; done
$ git grep -l RTE_LOG_REGISTER lib/ | while read file; do pattern=${file##lib/}; pattern=lib.${pattern%%/*}; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern',/RTE_LOG_REGISTER_DEFAULT(\1,/' $file; sed -i -e 's/RTE_LOG_REGISTER(\(.*\), '$pattern'\.\(.*\),/RTE_LOG_REGISTER_SUFFIX(\1, \2,/' $file; done
Signed-off-by: David Marchand <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
| #
627c5b41 |
| 07-May-2021 |
David Marchand <[email protected]> |
build: fix default drivers list without Python
If no enable_drivers option is passed, the default is to build the drivers list by calling list-dir-globs.py.
But if no Python interpreter is installe
build: fix default drivers list without Python
If no enable_drivers option is passed, the default is to build the drivers list by calling list-dir-globs.py.
But if no Python interpreter is installed, no error is reported and all drivers end up being disabled.
Example on a minimal FreeBSD VM:
dpdk@freebsd:~/dpdk $ meson setup build ... drivers: common/cpt: not in enabled drivers build config common/dpaax: not in enabled drivers build config common/iavf: not in enabled drivers build config common/mvep: not in enabled drivers build config common/octeontx: not in enabled drivers build config common/octeontx2: not in enabled drivers build config bus/dpaa: not in enabled drivers build config bus/fslmc: not in enabled drivers build config ...
dpdk@freebsd:~/dpdk $ cd drivers/ dpdk@freebsd:~/dpdk/drivers $ ~/dpdk/buildtools/list-dir-globs.py */* env: python3: No such file or directory
Rely on meson internal interpreter. Check return code when calling this script.
Fixes: ab9407c3addd ("build: allow using wildcards to disable drivers") Fixes: 2e33309ebe03 ("config: enable/disable drivers in Arm builds") Cc: [email protected]
Signed-off-by: David Marchand <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
|
Revision tags: v21.05-rc1 |
|
| #
cf995efc |
| 20-Apr-2021 |
Bruce Richardson <[email protected]> |
drivers: clean up build lists
Ensure all lists of drivers are standardized: * one driver per line * lists double-indented with spaces (as they are line continuations) * elements in alphabetical orde
drivers: clean up build lists
Ensure all lists of drivers are standardized: * one driver per line * lists double-indented with spaces (as they are line continuations) * elements in alphabetical order * opening and closing list brackets "[" & "]" on own lines * last element has trailing comma
Any code snippets in the list files is adjusted to single-indent using whitespace to correspond to the new style also.
The lists of standard library dependencies per class, and other short lists are not formatted one-per-line as these lists are not expected to grow beyond 2 or 3 entries.
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
6f8a1a45 |
| 20-Apr-2021 |
Bruce Richardson <[email protected]> |
drivers: simplify main build file
As with the library meson.build file, we can use the "continue" keyword to reduce the level of indentation used for the majority of the build file. Since we are cha
drivers: simplify main build file
As with the library meson.build file, we can use the "continue" keyword to reduce the level of indentation used for the majority of the build file. Since we are changing the whitespace indentation level, we also update the body of the foreach loop to use the meson standard, 4-space indentation.
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
2e33309e |
| 14-Apr-2021 |
Juraj Linkeš <[email protected]> |
config: enable/disable drivers in Arm builds
Add support for enabling or disabling drivers for Arm cross build. Do not implement any enable/disable lists yet.
Enabling drivers is useful when buildi
config: enable/disable drivers in Arm builds
Add support for enabling or disabling drivers for Arm cross build. Do not implement any enable/disable lists yet.
Enabling drivers is useful when building for an SoC where we only want to build a few drivers. That way the list won't be too long.
Similarly, disabling drivers is useful when we want to disable only a few drivers.
Both of these are advantageous mainly in aarch64 -> aarch64 (or arch -> same arch) builds, where the build machine may have the required driver dependencies, yet we don't want to build drivers for a specific SoC.
If enable_drivers is a non-empty list, build only those drivers, otherwise build all drivers and add them to enable_drivers. If disable_drivers is non-empty list, build all drivers specified in enable_drivers except those in disable_drivers.
There are two drivers, bus/pci and bus/vdev, which break the build if not enabled. Address this by always enabling these if the user disables them or doesn't specify in their allowlist.
Also remove the old Makefile arm configuration options which don't do anything in Meson.
Signed-off-by: Juraj Linkeš <[email protected]> Reviewed-by: Honnappa Nagarahalli <[email protected]> Reviewed-by: Ruifeng Wang <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
| #
fa8f86a1 |
| 06-Apr-2021 |
Jerin Jacob <[email protected]> |
common/cnxk: add build infrastructre and HW definition
Add meson build infrastructure along with HW definition header file.
This patch also adds cross-compile configs for arm for CN9K series and CN
common/cnxk: add build infrastructre and HW definition
Add meson build infrastructure along with HW definition header file.
This patch also adds cross-compile configs for arm for CN9K series and CN10K series of Marvell SoC's.
Signed-off-by: Jerin Jacob <[email protected]> Signed-off-by: Nithin Dabilpuram <[email protected]> Signed-off-by: Sunil Kumar Kori <[email protected]> Signed-off-by: Pavan Nikhilesh <[email protected]> Signed-off-by: Satha Rao <[email protected]> Signed-off-by: Kiran Kumar K <[email protected]>
show more ...
|
| #
720dfda4 |
| 25-Feb-2021 |
Bruce Richardson <[email protected]> |
build: limit symbol checks to developer mode
The checking of symbols within each library and driver is only of interest to developers, so limit to developer mode only.
Signed-off-by: Bruce Richards
build: limit symbol checks to developer mode
The checking of symbols within each library and driver is only of interest to developers, so limit to developer mode only.
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
d317f7eb |
| 25-Feb-2021 |
Bruce Richardson <[email protected]> |
build: hide debug messages in non-developer mode
The messages about what components have what dependency names, and information about function versioning not being supported on windows are only of i
build: hide debug messages in non-developer mode
The messages about what components have what dependency names, and information about function versioning not being supported on windows are only of interest to developers, so hide them when building in non-developer mode.
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|
| #
7178fbdc |
| 16-Mar-2021 |
Vijay Kumar Srivastava <[email protected]> |
common/sfc_efx: move function to get family
Move function to get efx family from net driver into common driver.
Signed-off-by: Vijay Kumar Srivastava <[email protected]> Signed-off-by: Andrew Ryb
common/sfc_efx: move function to get family
Move function to get efx family from net driver into common driver.
Signed-off-by: Vijay Kumar Srivastava <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]>
show more ...
|
|
Revision tags: v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2, v21.02-rc1 |
|
| #
6b19edcb |
| 08-Jan-2021 |
Dmitry Kozlyuk <[email protected]> |
build: enable pmdinfogen for Windows
Remove platform restriction when building drivers.
Signed-off-by: Dmitry Kozlyuk <[email protected]> Tested-by: Jie Zhou <[email protected]>
|
| #
f0f93a7a |
| 24-Jan-2021 |
Dmitry Kozlyuk <[email protected]> |
buildtools: use Python pmdinfogen
Use the same interpreter to run pmdinfogen as for other build scripts. Adjust wrapper script accordingly and also don't suppress stderr from ar and pmdinfogen. Add
buildtools: use Python pmdinfogen
Use the same interpreter to run pmdinfogen as for other build scripts. Adjust wrapper script accordingly and also don't suppress stderr from ar and pmdinfogen. Add configure-time check for elftools Python module for Unix hosts.
Add pyelftools to CI configuration and build requirements for Linux and FreeBSD. Windows targets are not currently using pmdinfogen.
Suppress ABI warnings about generated PMD information strings.
Signed-off-by: Dmitry Kozlyuk <[email protected]> Acked-by: Neil Horman <[email protected]> Tested-by: Jie Zhou <[email protected]>
show more ...
|
| #
762bfccc |
| 09-Dec-2020 |
Bruce Richardson <[email protected]> |
config: remove compatibility build defines
As announced in the deprecation note, remove all compatibility build defines from previous make/meson versions and use only the standardized ones - RTE_LIB
config: remove compatibility build defines
As announced in the deprecation note, remove all compatibility build defines from previous make/meson versions and use only the standardized ones - RTE_LIB_<name> for libraries, and RTE_<CLASS>_<NAME> for drivers.
Signed-off-by: Bruce Richardson <[email protected]> Signed-off-by: Thomas Monjalon <[email protected]>
show more ...
|
|
Revision tags: v20.11, v20.11-rc5, v20.11-rc4 |
|
| #
135155a8 |
| 06-Nov-2020 |
Thomas Monjalon <[email protected]> |
build: align wording of non-support reasons
Reasons for building not supported generally start with lowercase because printed as the second part of a line.
Other changes: - "linux" should be "Linu
build: align wording of non-support reasons
Reasons for building not supported generally start with lowercase because printed as the second part of a line.
Other changes: - "linux" should be "Linux" with a capital letter. - ARCH_X86_64 may be simply x86_64. - aarch64 is preferred over arm64.
Signed-off-by: Thomas Monjalon <[email protected]> Acked-by: David Marchand <[email protected]>
show more ...
|
|
Revision tags: v20.11-rc3, v20.11-rc2 |
|
| #
52a7cb0a |
| 31-Oct-2020 |
Nick Connolly <[email protected]> |
build: fix MS linker flag with meson 0.54
Meson versions >= 0.54.0 include support for handling /implib with msvc link. Specifying it explicitly causes failures when linking against the dll. Tested
build: fix MS linker flag with meson 0.54
Meson versions >= 0.54.0 include support for handling /implib with msvc link. Specifying it explicitly causes failures when linking against the dll. Tested using Link 14.27.29112.0 and Clang 11.0.0.
There were a number of changes to the way that import libraries are handled between 0.47.1 and 0.54.0. Only make the change for >= 0.54.0, leaving the behaviour unchanged for earlier versions.
Fixes: 77cca7ccec13 ("build: fix drivers library path on Windows") Cc: [email protected]
Signed-off-by: Nick Connolly <[email protected]> Tested-by: Ranjit Menon <[email protected]> Acked-by: Ranjit Menon <[email protected]> Acked-by: Khoa To <[email protected]>
show more ...
|
| #
30105f66 |
| 22-Oct-2020 |
David Marchand <[email protected]> |
drivers: add headers install helper
A lot of drivers export headers, reproduce the same facility than for libraries.
Note: this change fixes an issue with the crypto scheduler headers which were no
drivers: add headers install helper
A lot of drivers export headers, reproduce the same facility than for libraries.
Note: this change fixes an issue with the crypto scheduler headers which were not installed properly. A separate backport will be sent to stable branches.
Suggested-by: Bruce Richardson <[email protected]> Signed-off-by: David Marchand <[email protected]> Acked-by: Bruce Richardson <[email protected]>
show more ...
|
|
Revision tags: v20.11-rc1 |
|
| #
a20b2c01 |
| 15-Oct-2020 |
Bruce Richardson <[email protected]> |
build: standardize component names and defines
As discussed on the dpdk-dev mailing list[1], we can make some easy improvements in standardizing the naming of the various components in DPDK, and the
build: standardize component names and defines
As discussed on the dpdk-dev mailing list[1], we can make some easy improvements in standardizing the naming of the various components in DPDK, and their associated feature-enabled macros.
Following this patch, each library will have the name in format, 'librte_<name>.so', and the macro indicating that library is enabled in the build will have the form 'RTE_LIB_<NAME>'.
Similarly, for libraries, the equivalent name formats and macros are: 'librte_<class>_<name>.so' and 'RTE_<CLASS>_<NAME>', where class is the device type taken from the relevant driver subdirectory name, i.e. 'net', 'crypto' etc.
To avoid too many changes at once for end applications, the old macro names will still be provided in the build in this release, but will be removed subsequently.
[1] http://inbox.dpdk.org/dev/[email protected]/t/#u
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Rosen Xu <[email protected]>
show more ...
|
| #
63b39078 |
| 15-Oct-2020 |
Bruce Richardson <[email protected]> |
build: remove library name from version map file name
Since each version map file is contained in the subdirectory of the library it refers to, there is no need to include the library name in the fi
build: remove library name from version map file name
Since each version map file is contained in the subdirectory of the library it refers to, there is no need to include the library name in the filename. This makes things simpler in case of library renaming.
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]> Acked-by: Andrew Rybchenko <[email protected]> Acked-by: Rosen Xu <[email protected]>
show more ...
|
| #
2ca75c65 |
| 15-Oct-2020 |
Bruce Richardson <[email protected]> |
common/qat: build drivers from common folder
Since the drivers in the common directory can be processed out of order, in this case following the "bus" directory, we can simplify somewhat the build o
common/qat: build drivers from common folder
Since the drivers in the common directory can be processed out of order, in this case following the "bus" directory, we can simplify somewhat the build of the QAT driver to be done entirely from the "common/qat" folder rather than having it's build distributed across 3 folders.
This also opens up the possibility of building the QAT driver with crypto only and the compression part disabled. It further allows more sensible naming of the resulting shared library in case of standardizing library names based on device class; i.e. common_qat is more descriptive for a combined crypto/compression driver than either of the other two prefixes individually.
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]>
show more ...
|
| #
b0b672ae |
| 15-Oct-2020 |
Bruce Richardson <[email protected]> |
build: add defines for compatibility with make build
The defines used to indicate what crypto, compression and eventdev drivers were being built were different to those used in the make build, with
build: add defines for compatibility with make build
The defines used to indicate what crypto, compression and eventdev drivers were being built were different to those used in the make build, with meson defining them with "_PMD" at the end, while make defined them with "_PMD" in the middle and the specific driver name at the end. This might cause compatibility issues for applications which used the older defines, which switching to build against new DPDK releases.
As well as changing the default to match that of make, meson also special-cases the crypto/compression/event drivers to have both defines provided. This ensures compatibility for these macros with both meson and make from older versions.
For a selection of other libraries and drivers, there were other incompatibilities between the meson and make-defined macros which were not previously highlighted in a deprecation notice, so we add per-macro compatibility defines for these to ease the transition from make to meson.
Fixes: 5b9656b157d3 ("lib: build with meson") Fixes: 9314afb68a53 ("drivers: add infrastructure for meson build") Fixes: dcadbbde8e61 ("crypto/null: build with meson") Fixes: 3c32e89f68e1 ("compress/isal: add skeleton ISA-L compression PMD") Fixes: eca504f318db ("drivers/event: build skeleton and SW drivers with meson")
Cc: [email protected]
Signed-off-by: Bruce Richardson <[email protected]> Acked-by: Luca Boccassi <[email protected]>
show more ...
|