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

From: Peter Zijlstra
Date: Wed Dec 16 2015 - 08:50:11 EST


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/