cifs: distribute channels across interfaces based on speed
authorSteve French <stfrench@microsoft.com>
Fri, 26 Jan 2024 05:57:47 +0000 (23:57 -0600)
committerSteve French <stfrench@microsoft.com>
Sat, 27 Jan 2024 06:14:31 +0000 (00:14 -0600)
commit97f6de2c9c2edb664ef012aac8c7c871d89cfe44
treedb05d30e4699ace52502eb9834f8d59434bb4b81
parentfb90d5fe344f7ed26d3d441d43d0d26350666cb6
cifs: distribute channels across interfaces based on speed

Today, if the server interfaces RSS capable, we simply
choose the fastest interface to setup a channel. This is not
a scalable approach, and does not make a lot of attempt to
distribute the connections.

This change does a weighted distribution of channels across
all the available server interfaces, where the weight is
a function of the advertised interface speed.

Also make sure that we don't mix rdma and non-rdma for channels.

Signed-off-by: Shyam Prasad N <sprasad@microsoft.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/cifs/cifs_debug.c
fs/cifs/cifsglob.h
fs/cifs/sess.c