#
34e3ad3a |
| 21-Oct-2024 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
eventdev: remove single event enqueue and dequeue
Remove the single event enqueue and dequeue, since they did not provide any noticeable performance benefits.
This is a change of the ABI, previousl
eventdev: remove single event enqueue and dequeue
Remove the single event enqueue and dequeue, since they did not provide any noticeable performance benefits.
This is a change of the ABI, previously announced as a deprecation notice. These functions were not directly invoked by the application, so the API remains unaffected.
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
show more ...
|
#
4ade669c |
| 07-Oct-2024 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: add event pre-schedule hint
Add a new eventdev API to provide a hint to the eventdev PMD to pre-schedule the next event into the event port, without releasing the current flow context. Eve
eventdev: add event pre-schedule hint
Add a new eventdev API to provide a hint to the eventdev PMD to pre-schedule the next event into the event port, without releasing the current flow context. Event device that support this feature advertises the capability using the RTE_EVENT_DEV_CAP_PRESCHEDULE_EXPLICIT capability flag.
Application can invoke `rte_event_port_preschedule` to hint the PMD, if event device does not support this feature it is treated as a no-op.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
c1bdd86d |
| 07-Oct-2024 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: add event port pre-schedule modify
Some event devices allow pre-schedule types to be modified at runtime on an event port. Add `RTE_EVENT_DEV_CAP_PER_PORT_PRESCHEDULE` capability to indica
eventdev: add event port pre-schedule modify
Some event devices allow pre-schedule types to be modified at runtime on an event port. Add `RTE_EVENT_DEV_CAP_PER_PORT_PRESCHEDULE` capability to indicate that the event device supports this feature.
Add `rte_event_port_preschedule_modify()` API to modify the pre-schedule type at runtime. To avoid fastpath capability checks, the API reports -ENOTSUP if the event device does not support this feature.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
719834a6 |
| 20-Sep-2024 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
use C linkage where appropriate in headers
Assure that 'extern "C" { /../ }' do not cover files included from a particular header file, and address minor issues resulting from this change of order.
use C linkage where appropriate in headers
Assure that 'extern "C" { /../ }' do not cover files included from a particular header file, and address minor issues resulting from this change of order.
Dealing with C++ should delegate to the individual include file level, rather than being imposed by the user of that file. For example, forcing C linkage prevents __Generic macros being replaced with overloaded static inline functions in C++ translation units.
Eliminate 'extern "C"' from files which do not declare any symbols (e.g., only macros or struct types).
On the other hand, the headers check is too naive in assuming that all headers must contain a 'extern "C"'. Such a check was added in commit 1ee492bdc4ff ("buildtools/chkincs: check missing C++ guards"). Since this current change results in many headers not containing such a token, remove the check for 'extern "C"' until we have a better implementation.
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
#
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 ...
|
#
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 ...
|
#
e792ec08 |
| 12-Dec-2023 |
Stephen Hemminger <stephen@networkplumber.org> |
eventdev: use a dynamic logtype
With a little setup in eventdev_pmd.h, the eventdev drivers and API can be converted to dynamic log type.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.or
eventdev: use a dynamic logtype
With a little setup in eventdev_pmd.h, the eventdev drivers and API can be converted to dynamic log type.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
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 ...
|
#
d007a7f3 |
| 03-Oct-2023 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: introduce link profiles
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 base
eventdev: introduce link profiles
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 <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
66a30a29 |
| 29-Sep-2023 |
Amit Prakash Shukla <amitprakashs@marvell.com> |
eventdev/dma: introduce DMA adapter
Introduce event dma adapter interface to transfer packets between dma device and event device.
Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com> Acke
eventdev/dma: introduce DMA adapter
Introduce event dma adapter interface to transfer packets between dma device and event device.
Signed-off-by: Amit Prakash Shukla <amitprakashs@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
971d2b57 |
| 11-Aug-2023 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
remove C11 compatibility macro
C11 conformant compiler is documented as a minimum requirement to build and consume DPDK. Remove use of RTE_STD_C11 macro marking use of C11 features with __extension_
remove C11 compatibility macro
C11 conformant compiler is documented as a minimum requirement to build and consume DPDK. Remove use of RTE_STD_C11 macro marking use of C11 features with __extension__ since it is no longer necessary and then remove definition of RTE_STD_C11 macro.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Morten Brørup <mb@smartsharesystems.com>
show more ...
|
#
b4f0a9bb |
| 14-Jun-2023 |
Thomas Monjalon <thomas@monjalon.net> |
lib: remove blank line ending comment blocks
At the end of a comment, no need for an extra line.
This pattern was fixed with the following command: git ls lib | xargs sed -i '/^ *\* *$/{N;/ *\*\/ *
lib: remove blank line ending comment blocks
At the end of a comment, no need for an extra line.
This pattern was fixed with the following command: git ls lib | xargs sed -i '/^ *\* *$/{N;/ *\*\/ *$/D;}'
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
show more ...
|
#
1bdfe4d7 |
| 13-Oct-2022 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: increase xstats ID width to 64 bits
Increase xstats ID width from 32 to 64 bits. This also fixes the xstats ID datatype discrepancy between reset and rest of the xstats family.
Signed-off
eventdev: increase xstats ID width to 64 bits
Increase xstats ID width from 32 to 64 bits. This also fixes the xstats ID datatype discrepancy between reset and rest of the xstats family.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Reviewed-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
c1749bc5 |
| 01-Oct-2022 |
Volodymyr Fialko <vfialko@marvell.com> |
eventdev: introduce event cryptodev vector type
Introduce ability to aggregate crypto operations processed by event crypto adapter into single event containing rte_event_vector whose event type is R
eventdev: introduce event cryptodev vector type
Introduce ability to aggregate crypto operations processed by event crypto adapter into single event containing rte_event_vector whose event type is RTE_EVENT_TYPE_CRYPTODEV_VECTOR.
Application should set RTE_EVENT_CRYPTO_ADAPTER_EVENT_VECTOR in rte_event_crypto_adapter_queue_conf::flag and provide vector configuration with respect of rte_event_crypto_adapter_vector_limits, which could be obtained by calling rte_event_crypto_adapter_vector_limits_get, to enable vectorization.
The event crypto adapter would be responsible for vectorizing the crypto operations based on provided response information in rte_event_crypto_metadata::response_info.
Updated drivers and tests accordingly to new API.
Signed-off-by: Volodymyr Fialko <vfialko@marvell.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
#
d986276f |
| 29-Sep-2022 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: add prefix to public symbol
Add `rte` prefix to stop flush callback function pointer declaration to avoid conflicts with application functions, ``eventdev_stop_flush_t`` is renamed to ``rt
eventdev: add prefix to public symbol
Add `rte` prefix to stop flush callback function pointer declaration to avoid conflicts with application functions, ``eventdev_stop_flush_t`` is renamed to ``rte_eventdev_stop_flush_t``.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
3c3328ae |
| 26-Sep-2022 |
Naga Harish K S V <s.v.naga.harish.k@intel.com> |
eventdev/eth_tx: add queue start/stop API
Add support to start or stop a particular queue that is associated with the adapter.
Start function enables the Tx adapter to start enqueueing packets to t
eventdev/eth_tx: add queue start/stop API
Add support to start or stop a particular queue that is associated with the adapter.
Start function enables the Tx adapter to start enqueueing packets to the Tx queue.
Stop function stops the Tx adapter from enqueueing any packets to the Tx queue. The stop API also frees any packets that may have been buffered for this queue. All in-flight packets destined to the queue are freed by the adapter runtime until the queue is started again.
Signed-off-by: Naga Harish K S V <s.v.naga.harish.k@intel.com> Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com>
show more ...
|
#
2f279a1b |
| 10-Aug-2022 |
Shijith Thotton <sthotton@marvell.com> |
eventdev: add weight and affinity attributes to queue conf
Added new fields to represent event queue weight and affinity in rte_event_queue_conf structure. Internal op to get queue attribute is remo
eventdev: add weight and affinity attributes to queue conf
Added new fields to represent event queue weight and affinity in rte_event_queue_conf structure. Internal op to get queue attribute is removed as it is no longer needed. Updated driver to use the new field.
Signed-off-by: Shijith Thotton <sthotton@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.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 ...
|
#
b2963cbd |
| 29-Aug-2022 |
Ganapati Kundapura <ganapati.kundapura@intel.com> |
eventdev/eth_tx: add adapter instance get API
Added rte_event_eth_tx_adapter_instance_get() to get the adapter instance id for specified ethernet device id and tx queue index.
Added testcase for rt
eventdev/eth_tx: add adapter instance get API
Added rte_event_eth_tx_adapter_instance_get() to get the adapter instance id for specified ethernet device id and tx queue index.
Added testcase for rte_event_eth_tx_adapter_instance_get().
Added rte_event_eth_tx_adapter_instance_get() details in prog_guide/event_ethernet_tx_adapter.rst
Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com> Reviewed-by: Naga Harish K S V <s.v.naga.harish.k@intel.com> Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
a1793ee8 |
| 29-Aug-2022 |
Ganapati Kundapura <ganapati.kundapura@intel.com> |
eventdev/eth_rx: add adapter instance get API
Added rte_event_eth_rx_adapter_instance_get() to get adapter instance id for specified ethernet device id and rx queue index.
Added telemetry handler f
eventdev/eth_rx: add adapter instance get API
Added rte_event_eth_rx_adapter_instance_get() to get adapter instance id for specified ethernet device id and rx queue index.
Added telemetry handler for rte_event_eth_rx_adapter_instance_get().
Added test case for rte_event_eth_rx_adapter_instance_get()
Added rte_event_eth_rx_adapter_instance_get() details in prog_guide/event_ethernet_rx_adapter.rst
Signed-off-by: Ganapati Kundapura <ganapati.kundapura@intel.com> Reviewed-by: Naga Harish K S V <s.v.naga.harish.k@intel.com> Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
1acb7f54 |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
dev: hide driver object
Make rte_driver opaque for non internal users. This will make extending this object possible without breaking the ABI.
Introduce a new driver header and move rte_driver defi
dev: hide driver object
Make rte_driver opaque for non internal users. This will make extending this object possible without breaking the ABI.
Introduce a new driver header and move rte_driver definition. Update drivers and library to use the internal header.
Some applications may have been dereferencing rte_driver objects, mark this object's accessors as stable.
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Jay Jayatheerthan <jay.jayatheerthan@intel.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Akhil Goyal <gakhil@marvell.com> Acked-by: Abhinandan Gujjar <abhinandan.gujjar@intel.com>
show more ...
|
#
44516e6b |
| 16-May-2022 |
Shijith Thotton <sthotton@marvell.com> |
eventdev: add weight and affinity to queue attributes
Extended eventdev queue QoS attributes to support weight and affinity. If queues are of the same priority, events from the queue with highest we
eventdev: add weight and affinity to queue attributes
Extended eventdev queue QoS attributes to support weight and affinity. If queues are of the same priority, events from the queue with highest weight will be scheduled first. Affinity indicates the number of times, the subsequent schedule calls from an event port will use the same event queue. Schedule call selects another queue if current queue goes empty or schedule count reaches affinity count.
To avoid ABI break, weight and affinity attributes are not yet added to queue config structure and rely on PMD for managing it. New eventdev op queue_attr_get can be used to get it from the PMD.
Signed-off-by: Shijith Thotton <sthotton@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
97b914f4 |
| 16-May-2022 |
Shijith Thotton <sthotton@marvell.com> |
eventdev: support setting queue attributes at runtime
Added a new eventdev API rte_event_queue_attr_set(), to set event queue attributes at runtime from the values set during initialization using rt
eventdev: support setting queue attributes at runtime
Added a new eventdev API rte_event_queue_attr_set(), to set event queue attributes at runtime from the values set during initialization using rte_event_queue_setup(). PMD's supporting this feature should expose the capability RTE_EVENT_DEV_CAP_RUNTIME_QUEUE_ATTR.
Signed-off-by: Shijith Thotton <sthotton@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
1ff23ce6 |
| 13-May-2022 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: quiesce an event port
Add function to quiesce any core specific resources consumed by the event port.
When the application decides to migrate the event port to another lcore or teardown t
eventdev: quiesce an event port
Add function to quiesce any core specific resources consumed by the event port.
When the application decides to migrate the event port to another lcore or teardown the current lcore it may to call `rte_event_port_quiesce` to make sure that all the data associated with the event port are released from the lcore, this might also include any prefetched events.
While releasing the event port from the lcore, this function calls the user-provided flush callback once per event.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|