Re: [tip:sched/core] sched: Fix load avg vs cpu-hotplug

From: Peter Zijlstra
Date: Wed Sep 05 2012 - 08:37:01 EST


On Tue, 2012-09-04 at 11:43 -0700, tip-bot for Peter Zijlstra wrote:
> Commit-ID: f319da0c6894fcf55e21320e40506418a2aad629
> Gitweb: http://git.kernel.org/tip/f319da0c6894fcf55e21320e40506418a2aad629
> Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> AuthorDate: Mon, 20 Aug 2012 11:26:57 +0200
> Committer: Ingo Molnar <mingo@xxxxxxxxxx>
> CommitDate: Tue, 4 Sep 2012 14:30:18 +0200
>
> sched: Fix load avg vs cpu-hotplug
>
> Rabik and Paul reported two different issues related to the same few
> lines of code.
>
> Rabik's issue is that the nr_uninterruptible migration code is wrong in
> that he sees artifacts due to this (Rabik please do expand in more
> detail).
>
> Paul's issue is that this code as it stands relies on us using
> stop_machine() for unplug, we all would like to remove this assumption
> so that eventually we can remove this stop_machine() usage altogether.
>
> The only reason we'd have to migrate nr_uninterruptible is so that we
> could use for_each_online_cpu() loops in favour of
> for_each_possible_cpu() loops, however since nr_uninterruptible() is the
> only such loop and its using possible lets not bother at all.
>
> The problem Rabik sees is (probably) caused by the fact that by
> migrating nr_uninterruptible we screw rq->calc_load_active for both rqs
> involved.
>
> So don't bother with fancy migration schemes (meaning we now have to
> keep using for_each_possible_cpu()) and instead fold any nr_active delta
> after we migrate all tasks away to make sure we don't have any skewed
> nr_active accounting.

Oh argh.. this patch isn't actually right.. I actually removed it from
my series but forgot to update the tarball.

Ingo can you still make it go away or should I do a delta?
--
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/