Re: [Patch][RFC] Disabling per-tgid stats on task exit in taskstats

Jay Lan
2006-06-23T22:07:26Z

Andrew Morton wrote:
>On Fri, 23 Jun 2006 13:14:41 -0400
>Shailabh Nagar <nagar@watson.ibm.com> wrote:
>
>
>>The results show that differential between tgid on and off
>>starts becoming significant once the exit rate crosses roughly 1000
>>threads/second. Below that exit rate, the difference is negligible.
>>Above it, the difference starts climbing rapidly.
>>
>>So I guess the question is whether this rate of exit is representative
>>enough of real life to warrant making any more changes to the existing
>>patchset, beyond the locking changes in 2. above.
>>
>>>From my limited experience, I think this is too high an exit rate
>>to be worrying about overhead.
>>
>>
>
>1000/sec isn't terribly high. CGI servers, shell scripts.
>
>And kernel development ;) A `pushpatch 1500' here does 992 fork/exec/exit
>per second.
>
>
>> %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.

- jay