[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190802152157.7fp775lg7tbm5rec@e107158-lin.cambridge.arm.com>
Date: Fri, 2 Aug 2019 16:21:58 +0100
From: Qais Yousef <qais.yousef@....com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: mingo@...nel.org, linux-kernel@...r.kernel.org,
Geert Uytterhoeven <geert@...ux-m68k.org>,
Thomas Gleixner <tglx@...utronix.de>
Subject: Re: [PATCH 0/5] Fix FIFO-99 abuse
On 08/02/19 16:33, Peter Zijlstra wrote:
> > > Also also, RR-SMP is actually broken (and nobody has cared enough to
> > > bother fixing it).
> >
> > If you can give me enough pointers to understand the problem I might be able to
> > bother with it :-)
>
> So the push-pull balancer we have (designed for FIFO but also applied to
> RR) will only move a task if the destination CPU has a lower prio. In
> the case where one CPU has 3 tasks and the other 1, and they're all the
> same prio, it does nothing. For FIFO that is fine, for RR, not so much.
>
> Because then the one CPU will RR between 3 tasks, giving each task
> 1/3rd, while the other will only run the one task.
Okay so what we need to do is keep a count of number of RR tasks on each CPU
(which we already do IIRC) and take that into account in
find_loweset_rq()/cpupri_find().
Let me see if I can create a test case then hack something.
Thanks
--
Qais Yousef
Powered by blists - more mailing lists