#
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 ...
|
#
acc65ee3 |
| 07-Oct-2024 |
Pavan Nikhilesh <pbhagavatula@marvell.com> |
eventdev: introduce event pre-scheduling
Event pre-scheduling improves scheduling performance by assigning events to event ports in advance when dequeues are issued. The dequeue operation initiates
eventdev: introduce event pre-scheduling
Event pre-scheduling improves scheduling performance by assigning events to event ports in advance when dequeues are issued. The dequeue operation initiates the pre-schedule operation, which completes in parallel without affecting the dequeued event flow contexts and dequeue latency.
Event devices can indicate pre-scheduling capabilities using `RTE_EVENT_DEV_CAP_EVENT_PRESCHEDULE` and `RTE_EVENT_DEV_CAP_EVENT_PRESCHEDULE_ADAPTIVE` via the event device info function `info.event_dev_cap`.
Applications can select the pre-schedule type and configure it through `rte_event_dev_config.preschedule_type` during `rte_event_dev_configure`.
The supported pre-schedule types are: * `RTE_EVENT_PRESCHEDULE_NONE` - No pre-scheduling. * `RTE_EVENT_PRESCHEDULE` - Always issue a pre-schedule on dequeue. * `RTE_EVENT_PRESCHEDULE_ADAPTIVE` - Delay issuing pre-schedule until there are no forward progress constraints with the held flow contexts.
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
79ca24a4 |
| 07-Oct-2024 |
Abdullah Sevincer <abdullah.sevincer@intel.com> |
eventdev: add independent enqueue API
Support for independent enqueue feature and updates Event Device and PMD feature list.
A new capability RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ is introduced. It all
eventdev: add independent enqueue API
Support for independent enqueue feature and updates Event Device and PMD feature list.
A new capability RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ is introduced. It allows out-of-order enqueuing of RTE_EVENT_OP_FORWARD or RELEASE type events on an event port where this capability is enabled.
To use this capability applications need to set flag RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ during port setup only if the capability RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ exists.
Signed-off-by: Abdullah Sevincer <abdullah.sevincer@intel.com> Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.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 ...
|
#
f5746d3f |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: fix Doxygen processing of vector struct
The event vector struct was missing comments on two members, and also was inadvertently creating a local variable called "__rte_aligned" in the doxy
eventdev: fix Doxygen processing of vector struct
The event vector struct was missing comments on two members, and also was inadvertently creating a local variable called "__rte_aligned" in the doxygen output.
Correct the comment markers to fix the former issue, and fix the latter by putting "#ifdef __DOXYGEN" around the alignment constraint.
Fixes: 1cc44d409271 ("eventdev: introduce event vector capability") Fixes: 3c838062b91f ("eventdev: introduce event vector Rx capability") Fixes: 699155f2d4e2 ("eventdev: fix clang C++ include") Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
4c50f7af |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: drop anonymous union comment from Doxygen
Make the comments on the unnamed unions in the rte_event structure regular comments rather than doxygen ones. The comments do not add anything mea
eventdev: drop anonymous union comment from Doxygen
Make the comments on the unnamed unions in the rte_event structure regular comments rather than doxygen ones. The comments do not add anything meaningful to the doxygen output.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
5e467985 |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: clarify object fields and op types comments
Clarify the meaning of the NEW, FORWARD and RELEASE event types. For the fields in "rte_event" struct, enhance the comments on each to clarify t
eventdev: clarify object fields and op types comments
Clarify the meaning of the NEW, FORWARD and RELEASE event types. For the fields in "rte_event" struct, enhance the comments on each to clarify the field's use, and whether it is preserved between enqueue and dequeue, and it's role, if any, in scheduling.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
0f524a02 |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: improve comments on scheduling types
The description of ordered and atomic scheduling given in the eventdev doxygen documentation was not always clear. Try and simplify this so that it is
eventdev: improve comments on scheduling types
The description of ordered and atomic scheduling given in the eventdev doxygen documentation was not always clear. Try and simplify this so that it is clearer for the end-user of the application
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
14d67a94 |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: improve Doxygen comments for control API
The doxygen comments for the port attributes, start and stop (and related functions) are improved.
Signed-off-by: Bruce Richardson <bruce.richards
eventdev: improve Doxygen comments for control API
The doxygen comments for the port attributes, start and stop (and related functions) are improved.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
e48762b3 |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: improve Doxygen comments on config functions
Improve the documentation text for the configuration functions and structures for configuring an eventdev, as well as ports and queues. Clarify
eventdev: improve Doxygen comments on config functions
Improve the documentation text for the configuration functions and structures for configuring an eventdev, as well as ports and queues. Clarify text where possible, and ensure references come through as links in the html output.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
1203462c |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: improve Doxygen comments on configure struct
General rewording and cleanup on the rte_event_dev_config structure. Improved the wording of some sentences and created linked cross-references
eventdev: improve Doxygen comments on configure struct
General rewording and cleanup on the rte_event_dev_config structure. Improved the wording of some sentences and created linked cross-references out of the existing references to the dev_info structure.
As part of the rework, fix issue with how single-link port-queue pairs were counted in the rte_event_dev_config structure. This did not match the actual implementation and, if following the documentation, certain valid port/queue configurations would have been impossible to configure. Fix this by changing the documentation to match the implementation
Bugzilla ID: 1368 Fixes: 75d113136f38 ("eventdev: express DLB/DLB2 PMD constraints") Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
d77c9cbf |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: improve query functions documentation
General improvements to the doxygen docs for eventdev functions for querying basic information: * number of devices * id for a particular device * soc
eventdev: improve query functions documentation
General improvements to the doxygen docs for eventdev functions for querying basic information: * number of devices * id for a particular device * socket id of device * capability information for a device
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
da4b9651 |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: cleanup Doxygen comments on info structure
Some small rewording changes to the doxygen comments on struct rte_event_dev_info.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
eventdev: cleanup Doxygen comments on info structure
Some small rewording changes to the doxygen comments on struct rte_event_dev_info.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
bccda56a |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: update documentation on device capability flags
Update the device capability docs, to:
* include more cross-references * split longer text into paragraphs, in most cases with each flag ha
eventdev: update documentation on device capability flags
Update the device capability docs, to:
* include more cross-references * split longer text into paragraphs, in most cases with each flag having a single-line summary at the start of the doc block * general comment rewording and clarification as appropriate
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
de972a78 |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: move Doxygen text on driver internals
Inside the doxygen introduction text, some internal details of how eventdev works was mixed in with application-relevant details. Move these details o
eventdev: move Doxygen text on driver internals
Inside the doxygen introduction text, some internal details of how eventdev works was mixed in with application-relevant details. Move these details on probing etc. to the driver-relevant section.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
9d22ced0 |
| 21-Feb-2024 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: improve Doxygen introduction text
Make some textual improvements to the introduction to eventdev and event devices in the eventdev header file. This text appears in the doxygen output for
eventdev: improve Doxygen introduction text
Make some textual improvements to the introduction to eventdev and event devices in the eventdev header file. This text appears in the doxygen output for the header file, and introduces the key concepts, for example: events, event devices, queues, ports and scheduling.
This patch makes the following improvements: * small textual fixups, e.g. correcting use of singular/plural * rewrites of some sentences to improve clarity * using doxygen markdown to split the whole large block up into sections, thereby making it easier to read.
No large-scale changes are made, and blocks are not reordered
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Pavan Nikhilesh <pbhagavatula@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
ef0646ce |
| 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: clarify all-types flag documentation
Rather than requiring that any device advertising the RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES flag support all of atomic, ordered and parallel scheduling, we
eventdev: clarify all-types flag documentation
Rather than requiring that any device advertising the RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES flag support all of atomic, ordered and parallel scheduling, we can redefine the field so that it basically means that you don't need to specify the queue scheduling type at config time. Instead all types of supported events can be sent to all queues.
Suggested-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
eaa8fb6c |
| 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
eventdev: add scheduling type capability flags
Not all eventdev's support all scheduling types, for example, some may only support atomic scheduling or others only support ordered scheduling. There
eventdev: add scheduling type capability flags
Not all eventdev's support all scheduling types, for example, some may only support atomic scheduling or others only support ordered scheduling. There is currently no clear indication for each driver what sched types it supports, so add capability flags to be indicated on return from rte_event_dev_info_get() API.
Similarly add the possible scheduling types to the capabilities table in the docs.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
show more ...
|
#
b8b684f7 |
| 24-Oct-2023 |
Stephen Hemminger <stephen@networkplumber.org> |
eventdev: promote some functions as stable
All API's in eventdev up to 22.11 release should be made stable.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Jerin Jacob <jeri
eventdev: promote some functions as stable
All API's in eventdev up to 22.11 release should be made stable.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Jerin Jacob <jerinj@marvell.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 ...
|