> -----Original Message-----
> From: Erni Sri Satya Vennela <er...@linux.microsoft.com>
> Sent: Wednesday, August 14, 2024 12:59 PM
> To: KY Srinivasan <k...@microsoft.com>; Haiyang Zhang
> <haiya...@microsoft.com>; wei....@kernel.org; Dexuan Cui
> <de...@microsoft.com>; da...@davemloft.net; eduma...@google.com;
> k...@kernel.org; pab...@redhat.com; linux-hyperv@vger.kernel.org;
> net...@vger.kernel.org; linux-ker...@vger.kernel.org
> Cc: Erni Sri Satya Vennela <er...@microsoft.com>; Erni Sri Satya Vennela
> <er...@linux.microsoft.com>
> Subject: [PATCH v2] net: netvsc: Update default VMBus channels
>
> Change VMBus channels macro (VRSS_CHANNEL_DEFAULT) in
> Linux netvsc from 8 to 16 to align with Azure Windows VM
> and improve networking throughput.
>
> For VMs having less than 16 vCPUS, the channels depend
> on number of vCPUs. Between 16 to 32 vCPUs, the channels
> default to VRSS_CHANNEL_DEFAULT. For greater than 32 vCPUs,
> set the channels to number of physical cores / 2 as a way
> to optimize CPU resource utilization and scale for high-end
> processors with many cores.
> Maximum number of channels are by default set to 64.
>
> Based on this change the subchannel creation would change as follows:
>
> -------------------------------------------------------------
> |No. of vCPU |dev_info->num_chn |subchannel created |
> -------------------------------------------------------------
> | 0-16 | 16 | vCPU |
> | >16 & <=32 | 16 | 16 |
> | >32 & <=128 | vCPU/2 | vCPU/2 |
> | >128 | vCPU/2 | 64 |
> -------------------------------------------------------------
>
> Performance tests showed significant improvement in throughput:
> - 0.54% for 16 vCPUs
> - 0.83% for 32 vCPUs
> - 1.76% for 48 vCPUs
> - 10.35% for 64 vCPUs
> - 13.47% for 96 vCPUs
>
> Signed-off-by: Erni Sri Satya Vennela <er...@linux.microsoft.com>
Reviewed-by: Haiyang Zhang <haiya...@microsoft.com>
Thanks.