|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1 |
|
| #
06c047b6 |
| 09-Feb-2022 |
Stephen Hemminger <[email protected]> |
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free
remove unnecessary null checks
Functions like free, rte_free, and rte_mempool_free already handle NULL pointer so the checks here are not necessary.
Remove redundant NULL pointer checks before free functions found by nullfree.cocci
Signed-off-by: Stephen Hemminger <[email protected]>
show more ...
|
|
Revision tags: v21.11, v21.11-rc4, v21.11-rc3 |
|
| #
bd991897 |
| 10-Nov-2021 |
Mattias Rönnblom <[email protected]> |
eventdev: negate maintenance capability flag
Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need for the application to call rte_event_maintain(), with RTE_EVENT_DEV_CAP_MAINTENANCE_FR
eventdev: negate maintenance capability flag
Replace RTE_EVENT_DEV_CAP_REQUIRES_MAINT, which signaled the need for the application to call rte_event_maintain(), with RTE_EVENT_DEV_CAP_MAINTENANCE_FREE, which does the opposite (i.e., signifies that the event device does not require maintenance).
This approach is more in line with how other eventdev hardware and/or software limitations are handled in the Eventdev API.
Signed-off-by: Mattias Rönnblom <[email protected]> Acked-by: Jerin Jacob <[email protected]>
show more ...
|
| #
0f66d415 |
| 15-Nov-2021 |
Conor Walsh <[email protected]> |
event/sw: remove unused inflight events count
Reported by clang 13. This patch removes the inflights variable from the sw_dump function within the software section of the event driver as it is an un
event/sw: remove unused inflight events count
Reported by clang 13. This patch removes the inflights variable from the sw_dump function within the software section of the event driver as it is an unused but set variable.
Bugzilla ID: 881 Fixes: c66baa68e453 ("event/sw: add dump function for easier debugging") Cc: [email protected]
Reported-by: Liang Longfeng <[email protected]> Signed-off-by: Conor Walsh <[email protected]> Acked-by: Harry van Haaren <[email protected]> Reviewed-by: David Marchand <[email protected]>
show more ...
|
|
Revision tags: v21.11-rc2, v21.11-rc1 |
|
| #
53548ad3 |
| 18-Oct-2021 |
Pavan Nikhilesh <[email protected]> |
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 <[email protected]>
show more ...
|
| #
85be9971 |
| 18-Oct-2021 |
Pavan Nikhilesh <[email protected]> |
drivers/event: invoke probing finish function
Invoke event_dev_probing_finish() function at the end of probing, this function sets the function pointers in the fp_ops flat array.
Signed-off-by: Pav
drivers/event: invoke probing finish function
Invoke event_dev_probing_finish() function at the end of probing, this function sets the function pointers in the fp_ops flat array.
Signed-off-by: Pavan Nikhilesh <[email protected]> Acked-by: Hemant Agrawal <[email protected]>
show more ...
|
| #
23d06e37 |
| 18-Oct-2021 |
Pavan Nikhilesh <[email protected]> |
eventdev: make driver interface as internal
Mark all the driver specific functions as internal, remove `rte` prefix from `struct rte_eventdev_ops`. Remove experimental tag from internal functions. R
eventdev: make driver interface as internal
Mark all the driver specific functions as internal, remove `rte` prefix from `struct rte_eventdev_ops`. Remove experimental tag from internal functions. Remove `eventdev_pmd.h` from non-internal header files.
Signed-off-by: Pavan Nikhilesh <[email protected]> Acked-by: Hemant Agrawal <[email protected]>
show more ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, 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 ...
|
|
Revision tags: v21.05-rc1, v21.02, v21.02-rc4, v21.02-rc3, v21.02-rc2, v21.02-rc1, v20.11, v20.11-rc5, v20.11-rc4, v20.11-rc3, v20.11-rc2, v20.11-rc1 |
|
| #
75d11313 |
| 15-Oct-2020 |
Timothy McDaniel <[email protected]> |
eventdev: express DLB/DLB2 PMD constraints
This commit implements the eventdev ABI changes required by the DLB/DLB2 PMDs. Several data structures and constants are modified or added in this patch,
eventdev: express DLB/DLB2 PMD constraints
This commit implements the eventdev ABI changes required by the DLB/DLB2 PMDs. Several data structures and constants are modified or added in this patch, thereby requiring modifications to the dependent apps and examples.
The DLB/DLB2 hardware does not conform exactly to the eventdev interface. 1) It has a limit on the number of queues that may be linked to a port. 2) Some ports a further restricted to a maximum of 1 linked queue. 3) DLB does not have the ability to carry the flow_id as part of the event (QE) payload. Note that the DLB2 hardware is capable of carrying the flow_id.
Following is a detailed description of the changes that have been made.
1) Add new fields to the rte_event_dev_info struct. These fields allow the device to advertise its capabilities so that applications can take the appropriate actions based on those capabilities.
struct rte_event_dev_info { uint32_t max_event_port_links; /**< Maximum number of queues that can be linked to a single event * port by this device. */
uint8_t max_single_link_event_port_queue_pairs; /**< Maximum number of event ports and queues that are optimized for * (and only capable of) single-link configurations supported by this * device. These ports and queues are not accounted for in * max_event_ports or max_event_queues. */ }
2) Add a new field to the rte_event_dev_config struct. This field allows the application to specify how many of its ports are limited to a single link, or will be used in single link mode.
/** Event device configuration structure */ struct rte_event_dev_config { uint8_t nb_single_link_event_port_queues; /**< Number of event ports and queues that will be singly-linked to * each other. These are a subset of the overall event ports and * queues; this value cannot exceed *nb_event_ports* or * *nb_event_queues*. If the device has ports and queues that are * optimized for single-link usage, this field is a hint for how many * to allocate; otherwise, regular event ports and queues can be used. */ }
3) Replace the dedicated implicit_release_disabled field with a bit field of explicit port capabilities. The implicit_release_disable functionality is assigned to one bit, and a port-is-single-link-only attribute is assigned to other, with the remaining bits available for future assignment.
* Event port configuration bitmap flags */ #define RTE_EVENT_PORT_CFG_DISABLE_IMPL_REL (1ULL << 0) /**< Configure the port not to release outstanding events in * rte_event_dev_dequeue_burst(). If set, all events received through * the port must be explicitly released with RTE_EVENT_OP_RELEASE or * RTE_EVENT_OP_FORWARD. Must be unset if the device is not * RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE capable. */ #define RTE_EVENT_PORT_CFG_SINGLE_LINK (1ULL << 1)
/**< This event port links only to a single event queue. * * @see rte_event_port_setup(), rte_event_port_link() */
#define RTE_EVENT_PORT_ATTR_IMPLICIT_RELEASE_DISABLE 3 /** * The implicit release disable attribute of the port */
struct rte_event_port_conf { uint32_t event_port_cfg; /**< Port cfg flags(EVENT_PORT_CFG_) */ }
This patch also removes the depreciation notice and announce the new eventdev ABI changes in release note.
Signed-off-by: Timothy McDaniel <[email protected]> Acked-by: Harry van Haaren <[email protected]> Acked-by: Pavan Nikhilesh <[email protected]> Acked-by: Jerin Jacob <[email protected]>
show more ...
|
| #
70207f35 |
| 07-Oct-2020 |
Radu Nicolau <[email protected]> |
event/sw: improve performance
Add minimum burst throughout the scheduler pipeline and a flush counter. Use a single threaded ring implementation for the reorder buffer free list.
Signed-off-by: Rad
event/sw: improve performance
Add minimum burst throughout the scheduler pipeline and a flush counter. Use a single threaded ring implementation for the reorder buffer free list.
Signed-off-by: Radu Nicolau <[email protected]> Acked-by: Harry van Haaren <[email protected]>
show more ...
|
|
Revision tags: v20.08, v20.08-rc4, v20.08-rc3, v20.08-rc2, v20.08-rc1 |
|
| #
9c99878a |
| 01-Jul-2020 |
Jerin Jacob <[email protected]> |
log: introduce logtype register macro
Introduce the RTE_LOG_REGISTER macro to avoid the code duplication in the logtype registration process.
It is a wrapper macro for declaring the logtype, regist
log: introduce logtype register macro
Introduce the RTE_LOG_REGISTER macro to avoid the code duplication in the logtype registration process.
It is a wrapper macro for declaring the logtype, registering it and setting its level in the constructor context.
Signed-off-by: Jerin Jacob <[email protected]> Acked-by: Adam Dybkowski <[email protected]> Acked-by: Sachin Saxena <[email protected]> Acked-by: Akhil Goyal <[email protected]>
show more ...
|
|
Revision tags: v20.05, v20.05-rc4, v20.05-rc3, v20.05-rc2, v20.05-rc1, v20.02, v20.02-rc4, v20.02-rc3, v20.02-rc2, v20.02-rc1, v19.11, v19.11-rc4, v19.11-rc3, v19.11-rc2, v19.11-rc1, v19.08, v19.08-rc4, v19.08-rc3, v19.08-rc2, v19.08-rc1 |
|
| #
0e213244 |
| 04-Jul-2019 |
Dilshod Urazov <[email protected]> |
event/sw: fix error sign
Fixes: 371a688fc159 ("event/sw: support linking queues to ports") Cc: [email protected]
Signed-off-by: Dilshod Urazov <[email protected]> Signed-off-by: Andrew Rybc
event/sw: fix error sign
Fixes: 371a688fc159 ("event/sw: support linking queues to ports") Cc: [email protected]
Signed-off-by: Dilshod Urazov <[email protected]> Signed-off-by: Andrew Rybchenko <[email protected]> Acked-by: Harry van Haaren <[email protected]>
show more ...
|
|
Revision tags: v19.05, v19.05-rc4, v19.05-rc3, v19.05-rc2, v19.05-rc1, v19.02, v19.02-rc4, v19.02-rc3, v19.02-rc2, v19.02-rc1, v18.11, v18.11-rc5, v18.11-rc4, v18.11-rc3, v18.11-rc2, v18.11-rc1 |
|
| #
bd5ac24f |
| 24-Sep-2018 |
Harry van Haaren <[email protected]> |
event/sw: implement unlinks in progress function
This commit adds a counter to each port, which counts the number of unlinks that have been performed. When the scheduler thread starts its scheduling
event/sw: implement unlinks in progress function
This commit adds a counter to each port, which counts the number of unlinks that have been performed. When the scheduler thread starts its scheduling routine, it "acks" all unlinks that have been requested, and the application is gauranteed that no more events will be scheduled to the port from the unlinked queue.
Signed-off-by: Harry van Haaren <[email protected]>
show more ...
|
|
Revision tags: v18.08, v18.08-rc3, v18.08-rc2, v18.08-rc1 |
|
| #
8490488a |
| 21-Jun-2018 |
Gage Eads <[email protected]> |
event/sw: support device stop flush callback
This commit also adds a flush callback test to the sw eventdev's selftest suite.
Signed-off-by: Gage Eads <[email protected]> Acked-by: Harry van Haar
event/sw: support device stop flush callback
This commit also adds a flush callback test to the sw eventdev's selftest suite.
Signed-off-by: Gage Eads <[email protected]> Acked-by: Harry van Haaren <[email protected]>
show more ...
|
| #
f8e99896 |
| 18-Jun-2018 |
Thomas Monjalon <[email protected]> |
remove useless constructor headers
A constructor is usually declared with RTE_INIT* macros. As it is a static function, no need to declare before its definition. The macro is used directly in the fu
remove useless constructor headers
A constructor is usually declared with RTE_INIT* macros. As it is a static function, no need to declare before its definition. The macro is used directly in the function definition.
Signed-off-by: Thomas Monjalon <[email protected]>
show more ...
|
|
Revision tags: v18.05, v18.05-rc6, v18.05-rc5, v18.05-rc4, v18.05-rc3 |
|
| #
9dc1bd73 |
| 09-May-2018 |
Abhinandan Gujjar <[email protected]> |
eventdev: add driver interface of crypto adapter
This patch defines capabilities & functions to be called for eventdev PMDs.
Signed-off-by: Abhinandan Gujjar <[email protected]> Acked-by:
eventdev: add driver interface of crypto adapter
This patch defines capabilities & functions to be called for eventdev PMDs.
Signed-off-by: Abhinandan Gujjar <[email protected]> Acked-by: Jerin Jacob <[email protected]> Acked-by: Akhil Goyal <[email protected]>
show more ...
|
|
Revision tags: v18.05-rc2, v18.05-rc1 |
|
| #
47d05b29 |
| 04-Apr-2018 |
Erik Gabriel Carrillo <[email protected]> |
eventdev: add timer adapter common code
This commit adds the logic that is shared by all event timer adapter drivers; the common code handles instance allocation and some initialization.
Signed-off
eventdev: add timer adapter common code
This commit adds the logic that is shared by all event timer adapter drivers; the common code handles instance allocation and some initialization.
Signed-off-by: Erik Gabriel Carrillo <[email protected]> Acked-by: Pavan Nikhilesh <[email protected]>
show more ...
|
| #
d593a817 |
| 02-Apr-2018 |
Gage Eads <[email protected]> |
eventdev: add device stop flush callback
When an event device is stopped, it drains all event queues and ports. These events may contain pointers, so to prevent memory leaks eventdev now supports a
eventdev: add device stop flush callback
When an event device is stopped, it drains all event queues and ports. These events may contain pointers, so to prevent memory leaks eventdev now supports a user-provided flush callback that is called during the queue drain process. This callback is stored in process memory, so the callback must be registered by any process that may call rte_event_dev_stop().
This commit also clarifies the behavior of rte_event_dev_stop().
This follows this mailing list discussion: http://dpdk.org/ml/archives/dev/2018-January/087484.html
Signed-off-by: Gage Eads <[email protected]> Acked-by: Jerin Jacob <[email protected]>
show more ...
|
|
Revision tags: v18.02, v18.02-rc4, v18.02-rc3, v18.02-rc2 |
|
| #
510ac6f4 |
| 25-Jan-2018 |
Harry van Haaren <[email protected]> |
event/sw: support dynamic logging
This commit enables dynamic logging with the SW pmd. The string "pmd.event.sw" is used to change the verbosity of the logging output, as per the newly defined log n
event/sw: support dynamic logging
This commit enables dynamic logging with the SW pmd. The string "pmd.event.sw" is used to change the verbosity of the logging output, as per the newly defined log naming.
Signed-off-by: Harry van Haaren <[email protected]>
show more ...
|
|
Revision tags: v18.02-rc1 |
|
| #
561c5c7b |
| 11-Jan-2018 |
Pavan Nikhilesh <[email protected]> |
event/sw: update selftest ops
Update software eventdev ops to invoke selftest when application invokes `rte_event_dev_selftest`.
Signed-off-by: Pavan Nikhilesh <[email protected]> Ack
event/sw: update selftest ops
Update software eventdev ops to invoke selftest when application invokes `rte_event_dev_selftest`.
Signed-off-by: Pavan Nikhilesh <[email protected]> Acked-by: Harry van Haaren <[email protected]>
show more ...
|
| #
45219005 |
| 09-Jan-2018 |
Gage Eads <[email protected]> |
event/sw: remove stale IQ references when reconfigured
This commit fixes a bug in which, when the sw PMD is reconfigured, it would leave stale IQ chunk pointers in each queue's IQ structure. Now, th
event/sw: remove stale IQ references when reconfigured
This commit fixes a bug in which, when the sw PMD is reconfigured, it would leave stale IQ chunk pointers in each queue's IQ structure. Now, the PMD initializes all IQs at eventdev start time and releases all IQ chunk pointers at eventdev stop time (which has the consequence that any events in a queue when the eventdev is stopped will be lost). This approach should be resilient to any reconfiguration done between the stop and start, such as adding or removing queues.
This commit also fixes two potential issues in iq_chunk.h. iq_init() now initializes the IQ's count field to 0, and iq_dequeue_burst() sets iq->head to the appropriate next pointer.
Fixes: dca926ca9faa ("event/sw: use dynamically-sized IQs")
Reported-by: Pavan Nikhilesh <[email protected]> Signed-off-by: Gage Eads <[email protected]> Reviewed-by: Harry van Haaren <[email protected]> Acked-by: Pavan Nikhilesh <[email protected]>
show more ...
|
| #
285aa440 |
| 09-Jan-2018 |
Liang Ma <[email protected]> |
event/sw: apply new capability flags
Signed-off-by: Liang Ma <[email protected]> Signed-off-by: Peter Mccarthy <[email protected]>
|
| #
ec36d881 |
| 11-Dec-2017 |
Gage Eads <[email protected]> |
eventdev: add implicit release disable capability
This commit introduces a capability for disabling the "implicit" release functionality for a port, which prevents the eventdev PMD from issuing outs
eventdev: add implicit release disable capability
This commit introduces a capability for disabling the "implicit" release functionality for a port, which prevents the eventdev PMD from issuing outstanding releases for previously dequeued events when dequeuing a new batch of events.
If a PMD does not support this capability, the application will receive an error if it attempts to setup a port with implicit releases disabled. Otherwise, if the port is configured with implicit releases disabled, the application must release each dequeued event by invoking rte_event_enqueue_burst() with RTE_EVENT_OP_RELEASE or RTE_EVENT_OP_FORWARD.
Signed-off-by: Gage Eads <[email protected]> Acked-by: Harry van Haaren <[email protected]>
show more ...
|
| #
dca926ca |
| 30-Nov-2017 |
Gage Eads <[email protected]> |
event/sw: use dynamically-sized IQs
This commit introduces dynamically-sized IQs, by switching the underlying data structure from a fixed-size ring to a linked list of queue 'chunks.' This has a num
event/sw: use dynamically-sized IQs
This commit introduces dynamically-sized IQs, by switching the underlying data structure from a fixed-size ring to a linked list of queue 'chunks.' This has a number of benefits: - Certain corner cases were observed in which all of a pipeline's flows could be pinned to one port for extended periods, effectively turning a multi-core pipeline into single-core one. This was caused by an event producer having a larger new_event_threshold than the IQ depth, and injecting large numbers of packets that are ultimately backpressured in a worker's rx_ring, causing those packets' flows to be scheduled to that port. The dynamically sized IQ does not have this problem because each IQ can grow large enough to store all the system's events, such that backpressure will not reach the worker_ring. - Slight performance improvement (~1-2%) in high throughput scenarios, tested with eventdev_pipeline_sw_pmd.
This implementation has a small increase in the queue storage memory footprint (~70KB). This commit also removes the iq_size xstat, which no longer applies to this implementation.
Signed-off-by: Gage Eads <[email protected]> Acked-by: Harry van Haaren <[email protected]>
show more ...
|
| #
e1f2dcdb |
| 30-Nov-2017 |
Gage Eads <[email protected]> |
event/sw: fix queue memory leak and multi-link bug
This commit reinitializes a queue before it is reconfigured, such that reorder buffer memory is not leaked.
This bug masked a few other problems,
event/sw: fix queue memory leak and multi-link bug
This commit reinitializes a queue before it is reconfigured, such that reorder buffer memory is not leaked.
This bug masked a few other problems, which this commit corrects as well: - sw_port_link() allowed a port to link to a queue twice, such that the port could then successfully unlink the queue twice. Now the link function checks whether a port is already linked to the queue, and if so returns success but doesn't assign the a port a second slot in the queue's cq map. - test_eventdev.c's test_eventdev_unlink() was unlinking a queue twice from the same port, and expecting the second unlink to succeed. Now the test unlinks, links, then unlinks again. - test_eventdev.c's test_eventdev_link_get() was linking a single queue but expecting the unlink function to return nb_queues (where nb_queues > 1). The test now checks for a return value of 1.
Fixes: 5ffb2f142d95 ("event/sw: support event queues") Fixes: 371a688fc159 ("event/sw: support linking queues to ports") Fixes: f8f9d233ea0e ("test/eventdev: add unit tests") Cc: [email protected]
Signed-off-by: Gage Eads <[email protected]> Acked-by: Harry van Haaren <[email protected]>
show more ...
|
| #
5566a3e3 |
| 19-Dec-2017 |
Bruce Richardson <[email protected]> |
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@in
drivers: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <[email protected]>
show more ...
|