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: Mike Galbraith <efault@gmx.de>
Signed-off-by: Peter 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: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
daf54f1f36
commit
cd62287e36
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user