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 ...
|
0dab9afe | 07-Oct-2024 |
Abdullah Sevincer <abdullah.sevincer@intel.com> |
event/dsw: add capability for independent enqueue
To use independent enqueue capability applications need to set flag RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ during port setup only if the capability RTE_
event/dsw: add capability for independent enqueue
To use independent enqueue 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. Hence, this commit adds the capability of independent enqueue to the DSW driver.
Signed-off-by: Abdullah Sevincer <abdullah.sevincer@intel.com> Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
show more ...
|
6e2e98d6 | 07-Oct-2024 |
Abdullah Sevincer <abdullah.sevincer@intel.com> |
event/dlb2: support independent enqueue
DLB devices need events to be enqueued in the same order they are dequeued. Applications are not suppose to change event order between dequeue and to enqueue.
event/dlb2: support independent enqueue
DLB devices need events to be enqueued in the same order they are dequeued. Applications are not suppose to change event order between dequeue and to enqueue. Since Eventdev standard does not add such restrictions independent enqueue support is needed for DLB PMD so that it restores dequeue order on enqueue if applications happen to change it. It also adds missing releases in places where events are dropped by the application and it expects implicit release to handle it.
By default the feature will be off on all DLB ports and they will behave the same as older releases. To enable reordering feature, applications need to add the flag RTE_EVENT_PORT_CFG_INDEPENDENT_ENQ to port configuration if only the device advertises the capability RTE_EVENT_DEV_CAP_INDEPENDENT_ENQ.
Signed-off-by: Abdullah Sevincer <abdullah.sevincer@intel.com> Acked-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com>
show more ...
|
de799b2f | 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
event/sw: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Bruc
event/sw: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
8eb01fb9 | 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
event/opdl: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Br
event/opdl: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
68a92aff | 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
event/octeontx: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by
event/octeontx: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
3690c06f | 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
event/dsw: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Bru
event/dsw: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
21662755 | 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
event/dpaa: add schedule-type capability flags
Document explicitly the scheduling types supported by these drivers, both via info_get() function, and via table in the documentation.
Signed-off-by:
event/dpaa: add schedule-type capability flags
Document explicitly the scheduling types supported by these drivers, both via info_get() function, and via table in the documentation.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
show more ...
|
498f7f91 | 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
event/dlb2: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Br
event/dlb2: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Abdullah Sevincer <abdullah.sevincer@intel.com>
show more ...
|
934ece31 | 12-Dec-2023 |
Bruce Richardson <bruce.richardson@intel.com> |
event/cnxk: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Br
event/cnxk: add schedule-type capability flags
Document explicitly the scheduling types supported by this driver, both via info_get() function, and via table in the documentation.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.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 ...
|