[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20240820191211.GA15387@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net>
Date: Tue, 20 Aug 2024 12:12:11 -0700
From: Erni Sri Satya Vennela <ernis@...ux.microsoft.com>
To: Jakub Kicinski <kuba@...nel.org>
Cc: Haiyang Zhang <haiyangz@...rosoft.com>,
Erni Sri Satya Vennela <ernis@...rosoft.com>,
KY Srinivasan <kys@...rosoft.com>,
"wei.liu@...nel.org" <wei.liu@...nel.org>,
Dexuan Cui <decui@...rosoft.com>,
"davem@...emloft.net" <davem@...emloft.net>,
"edumazet@...gle.com" <edumazet@...gle.com>,
"pabeni@...hat.com" <pabeni@...hat.com>,
"linux-hyperv@...r.kernel.org" <linux-hyperv@...r.kernel.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2] net: netvsc: Update default VMBus channels
On Fri, Aug 16, 2024 at 08:52:41AM -0700, Jakub Kicinski wrote:
> On Thu, 15 Aug 2024 19:23:50 +0000 Haiyang Zhang wrote:
> > Your suggestion on netif_get_num_default_rss_queues() is not ignored.
> > We discussed internally on the formula we used for the num_chn, and
> > chose a similar formula for higher number of vCPUs as in
> > netif_get_num_default_rss_queues().
> > For lower number of vCPUs, we use the same default as Windows guests,
> > because we don't want any potential regression.
>
> Ideally you'd just use netif_get_num_default_rss_queues()
> but the code is close enough to that, and I don't have enough
> experience with the question of online CPUs vs physical CPUs.
>
> I would definitely advise you to try this on real workloads.
> While "iperf" looks great with a lot of rings, real workloads
> suffer measurably from having more channels eating up memory
> and generating interrupts.
>
> But if you're confident with the online_cpus() / 2, that's fine.
> You may be better off coding it up using max:
>
> dev_info->num_chn = max(DIV_ROUND_UP(num_online_cpus(), 2),
> VRSS_CHANNEL_DEFAULT);
Due to hyper-threading, #of physical cores = online CPUs/2.
Therefore, netif_get_num_default_rss_queues() returns
#of physical cores/2 = online CPUs/4.
In my testing, the throughput performance was similar for both the
configurations even for higher SKUs.To utilize lesser CPU resources,
will be using netif_get_num_default_rss_queues() for the next version
of the patch.
Powered by blists - more mailing lists