[PATCH v2 0/4] debugfs: Add simple min/max "files" to debugfs to fix sched debug code.

From: chris hyser
Date: Tue May 30 2023 - 15:40:43 EST


v2:
Apologies. I sent this the first time without including lkml.

v1:
This originally started as an attempt to solve a divide by zero issue in sched
debug code that was introduced when a sysctl value with non-zero checking was
moved to a simple u32 debugfs file. In looking at ways to solve this, it was
mentioned I should look at providing general debugfs files with min/max
checking.

One problem was that a check for greater than zero for say a u8 succeeds for a
number like 256 (but stores a zero anyway) as the upper bits that don't fit into
storage are silently dropped. Therefore values greater than the storage capacity
must also fail. Getting an error when what the user wrote is not what was
actually stored, seems like a useful requirement for the other simple files and
so I moved the check into there.

To enable easy testing, a test module and test script are provided which can
validate the new functions as well as check the new limits on the older
functions. This was stuck under selftests, but it is not currently tied into the
testing infrastructure.

Documentation/filesystems/debugfs.rst | 47 +++++++++++++++--
fs/debugfs/file.c | 195 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
include/linux/debugfs.h | 60 +++++++++++++++++++++
kernel/sched/debug.c | 9 +++-
tools/testing/selftests/debugfs/Makefile | 15 ++++++
tools/testing/selftests/debugfs/minmax_test.c | 140 +++++++++++++++++++++++++++++++++++++++++++++++++
tools/testing/selftests/debugfs/test_minmax.sh | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 609 insertions(+), 4 deletions(-)