Messages in this thread | | | Date | Thu, 16 Aug 2012 21:32:45 +0600 | Subject | Re: Add rq->nr_uninterruptible count to dest cpu's rq while CPU goes down. | From | Rakib Mullick <> |
| |
On 8/16/12, Peter Zijlstra <peterz@infradead.org> wrote: > On Thu, 2012-08-16 at 20:28 +0600, Rakib Mullick wrote: > >> nr_uninterruptible is coupled with tasks on the runqueue to calculate >> nr_active numbers. > > It is not.. nr_uninterruptible is incremented on the cpu the task goes > to sleep and decremented on the cpu doing the wakeup. > If nr_uninterruptible's life cycle is this simple then, while CPU goes down, nr_uninterruptible count will be decremented when all the tasks are moved to other CPUs and should be fine.
> This means that nr_uninterruptible is a complete mess and any per-cpu > value isn't meaningful at all. > Well, if nr_uninterruptible is a mess, then this patch has no meaning. And also I think migrate_nr_uninterruptible() is meaning less too.
> It is quite possible to always have the inc on cpu0 and the decrement on > cpu1, yielding results like: > > {1000, -1000} for an effective nr_uninterruptible = 0. Taking either cpu > down will then migrate whatever delta it has to another cpu, but there > might only be a single task, yet the delta is +-1000. > >> In calc_load_fold_active(), this nr_active numbers are used to >> calculate delta. This is how I understand this part and seeing some >> impact. > > You understand wrong, please re-read the comment added in commit > 5167e8d5. > Yes, reading.
Thanks, Rakib.
| |