[Devel] [PATCH rh7 2/2] sched: Fix double put_prev_task_fair() because of trigger_cpulimit_balance()

Vladimir Davydov vdavydov at parallels.com
Thu Aug 20 08:38:59 PDT 2015


On Thu, Aug 20, 2015 at 06:22:40PM +0300, Kirill Tkhai wrote:
> On 20.08.2015 17:55, Vladimir Davydov wrote:
> > On Thu, Aug 20, 2015 at 05:22:31PM +0300, Kirill Tkhai wrote:
> >>
> >>
> >> On 20.08.2015 15:59, Vladimir Davydov wrote:
> >>> On Thu, Aug 20, 2015 at 02:27:05PM +0300, Kirill Tkhai wrote:
> >>> ...
> >>>> +static void pre_schedule_fair(struct rq *rq, struct task_struct *prev)
> >>>> +{
> >>>> +	trigger_cpulimit_balance(prev);
> >>>> +}
> >>>> +
> >>>
> >>> You don't remove trigger_cpulimit_balance call from put_prev_task_fair.
> >>> Do we still need it there? [The same question for PCS6 version of this
> >>> patch]
> >>
> >> I simulated the same behaviour as it used to be before. If we remove the
> >> trigger from put_prev_task_fair(), there will be a later cpulimit balancing
> >> in some cases.
> > 
> > I don't see any point in it. You call pre_schedule ->
> > trigger_cpulimit_balance, then immediately after it put_prev_task ->
> > trigger_cpulimit_balance again.
> > 
> 
> ->put_prev_task() is called from several places, not only from __schedule().
> I mean that. If you think we may skip these unlikely cases, I'll remove it
> from put_prev_task_fair(). Should we?

These cases are very rare, and we are not that precise anyway. That
said, it's better remove it in order not to clutter hot schedule().



More information about the Devel mailing list