lkml.org 
[lkml]   [2006]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Patch][RFC] Disabling per-tgid stats on task exit in taskstats
Andrew Morton wrote:

>On Fri, 23 Jun 2006 15:07:28 -0700
>Jay Lan <jlan@engr.sgi.com> wrote:
>
>
>
>>>> %ovhd of tgid on over off
>>>> (higher is worse)
>>>>
>>>>Exit User Sys Elapsed
>>>>Rate Time Time Time
>>>>
>>>>2283 25.76 649.41 -0.14
>>>>1193 -10.53 88.81 -0.12
>>>>963 -11.90 3.28 -0.10
>>>>806 -8.54 -0.84 0.16
>>>>694 -4.41 2.38 0.03
>>>>
>>>>
>>>>
>>>Oh wow. Something's gone quadratic there.
>>>
>>>
>>>
>>It was due to a loop in fill_tgid() when per-TG stats
>>data are assembled for netlink:
>> do {
>> rc = delayacct_add_tsk(stats, tsk);
>> if (rc)
>> break;
>>
>> } while_each_thread(first, tsk);
>>
>>and it is executed inside a lock.
>>Fortunately single threaded appls do not hit this code.
>>
>>
>
>Am I reading this right? We do that loop when each thread within the
>thread group exits?
>
Yes.

> How come?
>
>
To get the sum of all per-tid data for threads that are currently alive.
This is returned to userspace with each thread exit.

>Is there some better lock we can use in there? It only has to be
>threadgroup-wide rather than kernel-wide.
>
>
The lock we're holding is the tasklist_lock. To go through all the
threads of a thread group
thats the only lock that can protect integrity of while_each_thread afaics.

--Shailabh


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

\
 
 \ /
  Last update: 2006-06-24 05:02    [W:0.130 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site