RE: [PATCH v2] net: netvsc: Update default VMBus channels

From: Haiyang Zhang
Date: Wed Aug 14 2024 - 14:24:36 EST




> -----Original Message-----
> From: Erni Sri Satya Vennela <ernis@xxxxxxxxxxxxxxxxxxx>
> Sent: Wednesday, August 14, 2024 12:59 PM
> To: KY Srinivasan <kys@xxxxxxxxxxxxx>; Haiyang Zhang
> <haiyangz@xxxxxxxxxxxxx>; wei.liu@xxxxxxxxxx; Dexuan Cui
> <decui@xxxxxxxxxxxxx>; davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx;
> kuba@xxxxxxxxxx; pabeni@xxxxxxxxxx; linux-hyperv@xxxxxxxxxxxxxxx;
> netdev@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Cc: Erni Sri Satya Vennela <ernis@xxxxxxxxxxxxx>; Erni Sri Satya Vennela
> <ernis@xxxxxxxxxxxxxxxxxxx>
> 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 <ernis@xxxxxxxxxxxxxxxxxxx>

Reviewed-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
Thanks.