public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jay Lan <jlan@engr.sgi.com>
To: Shailabh Nagar <nagar@watson.ibm.com>
Cc: Andrew Morton <akpm@osdl.org>,
	balbir@in.ibm.com, jlan@sgi.com, csturtiv@sgi.com,
	linux-kernel@vger.kernel.org
Subject: Re: [Patch][RFC]  Disabling per-tgid stats on task exit in taskstats
Date: Fri, 09 Jun 2006 15:42:06 -0700	[thread overview]
Message-ID: <4489F93E.6070509@engr.sgi.com> (raw)
In-Reply-To: <4489EE7C.3080007@watson.ibm.com>

Shailabh Nagar wrote:
>Andrew Morton wrote:
>  
>>You see the problem - if one userspace package wants the tgid-stats and
>>another concurrently-running one does now, what do we do?  Just leave it
>>enabled and run a bit slower?
>>
>>If so, how much slower?  Your changelog says some potential users don't
>>need the tgid-stats, but so what?  I assume this patch is a performance
>>thing?  If so, has it been quantified?
>>    
>
>
>Here are some results from running a simple program (source below) that does
>10 iterations of creating and then destroying 1000 threads. On the side, another utility
>kept reading the pid (+tgid if present) stats from exiting tasks.
>
>
>	Yes	No	Ovhd
>user	0.14	0.15	-6%
>system	1.61	1.54	+5%
>elapsed	2.01	1.94	+3%
>
>Yes = tgid stats printed on exit
>No = not printed
>Ovhd = (Yes-No)/No * 100
>
>So even in this extreme case where the per-tgid stats are indeed
>half of the total data, the overhead is not very significant.
>
>As pointed out earlier, more representative cases are
>- single threaded apps (e.g. make -jX) where the current
>taskstats interface already optimizes by not sending redundant per-tgid stats, or
>  

How is it done?

In do_exit(), you have taskstats_exit_send(tsk, tidstats, tgidstats).
The tgid data would not be sent if
    not is_thread_group, or tgidstats is NULL.

The tgidstats is allocated within do_exit() also in
taskstats_exit_alloc(&tidstats, &tgidstats) and it seems to me
there is no flag to fail the memory allocation. Since tgidstats pointer
is valid, the data will be sent always.

Not filling up the tgid data fields would end up sending bunch of 0's
down to the userland.

>- server-type multithreaded apps where the exits are going to be relatively infrequent (due to
>reuse of thread pools) so the extra per-tgid output is not going to have much impact.
>  

I can expect to see our customers running highly multithreaded apps,
although i do not know whether those applications use the thread pools.

>I'd suggest we drop the idea of including this patch until we have data showing that
>the overhead is an issue.
>  

I do not have CSA kernel patch to test until some time next week to run
some tests. If we agree that it is a good idea to provide such an option, we
should proceed with that.

I found we should not mix tgid stats data and various subsystem stats
data defined in taststats struct together in our discussion. These are two
different things. On exit of each task, we would send one taskstats struct
data for the pid and also another taskstats struct for tgid. Within
the taskstats struct, we have data for delayacct, essential common
accting data (such as utime, stime, start_time, etc both BSD and CSA
would need), and data mostly used by CSA.
If we (including Andrew) decide to adopt taskstats as the common
accounting interface, we all need to live with taskstats struct. But, that
doea not mean we need to have both per-pid and per-tgid stats on every
process exit.

If you can show me how to not sending per-tgid with current patchset,
i would be very happy to drop this request.

Thanks!
 - jay

>--Shailabh
>
>
>
>#include <stdio.h>
>#include <stdlib.h>
>#include <sys/types.h>
>#include <unistd.h>
>#include <pthread.h>
>
>int n;
>
>void *slow_exit(void *arg)
>{
>	int i = (int) arg;
>	usleep((n-i)*2);
>}
>
>int main(int argc, char *argv[])
>{
>	int i,rc, rep;
>	pthread_t *ppthread;
>	
>	n = 5 ;
>	if (argc > 1)
>		n = atoi(argv[1]);
>
>	rep = 10;
>	if (argc > 2)
>		rep = atoi(argv[2]);
>
>	ppthread = malloc(n * sizeof(pthread_t));
>	if (ppthread == NULL) {
>		printf("Memory allocation failure\n");
>		exit(-1);
>	}
>
>	while (rep) {
>		for (i=0; i<n; i++) {
>			rc = pthread_create(&ppthread[i], NULL,
>					    slow_exit, (void *)i);
>			if (rc) {
>				printf("Error creating thread %d\n", i);
>				exit(-1);
>			}
>		}
>		for (i=0; i<n; i++) {
>			rc = pthread_join(ppthread[i], NULL);
>			if (rc) {
>				printf("Error joining thread %d\n", i);
>				exit(-1);
>			}
>		}
>		rep--;
>	}
>}
>
>
>
>  


  reply	other threads:[~2006-06-09 22:42 UTC|newest]

