Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd62287e authored by Mike Galbraith's avatar Mike Galbraith Committed by Ingo Molnar
Browse files

sched, cgroups: Fix MIN_SHARES on 64-bit boxen



Commit c8b28116 ("sched: Increase SCHED_LOAD_SCALE resolution")
intended to have no user-visible effect, but allows setting
cpu.shares to < MIN_SHARES, which the user then sees.

Signed-off-by: default avatarMike Galbraith <efault@gmx.de>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Nikhil Rao <ncrao@google.com>
Link: http://lkml.kernel.org/r/1307192600.8618.3.camel@marge.simson.net


Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent daf54f1f
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -292,8 +292,8 @@ static DEFINE_SPINLOCK(task_group_lock);
 * (The default weight is 1024 - so there's no practical
 *  limitation from this.)
 */
#define MIN_SHARES	2
#define MAX_SHARES	(1UL << (18 + SCHED_LOAD_RESOLUTION))
#define MIN_SHARES	(1UL <<  1)
#define MAX_SHARES	(1UL << 18)

static int root_task_group_load = ROOT_TASK_GROUP_LOAD;
#endif
@@ -8450,10 +8450,7 @@ int sched_group_set_shares(struct task_group *tg, unsigned long shares)
	if (!tg->se[0])
		return -EINVAL;

	if (shares < MIN_SHARES)
		shares = MIN_SHARES;
	else if (shares > MAX_SHARES)
		shares = MAX_SHARES;
	shares = clamp(shares, scale_load(MIN_SHARES), scale_load(MAX_SHARES));

	mutex_lock(&shares_mutex);
	if (tg->shares == shares)