[PATCH net-next 0/2] net/smc: introduce ringbufs usage statistics

Wen Gu
2024-08-05T09:06:01Z

Currently, we have histograms that show the sizes of ringbufs that ever
used by SMC connections. However, they are always incremental and since
SMC allows the reuse of ringbufs, we cannot know the actual amount of
ringbufs being allocated or actively used.

So this patch set introduces statistics for the amount of ringbufs that
actually allocated by link group and actively used by connections of a
certain net namespace, so that we can react based on these memory usage
information, e.g. active fallback to TCP.

With appropriate adaptations of smc-tools, we can obtain these ringbufs
usage information:

$ smcr -d linkgroup
LG-ID : 00000500
LG-Role : SERV
LG-Type : ASYML
VLAN : 0
PNET-ID :
Version : 1
Conns : 0
Sndbuf : 12910592 B <-
RMB : 12910592 B <-

or

$ smcr -d stats
[...]
RX Stats
Data transmitted (Bytes) 869225943 (869.2M)
Total requests 18494479
Buffer usage (Bytes) 12910592 (12.31M) <-
[...]

TX Stats
Data transmitted (Bytes) 12760884405 (12.76G)
Total requests 36988338
Buffer usage (Bytes) 12910592 (12.31M) <-
[...]
[...]

Wen Gu (2):
net/smc: introduce statistics for allocated ringbufs of link group
net/smc: introduce statistics for ringbufs usage of net namespace

include/uapi/linux/smc.h | 6 ++++
net/smc/smc_core.c | 74 ++++++++++++++++++++++++++++++++++------
net/smc/smc_core.h | 2 ++
net/smc/smc_stats.c | 8 +++++
net/smc/smc_stats.h | 27 ++++++++++-----
5 files changed, 97 insertions(+), 20 deletions(-)

--
2.32.0.3.g01195cf9f