[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20091204095408.GA26118@elte.hu>
Date: Fri, 4 Dec 2009 10:54:08 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Suresh Jayaraman <sjayaraman@...e.de>
Cc: Peter Zijlstra <peterz@...radead.org>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [RFC][PATCH] sched: fix GENTLE_FAIR_SLEEPERS dependency
* Suresh Jayaraman <sjayaraman@...e.de> wrote:
> The newly introduced GENTLE_FAIR_SLEEPERS does not seem to have any
> effect without FAIR_SLEEPERS. Fix sysctl.sched_features to reflect
> this. Without this change, a user who sets GENTLE_FAIR_SLEEPERS
> without FAIR_SLEEPERS would assume gentle sleeper fairness which
> is not guaranteed.
>
> Signed-off-by: Suresh Jayaraman <sjayaraman@...e.de>
> ---
>
> Index: linux-2.6/kernel/sched.c
> ===================================================================
> --- linux-2.6.orig/kernel/sched.c
> +++ linux-2.6/kernel/sched.c
> @@ -761,10 +761,22 @@ sched_feat_write(struct file *filp, cons
> int len = strlen(sched_feat_names[i]);
>
> if (strncmp(cmp, sched_feat_names[i], len) == 0) {
> - if (neg)
> + if (neg) {
> sysctl_sched_features &= ~(1UL << i);
> - else
> + /*
> + * GENTLE_FAIR_SLEEPERS have no effect without
> + * FAIR_SLEEPERS.
> + */
> + if (strncmp(cmp, "FAIR_SLEEPERS",
> + strlen("FAIR_SLEEPERS")) == 0)
> + sysctl_sched_features &= ~(1UL << i+1);
> + } else {
> sysctl_sched_features |= (1UL << i);
> + if (strncmp(cmp, "GENTLE_FAIR_SLEEPERS",
> + strlen("GENTLE_FAIR_SLEEPERS"))
> + == 0)
> + sysctl_sched_features |= (1UL << i-1);
> + }
> break;
> }
> }
There's a lot of other dependencies between scheduler features so it's
possible to change it without it having an effect on the scheduler.
sched_features is really a development/debugging facility, you have to
know what you are doing.
Might be worth adding a comment to the feature definition place itself
in the source - explain what it does and how it makes sense (and how it
doesnt).
Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists