From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: Stephen Hemminger <stephen@networkplumber.org>,
Trevor Tao <taozj888@163.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [PATCH v4 1/2] examples/l3fwd: relax RSS requirement with option
Date: Mon, 13 Nov 2023 20:01:34 +0000 [thread overview]
Message-ID: <d5a1724b44ca4282aa5f6faaa2d4301b@huawei.com> (raw)
In-Reply-To: <20231113095323.2c4064cf@hermes.local>
> > > Now the port Rx mq_mode had been set to RTE_ETH_MQ_RX_RSS
> > > by default, but some hw and/or virtual interface does not
> > > support the RSS and offload mode presupposed, e.g., some
> > > virtio interfaces in the cloud don't support
> > > RSS and the error msg may like:
> > >
> > > virtio_dev_configure(): RSS support requested but not supported by
> > > the device
> > > Port0 dev_configure = -95
> > >
> > > So to enable the l3fwd running in that environment, the Rx mode requirement
> > > can be relaxed to reflect the hardware feature reality here, and the l3fwd
> > > can run smoothly then.
> > >
> > > An option named "disable-rss" is added to disable the RX RSS explicitly,
> > > and it's disabled by default.
> > >
> > > Signed-off-by: Trevor Tao <taozj888@163.com>
> >
> > Why is running with > 1 rx queue and RSS disabled useful?
> > What happens is all packets arrive on 1st queue and you burn a thread
> > polling an always empty queue.
> >
> > I would prefer not adding yet another command line option and
> > just "do the right thing". If number of rx queues > 1, check that device
> > supports RSS before using it. If device does not support RSS give
> > an error and exit.
I think that's pretty much what we have right now in l3fwd.
As I understand, the rational was: some virtual NICs does not support RSS (vritio?),
but there is still a desire to run l3fwd app on such devices.
I presume for performance comparison purposes.
So the idea was to relax NIC requirements and allow to run l3fwd with disabled RSS.
I suppose the main question here: what then will be the mechanism to distribute
packets over different RX queues?
From my understanding with '--disable-rss' option enabled it is undefined and
depends on particular NIC.
In case of virtio, my guess - it will be hypervisor counterpart (vhost) to determine packet distribution.
>
> Something like this maybe:
> diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c
> index 6063eb139900..c747ef8aadfb 100644
> --- a/examples/l3fwd/main.c
> +++ b/examples/l3fwd/main.c
> @@ -1257,8 +1257,15 @@ l3fwd_poll_resource_setup(void)
> local_port_conf.rx_adv_conf.rss_conf.rss_hf &=
> dev_info.flow_type_rss_offloads;
>
> - if (dev_info.max_rx_queues == 1)
> + if (nb_rx_queue > dev_info.max_rx_queues)
> + rte_exit(EXIT_FAILURE, "Port %u only supports %u queues\n",
> + portid, dev_info.max_rx_queues);
> +
> + if (nb_rx_queue == 1)
> local_port_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_NONE;
> + else if (!(dev_info.rx_offload_capa & RTE_ETH_RX_OFFLOAD_RSS_HASH))
> + rte_exit(EXIT_FAILURE, "Port %u does not support RSS but %u queues requested\n",
> + portid, nb_rx_queue);
>
> if (local_port_conf.rx_adv_conf.rss_conf.rss_hf !=
> port_conf.rx_adv_conf.rss_conf.rss_hf) {
next prev parent reply other threads:[~2023-11-13 20:01 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-13 16:02 [PATCH v4 0/2] example/l3fwd: relax l3fwd rx RSS/Offload if needed Trevor Tao
2023-11-13 16:02 ` [PATCH v4 1/2] examples/l3fwd: relax RSS requirement with option Trevor Tao
2023-11-13 16:34 ` Stephen Hemminger
2023-11-13 17:53 ` Stephen Hemminger
2023-11-13 20:01 ` Konstantin Ananyev [this message]
2023-11-13 16:02 ` [PATCH v4 2/2] examples/l3fwd: relax RX Offload " Trevor Tao
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=d5a1724b44ca4282aa5f6faaa2d4301b@huawei.com \
--to=konstantin.ananyev@huawei.com \
--cc=dev@dpdk.org \
--cc=stephen@networkplumber.org \
--cc=taozj888@163.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.