Kan Liang
3b00ea9386
tools lib api fs: Add sysfs__write_int function
...
Add sysfs__write_int() to ease up writing int to sysfs. New interface
is:
int sysfs__write_int(const char *entry, int value);
Also, introducing filename__write_int() which is useful for new helpers
to write sysctl values.
Signed-off-by: Kan Liang <Kan.liang@intel.com >
Acked-by: Jiri Olsa <jolsa@kernel.org >
Cc: Andi Kleen <ak@linux.intel.com >
Cc: Kan Liang <kan.liang@intel.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Robert Elliott <elliott@hpe.com >
Cc: Stephane Eranian <eranian@google.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: http://lkml.kernel.org/r/1495825538-5230-2-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-06-21 11:35:27 -03:00
Alexander Shishkin
b9835a9008
tools lib api fs: Introduce sysfs__read_bool
...
Will be used in a upcoming patch warning about PERF_RECORD_AUX data
gaps, reading the "module/kvm_intel/parameters/vmm_exclusive" sysfs
entry.
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Stephane Eranian <eranian@google.com >
Cc: Vince Weaver <vince@deater.net >
Link: http://lkml.kernel.org/r/8760j941ig.fsf@ashishki-desk.ger.corp.intel.com
[ split from a larger patch ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-03-17 11:49:09 -03:00
Arnaldo Carvalho de Melo
49b3cd306e
tools: Set the maximum optimization level according to the compiler being used
...
To avoid this when using clang:
warning: optimization level '-O6' is not supported; using '-O3' instead
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/n/tip-kaghp8ddvzdsg03putemcq96@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-02-14 10:55:27 -03:00
Ravi Bangoria
27cf5706a0
perf sdt: Show proper hint when event not yet in place via 'perf probe'
...
All events from 'perf list', except SDT events, can be directly recorded
with 'perf record'. But, the flow is little different for SDT events.
Probe points for SDT event needs to be created using 'perf probe' before
recording it using 'perf record'.
Perf shows misleading hint when a user tries to record SDT event without
first creating a probe point. Show proper hint there.
Before patch:
$ perf record -a -e sdt_glib:idle__add
event syntax error: 'sdt_glib:idle__add'
\___ unknown tracepoint
Error: File /sys/kernel/debug/tracing/events/sdt_glib/idle__add not found.
Hint: Perhaps this kernel misses some CONFIG_ setting to enable this feature?.
...
After patch:
$ perf record -a -e sdt_glib:idle__add
event syntax error: 'sdt_glib:idle__add'
\___ unknown tracepoint
Error: File /sys/kernel/debug/tracing/events/sdt_glib/idle__add not found.
Hint: SDT event cannot be directly recorded on.
Please first use 'perf probe sdt_glib:idle__add' before recording it.
...
$ perf probe sdt_glib:idle__add
Added new event:
sdt_glib:idle__add (on %idle__add in /usr/lib64/libglib-2.0.so.0.5000.2)
You can now use it in all perf tools, such as:
perf record -e sdt_glib:idle__add -aR sleep 1
$ perf record -a -e sdt_glib:idle__add
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.175 MB perf.data ]
Suggested-and-Acked-by: Ingo Molnar <mingo@redhat.com >
Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com >
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com >
Acked-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Cc: Alexis Berlemont <alexis.berlemont@gmail.com >
Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/20170203102642.17258-1-ravi.bangoria@linux.vnet.ibm.com
[ s/Please use/Please first use/ and break the Hint line in two ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-02-08 09:28:54 -03:00
Joe Stringer
71dc4c3068
tools lib api fs: Add bpf_fs filesystem detector
...
Allow mounting of the BPF filesystem at /sys/fs/bpf.
Signed-off-by: Joe Stringer <joe@ovn.org >
Cc: Alexei Starovoitov <ast@fb.com >
Cc: Daniel Borkmann <daniel@iogearbox.net >
Cc: Wang Nan <wangnan0@huawei.com >
Cc: netdev@vger.kernel.org
Link: http://lkml.kernel.org/r/20170126212001.14103-6-joe@ovn.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2017-01-31 16:20:07 -03:00
Uwe Kleine-König
e19b7cee02
make use of make variable CURDIR instead of calling pwd
...
make already provides the current working directory in a variable, so make
use of it instead of forking a shell. Also replace usage of PWD by
CURDIR. PWD is provided by most shells, but not all, so this makes the
build system more robust.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de >
Signed-off-by: Michal Marek <mmarek@suse.com >
2016-12-11 12:12:56 +01:00
Wang Nan
5e7be3e1f9
tools lib api fs: Add hugetlbfs filesystem detector
...
Detect hugetlbfs. hugetlbfs__mountpoint() will be used during recording
to help identifying hugetlb mmaps: which should be recognized as anon
mapping.
Signed-off-by: Wang Nan <wangnan0@huawei.com >
Reviewed-by: Nilay Vaish <nilayvaish@gmail.com >
Cc: He Kuang <hekuang@huawei.com >
Cc: Hou Pengyang <houpengyang@huawei.com >
Cc: Zefan Li <lizefan@huawei.com >
Link: http://lkml.kernel.org/r/1473137909-142064-3-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-09-08 12:34:43 -03:00
Arnaldo Carvalho de Melo
8149a774d5
tools lib api: Add str_error_c to libapi
...
Because it uses that function, which would lead every tool using it
to need to link against tools/lib/str_error_r.o.
This fixes building tools/vm/, that links with libapi.
Reported-by: Arjan van de Ven <arjan@linux.intel.com >
Reported-by: Randy Dunlap <rdunlap@infradead.org >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Wang Nan <wangnan0@huawei.com >
Fixes: b31e3e3316 ("tools lib api fs: Use str_error_r()")
Link: http://lkml.kernel.org/n/tip-aedt3qzibhnhaov2j4caqi61@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-07-27 17:16:43 -03:00
Wang Nan
2b43834706
tools lib fd array: Allow associating a pointer cookie with each entry
...
Add a 'ptr' field to fdarray->priv array.
This feature will be used by following commits, which introduce
muiltiple 'struct perf_mmap' arrays for different types of mapping.
Because of this, during fdarray__filter(), a simple 'idx' is not enough.
Add a pointer cookie that allows to directly associate a 'struct
perf_mmap' pointer to an fdarray entry.
Signed-off-by: Wang Nan <wangnan0@huawei.com >
Acked-by: Jiri Olsa <jolsa@kernel.org >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: He Kuang <hekuang@huawei.com >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Nilay Vaish <nilayvaish@gmail.com >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Zefan Li <lizefan@huawei.com >
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1468485287-33422-3-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-07-15 17:27:46 -03:00
Jiri Olsa
db49120a32
tools lib api fs: Use base 0 in filename__read_ull
...
By using 0 for base, the strtoull() detects the base automatically (see
'man strtoull').
ATM we have just one user of this function, the cpu__get_max_freq
function reading the "cpuinfo_max_freq" sysfs file. It should not get
affected by this change.
Committer note:
This change seems motivated by this discussion:
"[PATCH] [RFC V1]s390/perf: fix 'start' address of module's map"
http://lkml.kernel.org/r/20160711120155.GA29929@krava
I.e. this patches paves the way for filename__read_ull() to be used in a
S/390 related fix.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Songshan Gong <gongss@linux.vnet.ibm.com >
Link: http://lkml.kernel.org/r/1468567797-27564-4-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-07-15 13:38:05 -03:00
Arnaldo Carvalho de Melo
b31e3e3316
tools lib api fs: Use str_error_r()
...
To make it portable to non-glibc systems, that follow the XSI variant
instead of the GNU specific one that gets in place when _GNU_SOURCE is
defined.
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: David Ahern <dsahern@gmail.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/n/tip-mixgnh3iyajuqogn2opsocdy@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-07-12 15:20:29 -03:00
Chris Phlipot
b983d54473
tools lib api: Respect WERROR=0 for build
...
This enables the workaround for compilers that generate warnings when
compiling libapi.
Signed-off-by: Chris Phlipot <cphlipot0@gmail.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Link: http://lkml.kernel.org/r/1467349955-1135-2-git-send-email-cphlipot0@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-07-04 20:27:26 -03:00
Lucas Stach
703e01652d
tools lib api: Respect CROSS_COMPILE for the linker
...
This fixes cross compilation of libapi.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: kernel@pengutronix.de
Cc: patchwork-lst@pengutronix.de
Link: http://lkml.kernel.org/r/1458235670-27341-1-git-send-email-l.stach@pengutronix.de
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-06-03 14:53:46 -03:00
Wang Nan
258e4bfcbd
tools: Pass arg to fdarray__filter's call back function
...
Before this patch there's no way to pass arguments to fdarray__filter's
call back function.
This improvement will be used by 'perf record' to support unmapping ring
buffer for both main evlist and overwrite evlist. Without this patch
there's no way to track overwrite evlist from 'struct fdarray'.
Signed-off-by: Wang Nan <wangnan0@huawei.com >
Cc: He Kuang <hekuang@huawei.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Zefan Li <lizefan@huawei.com >
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1464183898-174512-10-git-send-email-wangnan0@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-05-30 12:41:46 -03:00
Arnaldo Carvalho de Melo
4bd112df3e
tools lib api fs: Add helper to read string from procfs file
...
To read things like /proc/self/comm.
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Borislav Petkov <bp@suse.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Milian Wolff <milian.wolff@kdab.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/n/tip-ztpkbmseidt0hq2psr46o0h9@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-04-26 13:15:00 -03:00
Arnaldo Carvalho de Melo
ca70c24fb1
tools: Move utilities.mak from perf to tools/scripts/
...
As it is used by several other tools, better move it outside tools/perf.
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Jiri Olsa <jolsa@kernel.org >
Cc: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/n/tip-34s9kue3xq9w5mijdmfrfx8s@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-03-18 13:57:20 -03:00
Jiri Olsa
51c0396c60
tools lib api fs: Add sysfs__read_str function
...
Adding sysfs__read_str function to ease up reading string files from
sysfs. New interface is:
int sysfs__read_str(const char *entry, char **buf, size_t *sizep);
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1455465826-8426-4-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-02-16 17:12:57 -03:00
Jiri Olsa
607bfbd7ff
tools lib api fs: Adopt filename__read_str from perf
...
We already moved similar functions in here, also it'll be useful for
sysfs__read_str addition in following patch.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1455465826-8426-3-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-02-16 17:12:56 -03:00
Jiri Olsa
975f14fa8f
tools lib api: Add debug output support
...
Adding support for warning/info/debug output within libapi code. Adding
following macros:
pr_warning(fmt, ...)
pr_info(fmt, ...)
pr_debug(fmt, ...)
Also adding libapi_set_print function to set above functions. This will
be used in perf to set standard debug handlers for libapi.
Adding 2 header files:
debug.h
- to be used outside libapi, contains
libapi_set_print interface
debug-internal.h
- to be used within libapi, contains
pr_warning/pr_info/pr_debug definitions
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1455465826-8426-2-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2016-02-16 17:12:56 -03:00
Jiri Olsa
ccb5597f9b
tools lib api fs: No need to use PATH_MAX + 1
...
Because there's no point, PATH_MAX is big enough.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Don Zickus <dzickus@redhat.com >
Cc: Kan Liang <kan.liang@intel.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1444068369-20978-2-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-10-05 16:12:09 -03:00
Jiri Olsa
7c422f5572
tools build: Build fixdep helper from perf and basic libs
...
Adding the fixdep target into the Makefile.include to ease up building of
fixdep helper, that needs to be built before we dive in to the build itself.
The user can invoke the fixdep target to build the helper.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1443004442-32660-8-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-09-28 15:50:55 -03:00
Jiri Olsa
ab6201d09b
tools build: Add Makefile.include
...
To ease up build framework code setup for users.
More shared code will be added in the following patches.
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Link: http://lkml.kernel.org/r/1443004442-32660-2-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-09-28 15:50:54 -03:00
Jiri Olsa
dc240c5dc2
tools lib api fs: Store tracing mountpoint for better error message
...
Storing the actual tracing path mountpoint to display correct
error message hint ('Hint:' line). The error hint rediscovers
mountpoints, but it could be different from what we actually
used in tracing path.
Before we'd display debugfs mount even though tracefs was used:
$ perf record -e sched:sched_krava ls
event syntax error: 'sched:sched_krava'
\___ can't access trace events
Error: No permissions to read /sys/kernel/debug/tracing/events/sched/sched_krava
Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug'
...
After this change, correct mountpoint is displayed:
$ perf record -e sched:sched_krava ls
event syntax error: 'sched:sched_krava'
\___ can't access trace events
Error: No permissions to read /sys/kernel/debug/tracing/events/sched/sched_krava
Hint: Try 'sudo mount -o remount,mode=755 /sys/kernel/debug/tracing'
...
Signed-off-by: Jiri Olsa <jolsa@kernel.org >
Cc: David Ahern <dsahern@gmail.com >
Cc: Matt Fleming <matt@codeblueprint.co.uk >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Raphael Beamonte <raphael.beamonte@gmail.com >
Link: http://lkml.kernel.org/r/1442674027-19427-1-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-09-28 15:50:54 -03:00
Arnaldo Carvalho de Melo
09f6acf2ea
tools lib api cpu: Introduce cpu.[ch] to obtain cpu related information
...
E.g.:
$ ./cpu__get_max_freq
3200000
It does that, as Kan's patch does, by looking at these files:
$ cat /sys/devices/system/cpu/online
0-3
$ ./sysfs__read_ull
devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq=3200000
$
I.e. find out the first online CPU, then read its cpufreq info.
But do it in tools/lib/api/, so that other tools/ living code can use
it, not just perf.
Based-on-a-patch-by: Kan Liang <kan.liang@intel.com >
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Borislav Petkov <bp@suse.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Kan Liang <kan.liang@intel.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Stephane Eranian <eranian@google.com >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/n/tip-915v4cvxqplaub8qco66b9mv@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-09-14 12:50:26 -03:00
Arnaldo Carvalho de Melo
2d729f6a8a
tools lib api fs: Introduce sysfs__read_{int,ull}()
...
To read either an int or an unsigned long long value from the given
file.
E.g.:
$ cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
3200000
$ ./sysfs__read_ull
devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq=3200000
$
Cc: Adrian Hunter <adrian.hunter@intel.com >
Cc: Borislav Petkov <bp@suse.de >
Cc: David Ahern <dsahern@gmail.com >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Kan Liang <kan.liang@intel.com >
Cc: Namhyung Kim <namhyung@kernel.org >
Cc: Stephane Eranian <eranian@google.com >
Cc: Wang Nan <wangnan0@huawei.com >
Link: http://lkml.kernel.org/n/tip-4a12m4d5k8m4qgc1vguocvei@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com >
2015-09-14 12:50:25 -03:00