DPDK patches and discussions
 help / color / mirror / Atom feed
From: Alexander Kozyrev <akozyrev@mellanox.com>
To: "dev@dpdk.org" <dev@dpdk.org>
Subject: [dpdk-dev] [RFC] net/mlx5: add vectorized mprq
Date: Thu, 11 Jun 2020 23:35:58 +0000	[thread overview]
Message-ID: <AM0PR05MB4561176676CEC0818E6F30DFA2800@AM0PR05MB4561.eurprd05.prod.outlook.com> (raw)

The vectorized Rx burst function helps to accelerate the Rx 
processing by using SIMD (single instruction, multiple data) 
extensions for the multi-buffer packet processing.
Pre-allocating multiple mbufs and filling them in batches of
four greatly improves the throughput of the Rx burst routine.

MPRQ (Multi-Packet Rx Queue) lacks the vectorized version
currently. It works by posting a single large buffer (consisted
of  multiple fixed-size strides) in order to receive multiple
packets at once on this buffer. A Rx packet is then copied to a
user-provided mbuf or PMD attaches the Rx packet to the mbuf
by the pointer to an external buffer.

It is proposed to add a vectorized MPRQ Rx routine to speed up 
the MPRQ buffer handling as well. It would require pre-allocation
of multiple mbufs every time we exhaust all the strides from the
current MPRQ buffer and switch to a new one. The new
mlx5_rx_burst_mprq_vec() routine will take care of this as well
as of decision on whether should we copy or attach an external
buffer for a packet. The batch processing logic won't be different
from the simple vectorized Rx routine.

The new vectorized MPRQ burst function is going to be selected
automatically whenever the mprq_en devarg is specified. If SIMD 
is not available on the platform we fall back to the simple MPRQ
Rx burst function. LRO is not supported by the vectorized MPRQ
version and fall back to the regular MPRQ will be performed.

Signed-off-by: Alexander Kozyrev <akozyrev@mellanox.com>

                 reply	other threads:[~2020-06-11 23:36 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=AM0PR05MB4561176676CEC0818E6F30DFA2800@AM0PR05MB4561.eurprd05.prod.outlook.com \
    --to=akozyrev@mellanox.com \
    --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).