diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2006-10-28 13:38:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-10-28 14:30:54 -0400 |
commit | 17b02695b254aa2ef0e53df9c8e6548f86e66a9d (patch) | |
tree | 6d39c830549641e3b73ad8881f0aecbd1d680ee6 /include | |
parent | 093a8e8aecd77b2799934996a55a6838e1e2b8f3 (diff) |
[PATCH] taskstats_tgid_alloc: optimization
Every subthread (except first) does unneeded kmem_cache_alloc/kmem_cache_free.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Shailabh Nagar <nagar@watson.ibm.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Cc: Jay Lan <jlan@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/taskstats_kern.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/taskstats_kern.h b/include/linux/taskstats_kern.h index a437ca0d226b..664224008fb2 100644 --- a/include/linux/taskstats_kern.h +++ b/include/linux/taskstats_kern.h | |||
@@ -32,6 +32,9 @@ static inline void taskstats_tgid_alloc(struct signal_struct *sig) | |||
32 | struct taskstats *stats; | 32 | struct taskstats *stats; |
33 | unsigned long flags; | 33 | unsigned long flags; |
34 | 34 | ||
35 | if (sig->stats != NULL) | ||
36 | return; | ||
37 | |||
35 | stats = kmem_cache_zalloc(taskstats_cache, SLAB_KERNEL); | 38 | stats = kmem_cache_zalloc(taskstats_cache, SLAB_KERNEL); |
36 | if (!stats) | 39 | if (!stats) |
37 | return; | 40 | return; |