#
c6552d9a |
| 04-Mar-2024 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
lib: move alignment attribute on types for MSVC
The current location used for __rte_aligned(a) for alignment of types is not compatible with MSVC. There is only a single location accepted by both to
lib: move alignment attribute on types for MSVC
The current location used for __rte_aligned(a) for alignment of types is not compatible with MSVC. There is only a single location accepted by both toolchains.
The standard offers no alignment facility that compatibly interoperates with C and C++ but it may be achieved by relocating the placement of __rte_aligned(a) to the aforementioned location accepted by all currently supported toolchains.
To allow alignment for both compilers, do the following:
* Expand __rte_aligned(a) to __declspec(align(a)) when building with MSVC.
* Move __rte_aligned from the end of {struct,union} definitions to be between {struct,union} and tag.
The placement between {struct,union} and the tag allows the desired alignment to be imparted on the type regardless of the toolchain being used for all of GCC, LLVM, MSVC compilers building both C and C++.
Note: this move has an additional benefit as Doxygen is not confused anymore like for the rte_event_vector struct definition.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
e9fd1ebf |
| 04-Mar-2024 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
lib: use C11 alignment attribute on variables
The current location used for __rte_aligned(a) for alignment of variables is not compatible with MSVC.
For variables, standard C11 offers alignas(a) su
lib: use C11 alignment attribute on variables
The current location used for __rte_aligned(a) for alignment of variables is not compatible with MSVC.
For variables, standard C11 offers alignas(a) supported by conformant compilers i.e. both MSVC and GCC.
Replace use of __rte_aligned(a) on variables/fields with alignas(a).
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
0f1dc8cb |
| 29-Feb-2024 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
lib: use log helper with prefix
Use RTE_LOG_LINE_PREFIX instead of RTE_LOG_LINE in macro expansions which allows a prefix and arguments to be inserted into the log line without the need to use the #
lib: use log helper with prefix
Use RTE_LOG_LINE_PREFIX instead of RTE_LOG_LINE in macro expansions which allows a prefix and arguments to be inserted into the log line without the need to use the ## args variadic argument pack extension.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com>
show more ...
|
#
97433132 |
| 17-Nov-2023 |
David Marchand <david.marchand@redhat.com> |
lib: use per line logging in helpers
Use RTE_LOG_LINE in existing macros that append a \n. This will help catching unwanted newline character or multilines in log messages.
Signed-off-by: David Mar
lib: use per line logging in helpers
Use RTE_LOG_LINE in existing macros that append a \n. This will help catching unwanted newline character or multilines in log messages.
Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
#
ae282b06 |
| 17-Nov-2023 |
David Marchand <david.marchand@redhat.com> |
lib: remove redundant newline from logs
Fix places where two newline characters may be logged.
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Stephen Hemmi
lib: remove redundant newline from logs
Fix places where two newline characters may be logged.
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
show more ...
|
#
253de9a8 |
| 26-Oct-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
eventdev: use stdatomic API
Replace the use of gcc builtin __atomic_xxx intrinsics with corresponding rte_atomic_xxx optional stdatomic API
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.c
eventdev: use stdatomic API
Replace the use of gcc builtin __atomic_xxx intrinsics with corresponding rte_atomic_xxx optional stdatomic API
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
53b97347 |
| 12-Apr-2023 |
Erik Gabriel Carrillo <erik.g.carrillo@intel.com> |
eventdev/timer: fix buffer flush
The SW event timer adapter attempts to flush its event buffer on every adapter tick. If events remain in the buffer after the attempt, another attempt to flush won't
eventdev/timer: fix buffer flush
The SW event timer adapter attempts to flush its event buffer on every adapter tick. If events remain in the buffer after the attempt, another attempt to flush won't occur until the next adapter tick, which delays the enqueue of those events to the event device unnecessarily.
Move the buffer flush call so that it happens with every invocation of the service function, rather than on every adapter tick, to avoid the delay.
Fixes: cc7b73ea9e3b ("eventdev: add new software timer adapter") Cc: stable@dpdk.org
Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
show more ...
|
#
13aba5f8 |
| 09-Feb-2023 |
Erik Gabriel Carrillo <erik.g.carrillo@intel.com> |
eventdev/timer: fix overflow
The software timer adapter converts event timer timeout ticks to a number of TSC cycles at which an rte_timer should expire. The computation uses an integer multiplicati
eventdev/timer: fix overflow
The software timer adapter converts event timer timeout ticks to a number of TSC cycles at which an rte_timer should expire. The computation uses an integer multiplication that can result in overflow.
If necessary, reduce the timeout_nsecs value by the number of whole seconds it contains to keep the value of the multiplier within a range that will not result in overflow. Add the saved value back later to get the final result. Also, move the logic that checks the timeout range into the function that performs the above computation.
Fixes: 6750b21bd6af ("eventdev: add default software timer adapter") Cc: stable@dpdk.org
Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
show more ...
|
#
7f2d9df6 |
| 02-Feb-2023 |
Amit Prakash Shukla <amitprakashs@marvell.com> |
eventdev: add trace points
Add trace points for eventdev functions.
Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com> Acked-by: Shijith Thotton <sthotton@marvell.com>
|
#
af0785a2 |
| 12-Jan-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
rename telemetry u64 functions to uint versions
Within the DPDK code-base, replace all occurrences of "rte_tel_data_add_array_u64" with "rte_tel_data_add_array_uint", and similarly replace all occur
rename telemetry u64 functions to uint versions
Within the DPDK code-base, replace all occurrences of "rte_tel_data_add_array_u64" with "rte_tel_data_add_array_uint", and similarly replace all occurrences of "rte_tel_data_add_dict_u64" with "rte_tel_data_add_dict_uint". This allows us to later mark the older functions as deprecated without hitting warnings.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Ciara Power <ciara.power@intel.com>
show more ...
|
#
0727ff34 |
| 13-Jan-2023 |
Erik Gabriel Carrillo <erik.g.carrillo@intel.com> |
eventdev/timer: get remaining ticks
Introduce an event timer adapter API which allows users to determine how many adapter ticks remain until an event timer expires.
Signed-off-by: Erik Gabriel Carr
eventdev/timer: get remaining ticks
Introduce an event timer adapter API which allows users to determine how many adapter ticks remain until an event timer expires.
Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
850ae162 |
| 12-Jan-2023 |
Naga Harish K S V <s.v.naga.harish.k@intel.com> |
eventdev/timer: update reconfigure logic
When rte_event_timer_adapter_create() is used for creating adapter instance, eventdev is reconfigured with additional ``rte_event_dev_config::nb_event_ports`
eventdev/timer: update reconfigure logic
When rte_event_timer_adapter_create() is used for creating adapter instance, eventdev is reconfigured with additional ``rte_event_dev_config::nb_event_ports`` parameter.
This eventdev reconfig logic is enhanced to increment the ``rte_event_dev_config::nb_single_link_event_port_queues`` parameter if the adapter event port config is of type ``RTE_EVENT_PORT_CFG_SINGLE_LINK``.
With this change the application is no longer need to configure the eventdev with ``rte_event_dev_config::nb_single_link_event_port_queues`` parameter required for timer adapter when the adapter is created using above mentioned API.
Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com> Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
show more ...
|
#
ed88c5a5 |
| 10-Oct-2022 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
eventdev/timer: support appropriately report idle
Update the Event Timer Adapter's service function to report as idle (i.e., return -EAGAIN) in case no timer events were enqueued to the event device
eventdev/timer: support appropriately report idle
Update the Event Timer Adapter's service function to report as idle (i.e., return -EAGAIN) in case no timer events were enqueued to the event device.
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
show more ...
|
#
3d9d8adf |
| 14-Sep-2022 |
Naga Harish K S V <s.v.naga.harish.k@intel.com> |
eventdev/timer: support periodic event timer
Add support to configure and use periodic event timers in software timer adapter.
The structure ``rte_event_timer_adapter_stats`` is extended by adding
eventdev/timer: support periodic event timer
Add support to configure and use periodic event timers in software timer adapter.
The structure ``rte_event_timer_adapter_stats`` is extended by adding a new field, ``evtim_drop_count``. This stat represents the number of times an event_timer expiry event is dropped by the event timer adapter.
Updated the software eventdev pmd timer_adapter_caps_get callback function to report the support of periodic event timer capability.
Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com> Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
show more ...
|
#
72b452c5 |
| 27-Aug-2022 |
Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> |
eal: remove unneeded includes from a public header
Do not include <ctype.h>, <errno.h>, and <stdlib.h> from <rte_common.h>, because they are not used by this file. Include the needed headers directl
eal: remove unneeded includes from a public header
Do not include <ctype.h>, <errno.h>, and <stdlib.h> from <rte_common.h>, because they are not used by this file. Include the needed headers directly from the files that need them.
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
791dfec2 |
| 26-Apr-2022 |
Ankur Dwivedi <adwivedi@marvell.com> |
eventdev/timer: add telemetry
Adds telemetry support to get timer adapter info and timer adapter statistics.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Reviewed-by: Jerin Jacob <jerinj@mar
eventdev/timer: add telemetry
Adds telemetry support to get timer adapter info and timer adapter statistics.
Signed-off-by: Ankur Dwivedi <adwivedi@marvell.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
30a1de10 |
| 15-Feb-2022 |
Sean Morrissey <sean.morrissey@intel.com> |
lib: remove unneeded header includes
These header includes have been flagged by the iwyu_tool and removed.
Signed-off-by: Sean Morrissey <sean.morrissey@intel.com>
|
#
4a6672c2 |
| 12-Nov-2021 |
Stephen Hemminger <stephen@networkplumber.org> |
fix spelling in comments and doxygen
Fix spelling errors in comments including doxygen found using codespell.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Konstantin Anan
fix spelling in comments and doxygen
Fix spelling errors in comments including doxygen found using codespell.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Acked-by: Vladimir Medvedkin <vladimir.medvedkin@intel.com> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com> Acked-by: Ray Kinsella <mdr@ashroe.eu> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com> Acked-by: Chenbo Xia <chenbo.xia@intel.com>
show more ...
|
#
578402f2 |
| 01-Nov-2021 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
eventdev: support device maintenance in adapters
Introduce support for event devices requiring calls to rte_event_maintain() in the Ethernet RX, Timer and Crypto Eventdev adapters.
Signed-off-by: M
eventdev: support device maintenance in adapters
Introduce support for event devices requiring calls to rte_event_maintain() in the Ethernet RX, Timer and Crypto Eventdev adapters.
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Tested-by: Richard Eklycke <richard.eklycke@ericsson.com>
show more ...
|
#
f26f2ca6 |
| 18-Oct-2021 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: make trace API internal
Slowpath trace APIs are only used in rte_eventdev.c so make them as internal.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jay Jayatheerthan
eventdev: make trace API internal
Slowpath trace APIs are only used in rte_eventdev.c so make them as internal.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com> Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
show more ...
|
#
f3f3a917 |
| 18-Oct-2021 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev/timer: move adapters memory to hugepage
Move memory used by timer adapters to hugepage. Allocate memory on the first adapter create or lookup to address both primary and secondary process u
eventdev/timer: move adapters memory to hugepage
Move memory used by timer adapters to hugepage. Allocate memory on the first adapter create or lookup to address both primary and secondary process usecases. This will prevent TLB misses if any and aligns to memory structure of other subsystems.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
show more ...
|
#
53548ad3 |
| 18-Oct-2021 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: hide timer adapter PMD file
Hide rte_event_timer_adapter_pmd.h file as it is an internal file. Remove rte_ prefix from rte_event_timer_adapter_ops structure.
Signed-off-by: Pavan Nikhiles
eventdev: hide timer adapter PMD file
Hide rte_event_timer_adapter_pmd.h file as it is an internal file. Remove rte_ prefix from rte_event_timer_adapter_ops structure.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
show more ...
|
#
eeded204 |
| 26-Apr-2021 |
David Marchand <david.marchand@redhat.com> |
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 <david.marchand@redhat.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
99a2dd95 |
| 20-Apr-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also m
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also makes it awkward to add features referring to individual libraries in the build - should the lib names be specified with or without the prefix. Therefore, we can just remove the library prefix and use the library's unique name as the directory name, i.e. 'eal' rather than 'librte_eal'
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|