All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, acme@redhat.com, paulus@samba.org,
	hpa@zytor.com, mingo@redhat.com, a.p.zijlstra@chello.nl,
	rusty@rustcorp.com.au, efault@gmx.de,
	mitake@dcl.info.waseda.ac.jp, jkosina@suse.cz,
	fweisbec@gmail.com, tglx@linutronix.de, mingo@elte.hu
Subject: [tip:perf/bench] perf bench: Fix bench/sched-pipe.c to wait for child process
Date: Mon, 9 Nov 2009 09:28:00 GMT	[thread overview]
Message-ID: <tip-5ff0cfc67f00fe0feaa1da0b2359232ea4aa0ee7@git.kernel.org> (raw)
In-Reply-To: <1257737465-7546-1-git-send-email-mitake@dcl.info.waseda.ac.jp>

Commit-ID:  5ff0cfc67f00fe0feaa1da0b2359232ea4aa0ee7
Gitweb:     http://git.kernel.org/tip/5ff0cfc67f00fe0feaa1da0b2359232ea4aa0ee7
Author:     Hitoshi Mitake <mitake@dcl.info.waseda.ac.jp>
AuthorDate: Mon, 9 Nov 2009 12:31:05 +0900
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Mon, 9 Nov 2009 08:14:30 +0100

perf bench: Fix bench/sched-pipe.c to wait for child process

Ingo reported this small 'perf bench sched pipe' output problem:

 | $ ./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>
LKML-Reference: <1257737465-7546-1-git-send-email-mitake@dcl.info.waseda.ac.jp>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 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",

      reply	other threads:[~2009-11-09  9:28 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
2009-11-09  3:31         ` [PATCH] perf bench: Fix " Hitoshi Mitake
2009-11-09  9:28           ` tip-bot for Hitoshi Mitake [this message]

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=tip-5ff0cfc67f00fe0feaa1da0b2359232ea4aa0ee7@git.kernel.org \
    --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=hpa@zytor.com \
    --cc=jkosina@suse.cz \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=paulus@samba.org \
    --cc=rusty@rustcorp.com.au \
    --cc=tglx@linutronix.de \
    /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.