Whamcloud - gitweb
LU-11850 obd: use netlink to get lustre stats 56/34256/28
authorJames Simmons <jsimmons@infradead.org>
Sun, 18 Aug 2024 00:18:18 +0000 (20:18 -0400)
committerOleg Drokin <green@whamcloud.com>
Mon, 2 Dec 2024 05:41:02 +0000 (05:41 +0000)
commit5803284ac3a5d477df9afffe48ff35f08d67da1a
tree285f0088935361bbac3832c024ed73710cd3be08
parent8b5254fbabfeeaceb82f664ee06d289cdc7b13ff
LU-11850 obd: use netlink to get lustre stats

This adds the ability to collect performance metrics from lustre
in another way then from proc / debugfs files. The move to debugfs
has limited the scope of access to only root. Additionally there
is an expensive cost accessing many virtual file system files to
collect that data. Netlink will scale much better in this case as
well as offer a much more flexiable API.

The new ldebugfs_stats_alloc() replaces lprocfs_stats_alloc() and
registers the stats to be accessible BOTH throught debugfs AND
through Netlink. The new global "lstats_list" contains a list of
all registered sets of statistics, so it mirrors a subset of
debugfs. Netlink access can report on any statistics registered in
lstats_list.

Test-Parameters: trivial
Change-Id: If2d662baa62348fe6f0dd5c8d77344650c2a27d8
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/34256
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Neil Brown <neilb@suse.de>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
20 files changed:
lnet/include/lnet/lib-types.h
lustre/include/lprocfs_status.h
lustre/include/lustre_kernelcomm.h
lustre/include/uapi/linux/lustre/lustre_kernelcomm.h
lustre/ldlm/ldlm_pool.c
lustre/llite/lproc_llite.c
lustre/mdt/mdt_lproc.c
lustre/mgs/lproc_mgs.c
lustre/obdclass/kernelcomm.c
lustre/obdclass/lprocfs_status.c
lustre/obdclass/lprocfs_status_server.c
lustre/obdecho/echo.c
lustre/ofd/lproc_ofd.c
lustre/ofd/ofd_dev.c
lustre/osd-ldiskfs/osd_lproc.c
lustre/osd-zfs/osd_lproc.c
lustre/ptlrpc/lproc_ptlrpc.c
lustre/utils/liblustreapi_param.c
lustre/utils/lustre_param.c
lustre/utils/lustreapi_internal.h