perf/urgent fixes:
User visible: - Fix AArch64 objdump disasm comment char in 'perf annotate' (Kim Phillips) - Fix documentation spelling mistakes (Kim Phillips) - Don't fail 'perf test kmod-path' if compressed modules aren't supported (Kim Phillips) Infrastructure: - Fix sched_getcpu feature test when included in test-all.c redefining _GNU_SOURCE (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABCAAGBQJZC2KkAAoJENZQFvNTUqpAy8sP/jd1Jyipp5i6+ZYRcq0kxG15 3Rll3EeF3Fj4RHzhGazJ1dNSV7bVWHvA3T99CrVCKJ+jLqiA6qHW3/M1WbBGUy09 uVfwX+EigMSASOnqet/prYk17N1CG34BS3BxNyfGTjZBfQ8pqeR+2NfaQHZ9sR7Q 4kwV2Eei0JRvhhQD/DDo4TdwaW9dK3OEsgTpmN/ME4HHUSxrNfQeh1IgFnWMHO9H d631xhvuw9P3zMcaBnDEjyQnlJM/nqbTP4gQcbIJD2GMG86rDa2QQti1jctR7lK0 CFK7o2dvLoObtdSwp6Yta4wrghMd/U0j9yLtv4p6g6HCmsipTyCezQ0t8w+nOnth LeE8soj4Ny5ZZTAaZXd3+EHULsQqojZfVhyAswGfdaOWtpKUO0UDctYI67uiCeba aPBp5TThHjKzLBZndJHlUB7YADb1Ak5JzcvgVAKq0SeZtLlB8ejrk/hzA3Mtq3Se 2HZHnUJOz8uuf5eoTjQo6duMOaRM91OgxQ2EECzfRcbE6y1QSZkk/wGMO/OqwEBf cM4DTpHKuR4UXBEsRZrTknVIgxl2x67UPr74SLATe9lShEPwG54yYLsmlzCg5Wql 9plj9flIgsR2S8OBQjbitkUFo1n8AGDPyvp1yQjM9c2LJ3S+ARqtdHV/8/C6MAqh S2LocBxPFj1Wxdxjij/q =62Ct -----END PGP SIGNATURE----- Merge tag 'perf-urgent-for-mingo-4.12-20170504' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: User visible changes: - Fix AArch64 objdump disasm comment char in 'perf annotate' (Kim Phillips) - Fix documentation spelling mistakes (Kim Phillips) - Don't fail 'perf test kmod-path' if compressed modules aren't supported (Kim Phillips) Infrastructure changes: - Fix sched_getcpu() feature test when included in test-all.c redefining _GNU_SOURCE (Arnaldo Carvalho de Melo) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Коммит
cefec66886
|
@ -1,4 +1,6 @@
|
|||
#ifndef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
#endif
|
||||
#include <sched.h>
|
||||
|
||||
int main(void)
|
||||
|
|
|
@ -76,7 +76,7 @@ REPORT OPTIONS
|
|||
|
||||
-c::
|
||||
--coalesce::
|
||||
Specify sorintg fields for single cacheline display.
|
||||
Specify sorting fields for single cacheline display.
|
||||
Following fields are available: tid,pid,iaddr,dso
|
||||
(see COALESCE)
|
||||
|
||||
|
@ -106,7 +106,7 @@ REPORT OPTIONS
|
|||
|
||||
-d::
|
||||
--display::
|
||||
Siwtch to HITM type (rmt, lcl) to display and sort on. Total HITMs as default.
|
||||
Switch to HITM type (rmt, lcl) to display and sort on. Total HITMs as default.
|
||||
|
||||
C2C RECORD
|
||||
----------
|
||||
|
|
|
@ -225,7 +225,7 @@ OPTIONS
|
|||
the libunwind or libdw library) should be used instead.
|
||||
Using the "lbr" method doesn't require any compiler options. It
|
||||
will produce call graphs from the hardware LBR registers. The
|
||||
main limition is that it is only available on new Intel
|
||||
main limitation is that it is only available on new Intel
|
||||
platforms, such as Haswell. It can only get user call chain. It
|
||||
doesn't work with branch stack sampling at the same time.
|
||||
|
||||
|
|
|
@ -182,7 +182,7 @@ OPTIONS
|
|||
--parent=<regex>::
|
||||
A regex filter to identify parent. The parent is a caller of this
|
||||
function and searched through the callchain, thus it requires callchain
|
||||
information recorded. The pattern is in the exteneded regex format and
|
||||
information recorded. The pattern is in the extended regex format and
|
||||
defaults to "\^sys_|^do_page_fault", see '--sort parent'.
|
||||
|
||||
-x::
|
||||
|
@ -207,8 +207,8 @@ OPTIONS
|
|||
-g::
|
||||
--call-graph=<print_type,threshold[,print_limit],order,sort_key[,branch],value>::
|
||||
Display call chains using type, min percent threshold, print limit,
|
||||
call order, sort key, optional branch and value. Note that ordering of
|
||||
parameters is not fixed so any parement can be given in an arbitraty order.
|
||||
call order, sort key, optional branch and value. Note that ordering
|
||||
is not fixed so any parameter can be given in an arbitrary order.
|
||||
One exception is the print_limit which should be preceded by threshold.
|
||||
|
||||
print_type can be either:
|
||||
|
|
|
@ -270,7 +270,7 @@ When the event stream contains multiple events each event is identified
|
|||
by an ID. This can be either through the PERF_SAMPLE_ID or the
|
||||
PERF_SAMPLE_IDENTIFIER header. The PERF_SAMPLE_IDENTIFIER header is
|
||||
at a fixed offset from the event header, which allows reliable
|
||||
parsing of the header. Relying on ID may be ambigious.
|
||||
parsing of the header. Relying on ID may be ambiguous.
|
||||
IDENTIFIER is only supported by newer Linux kernels.
|
||||
|
||||
Perf record specific events:
|
||||
|
@ -288,7 +288,7 @@ struct attr_event {
|
|||
uint64_t id[];
|
||||
};
|
||||
|
||||
PERF_RECORD_HEADER_EVENT_TYPE = 65, /* depreceated */
|
||||
PERF_RECORD_HEADER_EVENT_TYPE = 65, /* deprecated */
|
||||
|
||||
#define MAX_EVENT_NAME 64
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ For memory address profiling, try: perf mem record / perf mem report
|
|||
For tracepoint events, try: perf report -s trace_fields
|
||||
To record callchains for each sample: perf record -g
|
||||
To record every process run by a user: perf record -u <user>
|
||||
Skip collecing build-id when recording: perf record -B
|
||||
Skip collecting build-id when recording: perf record -B
|
||||
To change sampling frequency to 100 Hz: perf record -F 100
|
||||
See assembly instructions with percentage: perf annotate <symbol>
|
||||
If you prefer Intel style assembly, try: perf annotate -M intel
|
||||
|
|
|
@ -50,7 +50,7 @@ static int arm64__annotate_init(struct arch *arch)
|
|||
arch->initialized = true;
|
||||
arch->priv = arm;
|
||||
arch->associate_instruction_ops = arm64__associate_instruction_ops;
|
||||
arch->objdump.comment_char = ';';
|
||||
arch->objdump.comment_char = '/';
|
||||
arch->objdump.skip_functions_char = '+';
|
||||
return 0;
|
||||
|
||||
|
|
|
@ -61,6 +61,7 @@ int test__kmod_path__parse(int subtest __maybe_unused)
|
|||
M("/xxxx/xxxx/x-x.ko", PERF_RECORD_MISC_KERNEL, true);
|
||||
M("/xxxx/xxxx/x-x.ko", PERF_RECORD_MISC_USER, false);
|
||||
|
||||
#ifdef HAVE_ZLIB_SUPPORT
|
||||
/* path alloc_name alloc_ext kmod comp name ext */
|
||||
T("/xxxx/xxxx/x.ko.gz", true , true , true, true, "[x]", "gz");
|
||||
T("/xxxx/xxxx/x.ko.gz", false , true , true, true, NULL , "gz");
|
||||
|
@ -96,6 +97,7 @@ int test__kmod_path__parse(int subtest __maybe_unused)
|
|||
M("x.ko.gz", PERF_RECORD_MISC_CPUMODE_UNKNOWN, true);
|
||||
M("x.ko.gz", PERF_RECORD_MISC_KERNEL, true);
|
||||
M("x.ko.gz", PERF_RECORD_MISC_USER, false);
|
||||
#endif
|
||||
|
||||
/* path alloc_name alloc_ext kmod comp name ext */
|
||||
T("[test_module]", true , true , true, false, "[test_module]", NULL);
|
||||
|
|
|
@ -229,7 +229,7 @@ struct build_id_event {
|
|||
enum perf_user_event_type { /* above any possible kernel type */
|
||||
PERF_RECORD_USER_TYPE_START = 64,
|
||||
PERF_RECORD_HEADER_ATTR = 64,
|
||||
PERF_RECORD_HEADER_EVENT_TYPE = 65, /* depreceated */
|
||||
PERF_RECORD_HEADER_EVENT_TYPE = 65, /* deprecated */
|
||||
PERF_RECORD_HEADER_TRACING_DATA = 66,
|
||||
PERF_RECORD_HEADER_BUILD_ID = 67,
|
||||
PERF_RECORD_FINISHED_ROUND = 68,
|
||||
|
|
Загрузка…
Ссылка в новой задаче