[dpdk-dev] [PATCH v4 05/10] examples/l2fwd-event: add eventdev queue and port setup
Pavan Nikhilesh Bhagavatula
pbhagavatula at marvell.com
Fri Sep 27 16:43:43 CEST 2019
>> Subject: [dpdk-dev] [PATCH v4 05/10] examples/l2fwd-event: add
>eventdev
>> queue and port setup
>>
>> From: Pavan Nikhilesh <pbhagavatula at marvell.com>
>>
>> Add event device queue and port setup based on event eth Tx
>adapter
>> capabilities.
>>
>> Signed-off-by: Sunil Kumar Kori <skori at marvell.com>
>> Signed-off-by: Pavan Nikhilesh <pbhagavatula at marvell.com>
>> ---
>> examples/l2fwd-event/l2fwd_eventdev.c | 10 +
>> examples/l2fwd-event/l2fwd_eventdev.h | 18 ++
>> examples/l2fwd-event/l2fwd_eventdev_generic.c | 179
>> +++++++++++++++++-
>> .../l2fwd_eventdev_internal_port.c | 173 ++++++++++++++++-
>> 4 files changed, 378 insertions(+), 2 deletions(-)
>>
>
><snip>
>
>> diff --git a/examples/l2fwd-event/l2fwd_eventdev_generic.c
>> b/examples/l2fwd-event/l2fwd_eventdev_generic.c
>> index e3990f8b0..65166fded 100644
>> --- a/examples/l2fwd-event/l2fwd_eventdev_generic.c
>> +++ b/examples/l2fwd-event/l2fwd_eventdev_generic.c
>> @@ -17,8 +17,185 @@
>> #include "l2fwd_common.h"
>> #include "l2fwd_eventdev.h"
>>
>> +static uint32_t
>> +eventdev_setup_generic(uint16_t ethdev_count)
>> +{
>> + struct eventdev_resources *eventdev_rsrc =
>get_eventdev_rsrc();
>> + struct rte_event_dev_config event_d_conf = {
>> + .nb_events_limit = 4096,
>> + .nb_event_queue_flows = 1024,
>> + .nb_event_port_dequeue_depth = 128,
>> + .nb_event_port_enqueue_depth = 128
>> + };
>> + struct rte_event_dev_info dev_info;
>> + const uint8_t event_d_id = 0; /* Always use first event device
>only */
>> + uint32_t event_queue_cfg = 0;
>> + uint16_t num_workers = 0;
>> + int ret;
>> +
>> + /* Event device configurtion */
>> + rte_event_dev_info_get(event_d_id, &dev_info);
>> + eventdev_rsrc->disable_implicit_release
>> = !!(dev_info.event_dev_cap &
>> +
>> RTE_EVENT_DEV_CAP_IMPLICIT_RELEASE_DISABLE);
>> +
>> + if (dev_info.event_dev_cap &
>> RTE_EVENT_DEV_CAP_QUEUE_ALL_TYPES)
>> + event_queue_cfg |=
>RTE_EVENT_QUEUE_CFG_ALL_TYPES;
>> +
>> + /* One queue for each ethdev port + one Tx adapter Single link
>> queue. */
>> + event_d_conf.nb_event_queues = ethdev_count + 1;
>
>It may not be true that max event queues are always more than
>ethdev_count.
>Please use event_d_conf.nb_event_queues as 1, in case '
>ethdev_count + 1' is more than
>max event queues.
See below.
This will also require change in
>'event_queue_setup_generic' API where
>this parameter is being used.
I will fix this in v5.
>
>> + if (dev_info.max_event_queues <
>event_d_conf.nb_event_queues)
>> + event_d_conf.nb_event_queues =
>> dev_info.max_event_queues;
>> +
The above check would make .nb_event_queues to 1.
>
More information about the dev
mailing list