Messages in this thread | | | From | Paul Turner <> | Date | Fri, 17 Feb 2012 05:00:26 -0800 | Subject | Re: [RFC PATCH 05/14] sched: account for blocked load waking back up |
| |
On Thu, Feb 16, 2012 at 7:57 AM, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote: > On Wed, 2012-02-01 at 17:38 -0800, Paul Turner wrote: >> + if (se->avg.decay_count) { >> + /* >> + * In a wake-up migration we have to approximate the >> + * time sleeping. >> + */ >> + se->avg.last_runnable_update -= (-se->avg.decay_count) >> + << 20; >> + update_entity_load_avg(se, 0); >> + } > > That comment wants more why and how. I think I remember pjt telling me > about this last week, but those are already vague memories, I'll be sure > to be completely clueless in another week.
The full reason is short enough to practically supplant the existing comment: We can't synchronize clock_task between our old-cpu and our new [don't have the locks and 32-bit says you can't have nice things], so we can use our carried decays (which we can grab atomically for exactly this reason) to approximate that.
I'll update appropriately. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |