lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 2 Apr 2015 22:09:49 -0700
From:	tip-bot for Yunlong Song <tipbot@...or.com>
To:	linux-tip-commits@...r.kernel.org
Cc:	paulus@...ba.org, hpa@...or.com, linux-kernel@...r.kernel.org,
	wangnan0@...wei.com, mingo@...nel.org, yunlong.song@...wei.com,
	acme@...hat.com, tglx@...utronix.de, a.p.zijlstra@...llo.nl
Subject: [tip:perf/core] perf script:
  Support using -f to override perf.data file ownership

Commit-ID:  06af0f2c919d7c8f05efebe0d96a6f22297aafd4
Gitweb:     http://git.kernel.org/tip/06af0f2c919d7c8f05efebe0d96a6f22297aafd4
Author:     Yunlong Song <yunlong.song@...wei.com>
AuthorDate: Thu, 2 Apr 2015 21:47:16 +0800
Committer:  Arnaldo Carvalho de Melo <acme@...hat.com>
CommitDate: Thu, 2 Apr 2015 13:18:50 -0300

perf script: Support using -f to override perf.data file ownership

Enable perf script to use perf.data when it is not owned by current user
or root. Change the short option name of --fields to -F to avoid confusion
with --force.

Example:

 # perf record ls
 # chown Yunlong.Song:Yunlong.Song perf.data
 # ls -al perf.data
 -rw------- 1 Yunlong.Song Yunlong.Song 28360 Apr  2 14:53 perf.data
 # id
 uid=0(root) gid=0(root) groups=0(root),64(pkcs11)

Before this patch:

 # perf script
 File perf.data not owned by current user or root (use -f to override)
 # perf script -f
   Error: switch `f' requires a value

  usage: perf script [<options>]
     or: perf script [<options>] record <script> [<record-options>] <command>
     or: perf script [<options>] report <script> [script-args]
     or: perf script [<options>] <script> [<record-options>] <command>
     or: perf script [<options>] <top-script> [script-args]

     -f, --fields <str>    comma separated output fields prepend with
     'type:'. Valid types: hw,sw,trace,raw. Fields:
     comm,tid,pid,time,cpu,event,trace,ip,sym,dso,addr,symoff,period

As shown above, the -f option does not work at all. And -f is already
taken up by --fields, which makes --force confused, so change the short
option name of --fields to -F like what other perf commands do (e.g.
perf report -F) and use -f as the short option name of --force.

After this patch:

 # perf script
 File perf.data not owned by current user or root (use -f to override)
 # perf script -f
 :41298 41298 2590086.564226:          1 cycles:  ffffffff8103efc6
 native_write_msr_safe ([kernel.kallsyms])
 :41298 41298 2590086.564244:          1 cycles:  ffffffff8103efc6
 native_write_msr_safe ([kernel.kallsyms])
 :41298 41298 2590086.564249:          7 cycles:  ffffffff8103efc6
 native_write_msr_safe ([kernel.kallsyms])
 :41298 41298 2590086.564255:        176 cycles:  ffffffff8103efc6
 native_write_msr_safe ([kernel.kallsyms])
     ls 41298 2590086.567346:       4059 cycles:  ffffffff8105a592
     raise_softirq ([kernel.kallsyms])
     ls 41298 2590086.567353:       3717 cycles:  ffffffff8105a592
     raise_softirq ([kernel.kallsyms])
     ls 41298 2590086.567358:      63058 cycles:  ffffffff8105a592
     raise_softirq ([kernel.kallsyms])
     ls 41298 2590086.567448:    1706255 cycles:            406ae0
     [unknown] (/usr/bin/ls)

As shown above, the -f option really works now.

Signed-off-by: Yunlong Song <yunlong.song@...wei.com>
Tested-by: Arnaldo Carvalho de Melo <acme@...hat.com>
Cc: Paul Mackerras <paulus@...ba.org>
Cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>
Cc: Wang Nan <wangnan0@...wei.com>
Link: http://lkml.kernel.org/r/1427982439-27388-8-git-send-email-yunlong.song@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@...hat.com>
---
 tools/perf/builtin-script.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index 257dd06..58f10b8 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -1515,6 +1515,9 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 			.ordering_requires_timestamps = true,
 		},
 	};
+	struct perf_data_file file = {
+		.mode = PERF_DATA_MODE_READ,
+	};
 	const struct option options[] = {
 	OPT_BOOLEAN('D', "dump-raw-trace", &dump_trace,
 		    "dump raw trace in ASCII"),
@@ -1542,7 +1545,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 		    "When printing symbols do not display call chain"),
 	OPT_STRING(0, "symfs", &symbol_conf.symfs, "directory",
 		    "Look for files with symbols relative to this directory"),
-	OPT_CALLBACK('f', "fields", NULL, "str",
+	OPT_CALLBACK('F', "fields", NULL, "str",
 		     "comma separated output fields prepend with 'type:'. "
 		     "Valid types: hw,sw,trace,raw. "
 		     "Fields: comm,tid,pid,time,cpu,event,trace,ip,sym,dso,"
@@ -1566,6 +1569,7 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 		    "Show the fork/comm/exit events"),
 	OPT_BOOLEAN('\0', "show-mmap-events", &script.show_mmap_events,
 		    "Show the mmap events"),
+	OPT_BOOLEAN('f', "force", &file.force, "don't complain, do it"),
 	OPT_END()
 	};
 	const char * const script_subcommands[] = { "record", "report", NULL };
@@ -1577,9 +1581,6 @@ int cmd_script(int argc, const char **argv, const char *prefix __maybe_unused)
 		"perf script [<options>] <top-script> [script-args]",
 		NULL
 	};
-	struct perf_data_file file = {
-		.mode = PERF_DATA_MODE_READ,
-	};
 
 	setup_scripting();
 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists