[PATCH 07/14] sched: agressively pack at wake/fork/exec
Peter Zijlstra
peterz at infradead.org
Fri Apr 26 09:08:35 EDT 2013
On Thu, Apr 25, 2013 at 07:23:23PM +0200, Vincent Guittot wrote:
> According to the packing policy, the scheduler can pack tasks at different
> step:
> -SCHED_PACKING_NONE level: we don't pack any task.
> -SCHED_PACKING_DEFAULT: we only pack small tasks at wake up when system is not
> busy.
> -SCHED_PACKING_FULL: we pack tasks at wake up until a CPU becomes full. During
> a fork or a exec, we assume that the new task is a full running one and we
> look for an idle CPU close to the buddy CPU.
This changelog is very short on explaining how it will go about achieving these
goals.
> Signed-off-by: Vincent Guittot <vincent.guittot at linaro.org>
> ---
> kernel/sched/fair.c | 47 ++++++++++++++++++++++++++++++++++++++++++-----
> 1 file changed, 42 insertions(+), 5 deletions(-)
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 98166aa..874f330 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -3259,13 +3259,16 @@ static struct sched_group *
> find_idlest_group(struct sched_domain *sd, struct task_struct *p,
So for packing into power domains, wouldn't you typically pick the busiest non-
full domain to fill from other non-full?
Picking the idlest non-full seems like it would generate a ping-pong or not
actually pack anything.
More information about the linux-arm-kernel
mailing list