Re: [PATCH] revert: timers: fix itimer/many thread hang

From: Ingo Molnar
Date: Thu Nov 06 2008 - 16:45:10 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> This patch reverts all the itimer/many thread patches:
>
> 7086efe1c1536f6bc160e7d60a9bfd645b91f279
> bb34d92f643086d546b49cef680f6f305ed84414
> 5ce73a4a5a4893a1aa4cdeed1b1a5a6de42c43b6
> 0a8eaa4f9b58759595a1bfe13a1295fdc25ba026
> f06febc96ba8e0af80bcc3eaec0a109e88275fac
>
> Because I think the per-cpu accounting approach is wrong and makes
> things worse for people with a machine that has more than a
> hand-full of CPUs.

hm, the revert is rather large but i guess the best way forward.
Unless we can avoid this loop:

- for_each_possible_cpu(i) {
- tot = per_cpu_ptr(tsk->signal->cputime.totals, i);
- times->utime = cputime_add(times->utime, tot->utime);
- times->stime = cputime_add(times->stime, tot->stime);
- times->sum_exec_runtime += tot->sum_exec_runtime;
- }

we have to revert it.

That loop could _perhaps_ be avoided by maintaining the sums from the
scheduler tick: by just adding the latest delta values for the current
task to times->*time. Plus at exit time cleaning up the remaining
delta. That would be a far smaller patch.

Ingo
--
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/