DPDK usage discussions
 help / color / mirror / Atom feed
From: fwefew 4t4tg <7532yahoo@gmail.com>
To: users@dpdk.org
Subject: Concept clarification on NICS with multiple queues
Date: Mon, 20 Dec 2021 13:22:46 -0500	[thread overview]
Message-ID: <CA+Tq66X1zo3M63mkieztDa6fvhQ4ROhQo_OF3_KJTQKCysq7QA@mail.gmail.com> (raw)

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

My NIC has 32 RX and 32 TX queues.

Now given this API,

static uint16_t rte_eth_tx_burst ( uint16_t  port_id,
uint16_t  queue_id,
struct rte_mbuf <https://doc.dpdk.org/api/structrte__mbuf.html> **  tx_pkts,
uint16_t  nb_pkts
)
I gather the most natural approach for efficient packet transmissions is,

- assign one core to TX on a given port, queue since I/O through different
queues is essentially independent
- arrange packets in memory buffers so packets for the same queue are in
the same buffer

The RX side is much the same:

static uint16_t rte_eth_rx_burst ( uint16_t  port_id,
uint16_t  queue_id,
struct rte_mbuf <https://doc.dpdk.org/api/structrte__mbuf.html> **  rx_pkts,
const uint16_t  nb_pkts
)
- assign one core to RX on a given port, queue since I/O through different
queues is essentially independent of other queues

Is this pretty much the starting place?

Now, my NIC also has RSS (elided):

ethtool -x eth0

RSS hash key:

e8:27:27:e4:d9:fa:e4:1e:c6:89:67:95:52:4b:7a:41:3a:a6:68:5f:12:ec:4c:2f:51:18:a0:9b:bb:e1:7a:fb:a7:fb:7f:68:39:47:c2:83

RSS hash function:

    toeplitz: on

    xor: off

    crc32: off

But doesn't specifying the queue_id on RX/TX burst functions undercut RSS?
That is, nowhere is there an opportunity for the NIC to determine which
queue TX or RX go to since it was told at the outset?

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

             reply	other threads:[~2021-12-20 18:22 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-20 18:22 fwefew 4t4tg [this message]
2021-12-22 16:53 ` Stephen Hemminger

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=CA+Tq66X1zo3M63mkieztDa6fvhQ4ROhQo_OF3_KJTQKCysq7QA@mail.gmail.com \
    --to=7532yahoo@gmail.com \
    --cc=users@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).