lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