Re: [PATCH RFC/TEST] sched: make sync affine wakeups work

From: Mike Galbraith
Date: Fri May 02 2014 - 07:27:20 EST


On Fri, 2014-05-02 at 06:56 -0400, Rik van Riel wrote:
> On 05/02/2014 03:37 AM, Mike Galbraith wrote:
> > On Fri, 2014-05-02 at 02:30 -0400, Rik van Riel wrote:
> >> On 05/02/2014 02:13 AM, Mike Galbraith wrote:
> >>> On Fri, 2014-05-02 at 00:42 -0400, Rik van Riel wrote:
> >>>
> >>>> Whether or not this is the right thing to do remains to be seen,
> >>>> but it does allow us to verify whether or not the wake_affine
> >>>> strategy of always doing affine wakeups and only disabling them
> >>>> in a specific circumstance is sound, or needs rethinking...
> >>>
> >>> Yes, it needs rethinking.
> >>>
> >>> I know why you want to try this, yes, select_idle_sibling() is very much
> >>> a two faced little bitch.
> >>
> >> My biggest problem with select_idle_sibling and wake_affine in
> >> general is that it will override NUMA placement, even when
> >> processes only wake each other up infrequently...
> >
> > Hm, seems the thing to do would be to tell select_task_rq_fair() to keep
> > it's mitts off of tasks that the numasched stuff has placed rather than
> > decapitating select_idle_sibling() or some other drastic measure.
>
> Thing is, if tasks are waking each other up frequently enough, we
> probably DO want to place them near each other with select_idle_sibling.

Right. I'm thinking you could perhaps create a sched feature like
NUMA_ME_HARDER or such so you can tell it to go away if you find that
your load performs best when movement is left entirely up to the NUMA
placement code.

> We just cannot afford to have it as the default behaviour for casual
> wakeup activity, because it will mess up other things.

I think it is generally good, but yes, it has its bad it's bad side, why
we have tweakables.

-Mike

--
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/