Re: sched : performance regression 24% between 4.4rc4 and 4.3 kernel

From: Jirka Hladky
Date: Wed Dec 16 2015 - 12:04:33 EST


Hi Peter,

you are right the kernel 4.4-rc4 has it already fixed. It seems I
will need to redo the bisecting once again, starting with
2a595721a1fa6b684c1c818f379bef834ac3d65e

git bisect start -- kernel/sched
git bisect bad v4.4-rc4
git bisect good 2b49d84b259fc18e131026e5d38e7855352f71b9
Bisecting: 32 revisions left to test after this (roughly 5 steps)
[da7142e2ed735e1c1bef5a757dc55de35c65fbd6] sched/core: Simplify
preempt_count tests

I will let you know the outcome.

Jirka


On Wed, Dec 16, 2015 at 2:50 PM, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:
> On Wed, Dec 16, 2015 at 01:56:17PM +0100, Jirka Hladky wrote:
>> Hi Rik,
>>
>> I have redone the bisecting and have new results:
>>
>> # first bad commit: [2a595721a1fa6b684c1c818f379bef834ac3d65e]
>> sched/numa: Convert sched_numa_balancing to a static_branch
>>
>> Could you please have a look what went wrong?
>
> The below is obviously wrong, but your kernel should have that patch.
>
> So if you revert this patch (ie. go back to the regular variable) it
> works again?
>
> ---
>
> commit b52da86e0ad58f096710977fcda856fd84da9233
> Author: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
> Date: Fri Oct 2 07:48:25 2015 +0530
>
> sched/numa: Fix task_tick_fair() from disabling numa_balancing
>
> If static branch 'sched_numa_balancing' is enabled, it should kickstart
> NUMA balancing through task_tick_numa(). However the following commit:
>
> 2a595721a1fa ("sched/numa: Convert sched_numa_balancing to a static_branch")
>
> erroneously disables this.
>
> Fix this anomaly by enabling task_tick_numa() when the static branch
> 'sched_numa_balancing' is enabled.
>
> Signed-off-by: Srikar Dronamraju <srikar@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Mel Gorman <mgorman@xxxxxxx>
> Cc: Mike Galbraith <efault@xxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Rik van Riel <riel@xxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Link: http://lkml.kernel.org/r/1443752305-27413-1-git-send-email-srikar@xxxxxxxxxxxxxxxxxx
> Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
>
> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
> index 4df37a48f499..3bdc3da7bc6a 100644
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -7881,7 +7881,7 @@ static void task_tick_fair(struct rq *rq, struct task_struct *curr, int queued)
> entity_tick(cfs_rq, se, queued);
> }
>
> - if (!static_branch_unlikely(&sched_numa_balancing))
> + if (static_branch_unlikely(&sched_numa_balancing))
> task_tick_numa(rq, curr);
> }
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/