On Fri, Oct 18, 2013 at 01:52:18PM +0200, Vincent Guittot wrote:
+int sched_proc_update_packing(struct ctl_table *table, int write,
void __user *buffer, size_t *lenp,
loff_t *ppos)
+{
- int ret = proc_dointvec_minmax(table, write, buffer, lenp, ppos);
- if (ret || !write)
return ret;
- if (sysctl_sched_packing_level)
sd_pack_threshold = (100 * 1024) / sysctl_sched_packing_level;
- return 0;
+}
+#ifdef CONFIG_SCHED_PACKING_TASKS +static int min_sched_packing_level; +static int max_sched_packing_level = 100; +#endif /* CONFIG_SMP */
+#ifdef CONFIG_SCHED_PACKING_TASKS
- {
.procname = "sched_packing_level",
.data = &sysctl_sched_packing_level,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = sched_proc_update_packing,
.extra1 = &min_sched_packing_level,
.extra2 = &max_sched_packing_level,
- },
+#endif
Shouldn't min_sched_packing_level be 1? Userspace can now write 0 and expect something; but then we don't update sd_pack_threshold so nothing really changed.