From: Thomas Monjalon <thomas@monjalon.net>
To: Matheus Stolet <mstolet@mpi-sws.org>
Cc: users@dpdk.org, maxime.coquelin@redhat.com
Subject: Re: Supporting RSS with DPDK in a VM
Date: Fri, 28 Jul 2023 16:12:19 +0200 [thread overview]
Message-ID: <2160676.Icojqenx9y@thomas> (raw)
In-Reply-To: <4c9482cb3259f1e75e19a5724a67ea8d@mpi-sws.org>
Hello,
You can have packets distributed to multiple queues without RSS.
If you really wants to enable the RSS algorithms,
it seems not supported for now with vhost_user.
It can be enabled with vhost running in the kernel:
https://qemu.readthedocs.io/en/latest/devel/ebpf_rss.html
26/07/2023 00:58, Matheus Stolet:
> Hello,
>
> I am trying to run a DPDK application with RSS enabled so that I can
> have multiple rx queues. This application is running inside a VM. This
> VM is hosted by QEMU using KVM acceleration and OvS with DPDK and
> vhost-user are used in the backend. So to clarify things there are two
> DPDK portions to this. The first is the DPDK portion used by OvS that
> bypasses the host operating system. This is working fine. The other is a
> DPDK application inside the virtual machine that will bypass the guest
> operating system. This is where I am having trouble with.
>
> When I set rte_eth_conf.rxmode.mq_mode = ETH_MQ_RX_RSS in my application
> I get the following errors:
> Warning: NIC does not support all requested RSS hash functions.
> virtio_dev_configure(): RSS support requested but not supported by the
> device
> Port0 dev_configure = -95
>
> I setup my VM in QEMU to have mq=on and queues=10. I also set the number
> of rx_queues when creating the vhost port using ovs to 10. Before
> binding the interface to DPDK, I used ethtool to verify if the network
> interface was actually setup to have multiple queues.
>
> Running the 'ethtool -l enps02' command yields the following output:
> Pre-set maximums:
> RX: 0
> TX: 0
> Other: 0
> Combined: 10
> Current hardware settings:
> RX: 0
> TX: 0
> Other: 0
> Combined: 10
>
> From my understanding the combined values indicate that the interface
> was properly setup to have multiple queues, so why am I getting the
> unsupported RSS error? Are there other configuration steps that I have
> to take to get this to work? Is RSS with DPDK not supported at all
> inside a VM at the moment? Perhaps the "Port0 dev_configure() = -95"
> error means something else? Without the receive side scaling turned on
> my application is not able to achieve the desired throughput and won't
> scale when I assign more cores to the application.
>
> Versions:
> VM
> DPDK: 21.11.4
> Kernel: 5.4.0-148-generic
> Distribution: Ubuntu 20.04
>
> Host
> DPDK: 21.11.4
> QEMU: 8.0.90
> OvS: 3.0.5
> Kernel: 5.15.111.1.amd64-smp
> Distribution: Debian 11
>
next prev parent reply other threads:[~2023-07-28 14:12 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-25 22:58 Matheus Stolet
2023-07-28 14:12 ` Thomas Monjalon [this message]
2023-07-28 14:25 ` Maxime Coquelin
2023-08-01 23:09 ` Matheus Stolet
2023-07-28 14:19 ` Van Haaren, Harry
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=2160676.Icojqenx9y@thomas \
--to=thomas@monjalon.net \
--cc=maxime.coquelin@redhat.com \
--cc=mstolet@mpi-sws.org \
--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).