All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
To: mingo@elte.hu, linux-kernel@vger.kernel.org
Cc: mitake@dcl.info.waseda.ac.jp, rusty@rustcorp.com.au,
	a.p.zijlstra@chello.nl, paulus@samba.org, efault@gmx.de,
	acme@redhat.com, fweisbec@gmail.com, jkosina@suse.cz
Subject: Re: [PATCH] perf bench:Fix bench/sched-pipe.c to wait child process
Date: Mon, 09 Nov 2009 12:18:36 +0900 (JST)	[thread overview]
Message-ID: <20091109.121836.719610044276873093.mitake@dcl.info.waseda.ac.jp> (raw)
In-Reply-To: <1257736388-7303-1-git-send-email-mitake@dcl.info.waseda.ac.jp>

From: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
Subject: [PATCH] perf bench:Fix bench/sched-pipe.c to wait child process
Date: Mon,  9 Nov 2009 12:13:08 +0900

Sorry, the title lacks space after "perf bench:".
I'll send new fixed one, please discard this.

> Fixed bench/sched-pipe.c to avoid the below case
> notified by Ingo Molnar,
> 
> ---
> 
> $ ./perf bench sched pipe
> (executing 1000000 pipe operations between two tasks)
> 
> 	Total time:4.898 sec
> $ 		4.898586 usecs/op
> 		204140 ops/sec
> 
> the shell prompt came back before the usecs/op and ops/sec line was
> printed. Process teardown race, lack of wait() or so?
> 
> ---
> 
> This caused by lack of calling waitpid() by parent process,
> so I added it.
> 
> Signed-off-by: Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
> Cc: Rusty Russell <rusty@rustcorp.com.au>
> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Cc: Paul Mackerras <paulus@samba.org>
> Cc: Mike Galbraith <efault@gmx.de>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Jiri Kosina <jkosina@suse.cz>
> ---
>  tools/perf/bench/sched-pipe.c |   10 +++++++---
>  1 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/perf/bench/sched-pipe.c b/tools/perf/bench/sched-pipe.c
> index 3214ed2..6a29100 100644
> --- a/tools/perf/bench/sched-pipe.c
> +++ b/tools/perf/bench/sched-pipe.c
> @@ -26,6 +26,7 @@
>  #include <errno.h>
>  #include <assert.h>
>  #include <sys/time.h>
> +#include <sys/types.h>
>  
>  #define LOOPS_DEFAULT 1000000
>  static int loops = LOOPS_DEFAULT;
> @@ -58,8 +59,8 @@ int bench_sched_pipe(int argc, const char **argv,
>  	 * discarding returned value of read(), write()
>  	 * causes error in building environment for perf
>  	 */
> -	int ret;
> -	pid_t pid;
> +	int ret, wait_stat;
> +	pid_t pid, retpid;
>  
>  	argc = parse_options(argc, argv, options,
>  			     bench_sched_pipe_usage, 0);
> @@ -87,8 +88,11 @@ int bench_sched_pipe(int argc, const char **argv,
>  	gettimeofday(&stop, NULL);
>  	timersub(&stop, &start, &diff);
>  
> -	if (pid)
> +	if (pid) {
> +		retpid = waitpid(pid, &wait_stat, 0);
> +		assert((retpid == pid) && WIFEXITED(wait_stat));
>  		return 0;
> +	}
>  
>  	if (simple)
>  		printf("%lu.%03lu\n",
> -- 
> 1.6.5.2
> 
> 

  reply	other threads:[~2009-11-09  3:18 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-05  0:31 [PATCH v5 0/7] Adding general performance benchmarking subcommand to perf Hitoshi Mitake
2009-11-05  0:31 ` [PATCH v5 1/7] Adding new directory and header for new subcommand 'bench' Hitoshi Mitake
2009-11-05  0:31   ` [PATCH v5 2/7] sched-messaging.c: benchmark for scheduler and IPC mechanisms based on hackbench Hitoshi Mitake
2009-11-05  0:31     ` [PATCH v5 3/7] sched-pipe.c: benchmark for pipe() system call Hitoshi Mitake
2009-11-05  0:31       ` [PATCH v5 4/7] builtin-bench.c: General framework for benchmark suites Hitoshi Mitake
2009-11-05  0:31         ` [PATCH v5 5/7] Modifying builtin.h for new prototype Hitoshi Mitake
2009-11-05  0:31           ` [PATCH v5 6/7] Modyfing perf.c for subcommand 'bench' Hitoshi Mitake
2009-11-05  0:31             ` [PATCH v5 7/7] Modyfing Makefile to build " Hitoshi Mitake
2009-11-08  9:26               ` [tip:perf/bench] perf bench: Add subcommand 'bench' to the Makefile tip-bot for Hitoshi Mitake
2009-11-08  9:26             ` [tip:perf/bench] perf bench: Add new subcommand 'bench' to perf.c tip-bot for Hitoshi Mitake
2009-11-08  9:25           ` [tip:perf/bench] perf bench: Modify builtin.h for new prototype tip-bot for Hitoshi Mitake
2009-11-08  9:25         ` [tip:perf/bench] perf bench: Add builtin-bench.c: General framework for benchmark suites tip-bot for Hitoshi Mitake
2009-11-08  9:25       ` [tip:perf/bench] perf bench: Add sched-pipe.c: Benchmark for pipe() system call tip-bot for Hitoshi Mitake
2009-11-08  9:25     ` [tip:perf/bench] perf bench: Add sched-messaging.c: Benchmark for scheduler and IPC mechanisms based on hackbench tip-bot for Hitoshi Mitake
2009-11-08  9:24   ` [tip:perf/bench] perf bench: Add new directory and header for new subcommand 'bench' tip-bot for Hitoshi Mitake
2009-11-08  9:21 ` [PATCH v5 0/7] Adding general performance benchmarking subcommand to perf Ingo Molnar
2009-11-09  3:09   ` Hitoshi Mitake
2009-11-09  3:13     ` [PATCH] perf bench:Fix bench/sched-pipe.c to wait child process Hitoshi Mitake
2009-11-09  3:18       ` Hitoshi Mitake [this message]
2009-11-09  3:31         ` [PATCH] perf bench: Fix " Hitoshi Mitake
2009-11-09  9:28           ` [tip:perf/bench] perf bench: Fix bench/sched-pipe.c to wait for " tip-bot for Hitoshi Mitake

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=20091109.121836.719610044276873093.mitake@dcl.info.waseda.ac.jp \
    --to=mitake@dcl.info.waseda.ac.jp \
    --cc=a.p.zijlstra@chello.nl \
    --cc=acme@redhat.com \
    --cc=efault@gmx.de \
    --cc=fweisbec@gmail.com \
    --cc=jkosina@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=paulus@samba.org \
    --cc=rusty@rustcorp.com.au \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.