DPDK patches and discussions
 help / color / mirror / Atom feed
From: bugzilla@dpdk.org
To: dev@dpdk.org
Subject: [Bug 1368] inconsistency in eventdev dev_info and config structs makes some valid configs impossible
Date: Thu, 18 Jan 2024 11:18:58 +0000	[thread overview]
Message-ID: <bug-1368-3@http.bugs.dpdk.org/> (raw)

[-- Attachment #1: Type: text/plain, Size: 3573 bytes --]

https://bugs.dpdk.org/show_bug.cgi?id=1368

            Bug ID: 1368
           Summary: inconsistency in eventdev dev_info and config structs
                    makes some valid configs impossible
           Product: DPDK
           Version: unspecified
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: eventdev
          Assignee: dev@dpdk.org
          Reporter: bruce.richardson@intel.com
  Target Milestone: ---

In the rte_event_dev_info struct[1], we have the max_event_queues[2] and
max_single_link_event_port_queue_pairs[3] members. The doxygen docs on the
latter states: "These ports and queues are not accounted for in
max_event_ports or max_event_queues."

This implies that a device which has 8 regular queues and an extra 8
single-link only queues, would report max_event_queues == 8, and
max_single_link_event_port_queue_pairs == 8 on return from
rte_event_dev_info_get() function.

Those values returned from info_get are generally to be used to guide the
configuration using rte_event_dev_configure() API, which takes the
rte_event_dev_config[4] struct. This has two similar fields, in
nb_event_queues[5] and nb_single_link_event_port_queues[6]. However, a
problem arises in that the documentation states that nb_event_queues cannot
be greater than the previously reported max_event_queues (which by itself
makes sense), but the documentation also states that
nb_single_link_event_port_queues is a subset of the overall event ports and
queues, and cannot be greater than the nb_event_queues given in the same
config structure.

To illustrate the issue by continuing to use the same example as above,
suppose an app wants to take that device with 8 regular queues and 8 single
link ones, and have an app with 2 shared processing queues, e.g. for
load-balancing packets/events among 8 cores, but also wants to use the 8
single link queues to allow sending packets/events directly to each core
without load balancing.  In this 2 + 8 scenario, there is no valid
dev_config struct settings that will work:
* making the 8 a subset of the nb_event_queues, means that nb_event_queues
  is 10, which is greater than max_event_queues and so invalid.
* keeping them separate, so that nb_event_queues == 2 and
  nb_single_link_port_queues == 8 violates the constraint that the
  single_link value cannot exceed the former nb_event_queues value.

We therefore need to adjust the constraints to make things work. Now we can
do so, while keeping the single_link value *not included* in the
total-count in dev_info, but have it *included* in the config struct, but
such a setup is very confusing for the user. Therefore, I think instead we
need to correct this by aligning the two structures - either the
single_link queues are included in the queue/port counts in both structs,
or they aren't included.

[1] https://doc.dpdk.org/api/structrte__event__dev__info.html
[2]
https://doc.dpdk.org/api/structrte__event__dev__info.html#a1cebb1d19943d6b8e3d6e51ffc72982a
[3]
https://doc.dpdk.org/api/structrte__event__dev__info.html#ae65bf9e4dba80ccb205f3c43f5907d5d
[4] https://doc.dpdk.org/api/structrte__event__dev__config.html
[5]
https://doc.dpdk.org/api/structrte__event__dev__config.html#a703c026d74436b05fc656652324101e4
[6]
https://doc.dpdk.org/api/structrte__event__dev__config.html#a39f29448dce5baf491f6685299faa0c9

-- 
You are receiving this mail because:
You are the assignee for the bug.

[-- Attachment #2: Type: text/html, Size: 6053 bytes --]

             reply	other threads:[~2024-01-18 11:18 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-18 11:18 bugzilla [this message]
2024-01-18 11:26 ` Bruce Richardson
2024-01-18 13:21   ` Bruce Richardson
2024-03-18  0:49 ` [DPDK/eventdev Bug " bugzilla

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-1368-3@http.bugs.dpdk.org/ \
    --to=bugzilla@dpdk.org \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).