All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <jens.axboe@oracle.com>
To: Linux Kernel <linux-kernel@vger.kernel.org>
Cc: mingo@elte.hu
Subject: [PATCH] perf: add support for specifying profile cpu for record
Date: Wed, 12 Aug 2009 11:18:01 +0200	[thread overview]
Message-ID: <20090812091801.GC12579@kernel.dk> (raw)

Hi,

perf top supports a -C for setting the profile CPU, but perf record does
not. This adds the same option for perf record, allowing the user to
specify a specific target profile CPU.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 6da0992..8e85543 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -35,6 +35,7 @@ static const char		*output_name			= "perf.data";
 static int			group				= 0;
 static unsigned int		realtime_prio			= 0;
 static int			system_wide			= 0;
+static int			profile_cpu			= -1;
 static pid_t			target_pid			= -1;
 static int			inherit				= 1;
 static int			force				= 0;
@@ -425,6 +426,9 @@ try_again:
 
 		if (err == EPERM)
 			die("Permission error - are you root?\n");
+		else if (err ==  ENODEV && profile_cpu != -1)
+			die("No such device - did you specify an out-of-range"
+				" profile CPU?\n");
 
 		/*
 		 * If it's cycles then fall back to hrtimer
@@ -554,9 +558,13 @@ static int __cmd_record(int argc, const char **argv)
 		if (pid == -1)
 			pid = getpid();
 
-		open_counters(-1, pid);
-	} else for (i = 0; i < nr_cpus; i++)
-		open_counters(i, target_pid);
+		open_counters(profile_cpu, pid);
+	} else if (profile_cpu != -1)
+		open_counters(profile_cpu, target_pid);
+	else {
+		for (i = 0; i < nr_cpus; i++)
+			open_counters(i, target_pid);
+	}
 
 	if (file_new)
 		perf_header__write(header, output);
@@ -635,6 +643,8 @@ static const struct option options[] = {
 			    "system-wide collection from all CPUs"),
 	OPT_BOOLEAN('A', "append", &append_file,
 			    "append to the output file to do incremental profiling"),
+	OPT_INTEGER('C', "profile_cpu", &profile_cpu,
+			    "CPU to profile on"),
 	OPT_BOOLEAN('f', "force", &force,
 			"overwrite existing data file"),
 	OPT_LONG('c', "count", &default_interval,

-- 
Jens Axboe


             reply	other threads:[~2009-08-12  9:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-12  9:18 Jens Axboe [this message]
2009-08-12  9:52 ` [tip:perfcounters/urgent] perf record: Add missing -C option support for specifying profile cpu tip-bot for Jens Axboe
2009-08-12 12:18 ` tip-bot for Jens Axboe

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=20090812091801.GC12579@kernel.dk \
    --to=jens.axboe@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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.