perf record: Introduce special handling for pipe output

Previous thread: perf: Make -f the default for perf record by Linux Kernel Mailing List on Tuesday, May 18, 2010 - 10:01 am. (1 message)

Next thread: sched: Remove NORMALIZED_SLEEPER by Linux Kernel Mailing List on Tuesday, May 18, 2010 - 10:02 am. (1 message)
From: Linux Kernel Mailing List
Date: Tuesday, May 18, 2010 - 10:01 am

Gitweb:     http://git.kernel.org/linus/529870e37473a9fc609078f03cc5b4148cf06a87
Commit:     529870e37473a9fc609078f03cc5b4148cf06a87
Parent:     8dc58101f2c838355d44402aa77646649d10dbec
Author:     Tom Zanussi <tzanussi@gmail.com>
AuthorDate: Thu Apr 1 23:59:16 2010 -0500
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Wed Apr 14 11:56:06 2010 +0200

    perf record: Introduce special handling for pipe output
    
    Adds special treatment for stdout - if the user specifies '-o -'
    to perf record, the intent is that the event stream be written
    to stdout rather than to a disk file.
    
    Also, redirect stdout of forked child to stderr - in pipe mode,
    stdout of the forked child interferes with the stdout perf
    stream, so redirect it to stderr where it can still be seen but
    won't be mixed in with the perf output.
    
    Signed-off-by: Tom Zanussi <tzanussi@gmail.com>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: fweisbec@gmail.com
    Cc: rostedt@goodmis.org
    Cc: k-keiichi@bx.jp.nec.com
    Cc: acme@ghostprotocols.net
    LKML-Reference: <1270184365-8281-3-git-send-email-tzanussi@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
 tools/perf/builtin-record.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index d060fc5..d4464f7 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -35,6 +35,7 @@ static unsigned int		page_size;
 static unsigned int		mmap_pages			=    128;
 static int			freq				=   1000;
 static int			output;
+static int			pipe_output			=      0;
 static const char		*output_name			= "perf.data";
 static int			group				=      0;
 static unsigned int		realtime_prio			=      0;
@@ -449,7 +450,9 @@ static int __cmd_record(int argc, const char **argv)
 		exit(-1);
 	}
 
-	if (!stat(output_name, &st) && st.st_size) {
+	if (!strcmp(output_name, "-"))
+		pipe_output = 1;
+	else ...
Previous thread: perf: Make -f the default for perf record by Linux Kernel Mailing List on Tuesday, May 18, 2010 - 10:01 am. (1 message)

Next thread: sched: Remove NORMALIZED_SLEEPER by Linux Kernel Mailing List on Tuesday, May 18, 2010 - 10:02 am. (1 message)