On 3/4/20 12:56 AM, Andrew Morton wrote:
quoted
@@ -2572,6 +2577,26 @@ int proc_dointvec(struct ctl_table *table, int write,
return do_proc_dointvec(table, write, buffer, lenp, ppos, NULL, NULL);
}
+#ifdef CONFIG_COMPACTION
+static int proc_dointvec_warn_RT_change(struct ctl_table *table, int write,
+ void __user *buffer, size_t *lenp,
+ loff_t *ppos)
+{
+ int ret, old;
+
+ if (!IS_ENABLED(CONFIG_PREEMPT_RT) || !write)
+ return proc_dointvec(table, write, buffer, lenp, ppos);
+
+ old = *(int *)table->data;
+ ret = proc_dointvec(table, write, buffer, lenp, ppos);
+ if (ret)
+ return ret;
+ WARN_ONCE(old != *(int *)table->data, "sysctl attribute %s changed.",
+ table->procname);
The WARN will include a stack trace which just isn't interesting. A
pr_warn() would be better?
Yeah, the only interesting part of full WARN would possibly be, which process
changed it. That might be useful to print.
quoted