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

From: Jirka Hladky
Date: Thu Dec 17 2015 - 10:43:53 EST


Hi Peter,

I'm not sure how to do the bisecting and avoid landing at:

[2a595721a1fa6b684c1c818f379bef834ac3d65e] sched/numa: Convert
sched_numa_balancing to a static_branch

I have redone the bisecting but I have landed again at this commit.
Can you please help me to identify the commit which has fixed for
2a595721a1fa6b684c1c818f379bef834ac3d65e ? I think I will need to
start the bisecting from there.

Thanks
Jirka

>
>
> On Wed, Dec 16, 2015 at 6:04 PM, Jirka Hladky <jhladky@xxxxxxxxxx> wrote:
>>
>> 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/