DPDK usage discussions
 help / color / mirror / Atom feed
From: "Van Haaren, Harry" <harry.van.haaren@intel.com>
To: Matheus Stolet <mstolet@mpi-sws.org>, "users@dpdk.org" <users@dpdk.org>
Subject: RE: Supporting RSS with DPDK in a VM
Date: Fri, 28 Jul 2023 14:19:25 +0000	[thread overview]
Message-ID: <PH8PR11MB6803036331D4EFB95545A46DD706A@PH8PR11MB6803.namprd11.prod.outlook.com> (raw)
In-Reply-To: <4c9482cb3259f1e75e19a5724a67ea8d@mpi-sws.org>

> -----Original Message-----
> From: Matheus Stolet <mstolet@mpi-sws.org>
> Sent: Tuesday, July 25, 2023 11:59 PM
> To: users@dpdk.org
> Subject: Supporting RSS with DPDK in a VM
> 
> Hello,

Hi  Matheus,

> 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

When OVS sees multiple queues negotiated on a vhost port, it will transmit packets to
them. Depending on the "pmd thread" count in OVS, the mapping will be different,
but for best performance it is recommended to match the number of virtq's from
the guest to the number of OVS-pmd-threads on the host.

> 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:

Once you've bound interfaces to DPDK, ethtool no longer works,
and any configuration is reset to when DPDK initializes the port.
Ethtool cannot inspect DPDK ports/applications.

Although this mailing list will likely have experience, the OVS mailing list is likely a better location to
discuss OVS/DPDK/VM performance (I think you've posted there before).

Hope that helps, -Harry


>    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

      parent reply	other threads:[~2023-07-28 14:21 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
2023-07-28 14:25   ` Maxime Coquelin
2023-08-01 23:09   ` Matheus Stolet
2023-07-28 14:19 ` Van Haaren, Harry [this message]

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=PH8PR11MB6803036331D4EFB95545A46DD706A@PH8PR11MB6803.namprd11.prod.outlook.com \
    --to=harry.van.haaren@intel.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).