History log of /dpdk/drivers/meson.build (Results 1 – 25 of 83)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
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 ...


1234