|
@@ -1770,7 +1770,29 @@ void set_numabalancing_state(bool enabled)
|
|
|
numabalancing_enabled = enabled;
|
|
|
}
|
|
|
#endif /* CONFIG_SCHED_DEBUG */
|
|
|
-#endif /* CONFIG_NUMA_BALANCING */
|
|
|
+
|
|
|
+#ifdef CONFIG_PROC_SYSCTL
|
|
|
+int sysctl_numa_balancing(struct ctl_table *table, int write,
|
|
|
+ void __user *buffer, size_t *lenp, loff_t *ppos)
|
|
|
+{
|
|
|
+ struct ctl_table t;
|
|
|
+ int err;
|
|
|
+ int state = numabalancing_enabled;
|
|
|
+
|
|
|
+ if (write && !capable(CAP_SYS_ADMIN))
|
|
|
+ return -EPERM;
|
|
|
+
|
|
|
+ t = *table;
|
|
|
+ t.data = &state;
|
|
|
+ err = proc_dointvec_minmax(&t, write, buffer, lenp, ppos);
|
|
|
+ if (err < 0)
|
|
|
+ return err;
|
|
|
+ if (write)
|
|
|
+ set_numabalancing_state(state);
|
|
|
+ return err;
|
|
|
+}
|
|
|
+#endif
|
|
|
+#endif
|
|
|
|
|
|
/*
|
|
|
* fork()/clone()-time setup:
|