lkml.org 
[lkml]   [2008]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] revert: timers: fix itimer/many thread hang

* Peter Zijlstra <peterz@infradead.org> 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


\
 
 \ /
  Last update: 2008-11-06 22:47    [W:0.116 / U:0.528 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site