Re: [RFC,v2 3/3] sched: ignore task_h_load for CPU_NEWLY_IDLE

From: Peter Zijlstra
Date: Mon Feb 13 2017 - 08:52:06 EST


On Thu, Feb 09, 2017 at 07:54:05PM +0100, Uladzislau Rezki wrote:

> > Does this patch make an actual difference, if so how much and with
> > what workload?
> >
> Yes, it does. I see a slight improvement when it comes to frame drops
> (in my case drops per/two seconds). Basically a test case is left finger
> swipe on the display (21 times, duration is 2 seconds + 1 second sleep
> between iterations):
>
> 0 Framedrops: 7 5
> 1 Framedrops: 5 3
> 2 Framedrops: 8 5
> 3 Framedrops: 4 5
> 4 Framedrops: 3 3
> 5 Framedrops: 6 4
> 6 Framedrops: 3 2
> 7 Framedrops: 3 4
> 8 Framedrops: 5 3
> 9 Framedrops: 3 3
> 10 Framedrops: 7 4
> 11 Framedrops: 3 4
> 12 Framedrops: 3 3
> 13 Framedrops: 3 3
> 14 Framedrops: 3 5
> 15 Framedrops: 7 3
> 16 Framedrops: 5 3
> 17 Framedrops: 3 2
> 18 Framedrops: 5 3
> 19 Framedrops: 4 3
> 20 Framedrops: 3 2
>
> max is 8 vs 5; min is 2 vs 3.
>
> As for applied load, it is not significant and i would say is "light".

So that is useful information that should have been in the Changelog.

OK, can you respin this patch with adjusted Changelog and taking Mike's
feedback?

Also, I worry about the effects of this on !PREEMPT kernels, the first
hunk (which explicitly states is about latency) should be under
CONFIG_PREEMPT to match the similar case we already have in
detach_tasks().

But your second hunk, which ignores the actual load of tasks in favour
of just moving _something_ already, is utterly dangerous if not coupled
with these two other conditions, so arguably that too should be under
CONFIG_PREEMPT.