Re: [PATCH 1/2] sysctl: Add jiffies converter entries to the test module

From: Bradley Morgan

Date: Wed Sep 23 2026 - 12:51:10 EST


On 23 September 2026 15:49:36 BST, Zhan Xusheng <zhanxusheng1024@xxxxxxxxx>
wrote:
>lib/test_sysctl.c covers proc_dointvec(), proc_douintvec(),
>proc_dostring(), proc_do_large_bitmap() and proc_dou8vec_minmax(), but
>none of the jiffies converters. Their int paths report the sign
>separately from the magnitude, which is a shape the existing entries do
>not exercise at all.
>
>Add one entry per affected int converter: proc_dointvec_jiffies(),
>proc_dointvec_ms_jiffies() and proc_dointvec_userhz_jiffies(). Each is
>seeded with HZ jiffies, which is one second in every converter's own
>unit, so the three read back as 1, 1000 and 100 respectively.

LGTM, thanks (and I reviewed this properly)

Reviewed-by: Bradley Morgan <brads@xxxxxxxxxxxxxx>

All tests pass with your patch applied on my PowerPC box:

Tested-by: Bradley Morgan <brads@xxxxxxxxxxxxxx> # POWER10


>
>Signed-off-by: Zhan Xusheng <zhanxusheng@xxxxxxxxxx>
>---
> lib/test_sysctl.c | 31 +++++++++++++++++++++++++++++++
> 1 file changed, 31 insertions(+)
>
>diff --git a/lib/test_sysctl.c b/lib/test_sysctl.c
>index 909cfcf76dbf..7718cf4ffd47 100644
>--- a/lib/test_sysctl.c
>+++ b/lib/test_sysctl.c
>@@ -15,6 +15,7 @@
> #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
>
> #include <linux/init.h>
>+#include <linux/jiffies.h>
> #include <linux/list.h>
> #include <linux/module.h>
> #include <linux/printk.h>
>@@ -48,6 +49,10 @@ struct test_sysctl_data {
>
> int boot_int;
>
>+ int int_jiffies;
>+ int int_ms_jiffies;
>+ int int_userhz_jiffies;
>+
> unsigned int uint_0001;
>
> char string_0001[65];
>@@ -67,6 +72,11 @@ static struct test_sysctl_data test_data = {
>
> .boot_int = 0,
>
>+ /* One second in each converter's unit; all three store HZ jiffies. */

Nice comment!

>+ .int_jiffies = HZ,
>+ .int_ms_jiffies = HZ,
>+ .int_userhz_jiffies = HZ,
>+
> .uint_0001 = 314,
>
> .string_0001 = "(none)",
>@@ -113,6 +123,27 @@ static const struct ctl_table test_table[] = {
> .extra1 = SYSCTL_ZERO,
> .extra2 = SYSCTL_ONE,
> },
>+ {
>+ .procname = "int_jiffies",
>+ .data = &test_data.int_jiffies,
>+ .maxlen = sizeof(int),
>+ .mode = 0644,
>+ .proc_handler = proc_dointvec_jiffies,
>+ },
>+ {
>+ .procname = "int_ms_jiffies",
>+ .data = &test_data.int_ms_jiffies,
>+ .maxlen = sizeof(int),
>+ .mode = 0644,
>+ .proc_handler = proc_dointvec_ms_jiffies,
>+ },
>+ {
>+ .procname = "int_userhz_jiffies",
>+ .data = &test_data.int_userhz_jiffies,
>+ .maxlen = sizeof(int),
>+ .mode = 0644,
>+ .proc_handler = proc_dointvec_userhz_jiffies,
>+ },

This looks correct to me.


> {
> .procname = "uint_0001",
> .data = &test_data.uint_0001,
>


--- Thanks!
"I'm not a very positive person" - Linus torvalds