Thread overview: 134+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-09  7:41 [Patch][RFC] Disabling per-tgid stats on task exit in taskstats Shailabh Nagar
2006-06-09  8:00 ` Andrew Morton
2006-06-09 10:51   ` Balbir Singh
2006-06-09 11:21     ` Andrew Morton
2006-06-09 13:20       ` Shailabh Nagar
2006-06-09 18:25         ` Jay Lan
2006-06-09 19:12           ` Shailabh Nagar
2006-06-09 15:36       ` Balbir Singh
2006-06-09 18:35         ` Jay Lan
2006-06-09 19:31           ` Shailabh Nagar
2006-06-09 21:56       ` Shailabh Nagar
2006-06-09 22:42         ` Jay Lan [this message]
2006-06-09 23:22           ` Andrew Morton
2006-06-09 23:47             ` Jay Lan
2006-06-09 23:56               ` Andrew Morton
2006-06-10 12:21               ` Shailabh Nagar
2006-06-12 18:31                 ` Jay Lan
2006-06-12 21:57                   ` Shailabh Nagar
2006-06-10 13:05               ` Shailabh Nagar
2006-06-12 18:54                 ` Jay Lan
2006-06-21 19:11         ` Jay Lan
2006-06-21 19:14           ` Jay Lan
2006-06-21 19:34             ` Shailabh Nagar
2006-06-21 23:35               ` Jay Lan
2006-06-21 23:45                 ` Shailabh Nagar
2006-06-23 17:14                 ` Shailabh Nagar
2006-06-23 18:19                   ` Jay Lan
2006-06-23 18:53                     ` Shailabh Nagar
2006-06-23 20:00                       ` Jay Lan
2006-06-23 20:16                         ` Shailabh Nagar
2006-06-23 20:36                           ` Jay Lan
2006-06-23 21:19                   ` Andrew Morton
2006-06-23 22:07                     ` Jay Lan
2006-06-23 23:47                       ` Andrew Morton
2006-06-24  2:59                         ` Shailabh Nagar
2006-06-24  4:39                           ` Andrew Morton
2006-06-24  5:59                             ` Shailabh Nagar
2006-06-26 17:33                               ` Jay Lan
2006-06-26 17:52                                 ` Shailabh Nagar
2006-06-26 17:55                                 ` Andrew Morton
2006-06-26 18:00                                   ` Shailabh Nagar
2006-06-26 18:12                                     ` Andrew Morton
2006-06-26 18:26                                       ` Jay Lan
2006-06-26 18:39                                         ` Andrew Morton
2006-06-26 18:49                                           ` Shailabh Nagar
2006-06-26 19:00                                           ` Jay Lan
2006-06-28 21:30                                           ` Jay Lan
2006-06-28 21:53                                             ` Andrew Morton
2006-06-28 22:02                                               ` Jay Lan
2006-06-29  8:40                                                 ` Paul Jackson
2006-06-29 12:30                                                   ` Valdis.Kletnieks
2006-06-29 16:44                                                     ` Paul Jackson
2006-06-29 18:01                                                       ` Andrew Morton
2006-06-29 18:07                                                         ` Paul Jackson
2006-06-29 18:26                                                         ` Paul Jackson
2006-06-29 19:15                                                           ` Shailabh Nagar
2006-06-29 19:41                                                             ` Paul Jackson
2006-06-29 21:42                                                               ` Shailabh Nagar
2006-06-29 21:54                                                                 ` Jay Lan
2006-06-29 22:09                                                                   ` Shailabh Nagar
2006-06-29 22:23                                                                 ` Paul Jackson
2006-06-30  0:15                                                                   ` Shailabh Nagar
2006-06-30  0:40                                                                     ` Paul Jackson
2006-06-30  1:00                                                                       ` Shailabh Nagar
2006-06-30  1:05                                                                         ` Paul Jackson
     [not found]                                                                   ` <44A46C6C.1090405@watson.ibm.com>
2006-06-30  0:38                                                                     ` Paul Jackson
2006-06-30  2:21                                                                       ` Paul Jackson
2006-06-30  2:46                                                                         ` Shailabh Nagar
2006-06-30  2:54                                                                           ` Paul Jackson
2006-06-30  3:02                                                                           ` Paul Jackson
2006-06-29 19:22                                                           ` Shailabh Nagar
2006-06-29 19:10                                                         ` Shailabh Nagar
2006-06-29 19:23                                                           ` Paul Jackson
2006-06-29 19:33                                                           ` Andrew Morton
2006-06-29 19:43                                                             ` Shailabh Nagar
2006-06-29 20:00                                                               ` Andrew Morton
2006-06-29 22:13                                                                 ` Shailabh Nagar
2006-06-29 23:00                                                                   ` jamal
2006-06-29 20:01                                                             ` Shailabh Nagar
2006-06-29 21:22                                                               ` Paul Jackson
2006-06-29 22:54                                                               ` jamal
2006-06-30  0:38                                                                 ` Shailabh Nagar
2006-06-30  1:05                                                                   ` Andrew Morton
2006-06-30  1:11                                                                     ` Shailabh Nagar
2006-06-30  1:30                                                                       ` jamal
2006-06-30  3:01                                                                         ` Shailabh Nagar
2006-06-30 12:45                                                                           ` jamal
2006-06-30  2:25                                                                     ` Paul Jackson
2006-06-30  2:35                                                                       ` Andrew Morton
2006-06-30  2:43                                                                         ` Paul Jackson
2006-06-29 19:33                                                         ` Jay Lan
2006-06-30 18:53                                                         ` Shailabh Nagar
2006-06-30 19:10                                                           ` Shailabh Nagar
2006-06-30 19:19                                                             ` Shailabh Nagar
2006-06-30 20:19                                                             ` jamal
2006-06-30 22:50                                                             ` Andrew Morton
2006-07-01  2:20                                                               ` Shailabh Nagar
2006-07-01  2:43                                                                 ` Andrew Morton
2006-07-01  3:37                                                                   ` Shailabh Nagar
2006-07-01  3:51                                                                     ` Andrew Morton
2006-07-03 21:11                                                                       ` Shailabh Nagar
2006-07-03 21:41                                                                         ` Andrew Morton
2006-07-04  0:13                                                                           ` Shailabh Nagar
2006-07-04  0:38                                                                             ` Andrew Morton
2006-07-04 20:19                                                                           ` Paul Jackson
2006-07-04 20:22                                                                             ` Paul Jackson
2006-07-04  0:54                                                                         ` Shailabh Nagar
2006-07-04  1:01                                                                           ` Andrew Morton
2006-07-04 13:05                                                                             ` jamal
2006-07-04 15:18                                                                               ` Shailabh Nagar
2006-07-04 16:37                                                                                 ` Shailabh Nagar
2006-07-04 19:24                                                                                   ` jamal
2006-07-05 14:09                                                                                     ` Shailabh Nagar
2006-07-05 20:25                                                                                       ` Chris Sturtivant
2006-07-05 20:32                                                                                         ` Shailabh Nagar
2006-07-03  4:53                                                                     ` Paul Jackson
2006-07-03 15:02                                                                       ` Shailabh Nagar
2006-07-03 15:55                                                                         ` Paul Jackson
2006-07-03 16:31                                                                         ` Paul Jackson
2006-07-04  0:09                                                                           ` Shailabh Nagar
2006-07-04 19:59                                                                             ` Paul Jackson
2006-07-05 17:20                                                                         ` Jay Lan
2006-07-05 18:18                                                                           ` Shailabh Nagar
2006-06-30 22:56                                                           ` Andrew Morton
2006-06-29 18:05                                                       ` Nick Piggin
2006-06-29 12:42                                                 ` Shailabh Nagar
2006-06-24  3:08                     ` Shailabh Nagar
2006-06-21 20:38           ` Andrew Morton
2006-06-21 21:31             ` Shailabh Nagar
2006-06-21 21:45               ` Jay Lan
2006-06-21 21:54                 ` Andrew Morton
2006-06-21 22:19                   ` Jay Lan
2006-06-21 21:59                 ` Shailabh Nagar
2006-06-09 15:55 ` Chris Sturtivant

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4489F93E.6070509@engr.sgi.com \
    --to=jlan@engr.sgi.com \
    --cc=akpm@osdl.org \
    --cc=balbir@in.ibm.com \
    --cc=csturtiv@sgi.com \
    --cc=jlan@sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nagar@watson.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox