linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space
@ 2018-03-12  8:38 Alexey Budankov
  2018-03-12  8:41 ` [PATCH RESEND v1 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Alexey Budankov @ 2018-03-12  8:38 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen, linux-kernel


Here is a series of small patches that implement exposing type of 
context-switch-out event as a part of PERF_RECORD_SWITCH[_CPU_WIDE] record.

Introduced types of context-switch-out events assumed to be:

a) preempt: task->state == TASK_RUNNING
	misc &= PERF_RECORD_MISC_SWITCH_OUT
	
b) yield: !preempt - using new bit PERF_RECORD_MISC_SWITCH_OUT_YIELD:
	misc &= PERF_RECORD_MISC_SWITCH_OUT|PERF_RECORD_MISC_SWITCH_OUT_YIELD

Perf tool report and script commands output has been extended to decode 
new yield bit and the updated output looks like in the examples below.

The documentation has been updated to mention yield switch out events and its 
decoding symbols in perf script output.

The changes have been manually tested on Fedora 27 with the patched kernel:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git perf/core

perf report -D -i system-wide.perf: 

0x1b9c50 [0x30]: event: 15
.
. ... raw event: size 48 bytes
.  0000:  0f 00 00 00 00 20 30 00 01 1e 00 00 01 1e 00 00  ..... 0.........
.  0010:  00 00 00 00 00 00 00 00 85 ae d4 e3 3e 0e 00 00  ............>...
.  0020:  54 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00  T...............

5 15663273127557 0x1b9c50 [0x30]: PERF_RECORD_SWITCH_CPU_WIDE OUT  next pid/tid:  7681/7681 

0x2646c0 [0x30]: event: 15
.
. ... raw event: size 48 bytes
.  0000:  0f 00 00 00 00 60 30 00 00 00 00 00 00 00 00 00  .....`0.........
.  0010:  00 1e 00 00 00 1e 00 00 29 1e d5 e3 3e 0e 00 00  ........)...>...
.  0020:  56 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00  V...............

7 15663273156137 0x2646c0 [0x30]: PERF_RECORD_SWITCH_CPU_WIDE OUT yield  next pid/tid:     0/0

perf script --show-switch-events -F +misc -I -i system-wide.perf:

amplxe-perf  7681 [005] S     15663.273151: PERF_RECORD_SWITCH_CPU_WIDE OUT  next pid/tid:    39/39   
migration/5    39 [005]       15663.273152: PERF_RECORD_SWITCH_CPU_WIDE IN   prev pid/tid:  7681/7681 
amplxe-perf  7680 [007] K     15663.273153:          1                                                                                                                                       context-switch: 
                  aaa488 schedule ([kernel.kallsyms])
                  1a9f50 __poll_nocancel (inlined)

amplxe-perf  7680 [007] Sy    15663.273156: PERF_RECORD_SWITCH_CPU_WIDE OUT yield  next pid/tid:     0/0    
migration/5    39 [005] K     15663.273157:

---
 Alexey Budankov (3):
	perf/core: store context switch out type into Perf trace
	perf report: extend raw dump (-D) out with switch out event type
	perf script: extend misc field decoding with switch out event type
  
 include/uapi/linux/perf_event.h          |  5 +++++
 kernel/events/core.c                     |  4 +++-
 tools/include/uapi/linux/perf_event.h    |  5 +++++
 tools/perf/Documentation/perf-script.txt | 17 +++++++++--------
 tools/perf/builtin-script.c              |  5 ++++-
 tools/perf/util/event.c                  |  4 +++-
 6 files changed, 29 insertions(+), 11 deletions(-)

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH RESEND v1 1/3] perf/core: store context switch out type into Perf trace
  2018-03-12  8:38 [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
@ 2018-03-12  8:41 ` Alexey Budankov
  2018-03-12  8:43 ` [PATCH RESEND v1 2/3] perf report: extend raw dump (-D) out with switch out event type Alexey Budankov
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Alexey Budankov @ 2018-03-12  8:41 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen, linux-kernel

Store thread context-switch-out event type into Perf trace as a part of 
PERF_RECORD_SWITCH[_CPU_WIDE] records.

Introduced types of switch-out events assumed to be 
a) preempt: task->state == TASK_RUNNING and b) yield: !preempt;

New yield event type is encoded using special 
PERF_RECORD_MISC_SWITCH_OUT_YIELD bit extending PERF_RECORD_MISC_SWITCH_OUT 
meaning traditional preemption switch out event:

    misc &= PERF_RECORD_MISC_SWITCH_OUT | PERF_RECORD_MISC_SWITCH_OUT_YIELD
	
Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
---
 include/uapi/linux/perf_event.h       | 5 +++++
 kernel/events/core.c                  | 4 +++-
 tools/include/uapi/linux/perf_event.h | 5 +++++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index 6f873503552d..0339c829cda5 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -654,6 +654,11 @@ struct perf_event_mmap_page {
  * perf_event_attr::precise_ip.
  */
 #define PERF_RECORD_MISC_EXACT_IP		(1 << 14)
+/*
+ * Indicates that thread explicitly yielded cpu due to
+ * a call of some synchronization API e.g. futex system call
+ */
+#define PERF_RECORD_MISC_SWITCH_OUT_YIELD	(1 << 14)
 /*
  * Reserve the last bit to indicate some extended misc field
  */
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 57898102847f..1faa6dde090c 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -7216,6 +7216,8 @@ static void perf_event_switch(struct task_struct *task,
 			      struct task_struct *next_prev, bool sched_in)
 {
 	struct perf_switch_event switch_event;
+	__u16 switch_type = sched_in ? 0 : PERF_RECORD_MISC_SWITCH_OUT |
+		(task->state == TASK_RUNNING ? 0 : PERF_RECORD_MISC_SWITCH_OUT_YIELD);
 
 	/* N.B. caller checks nr_switch_events != 0 */
 
@@ -7225,7 +7227,7 @@ static void perf_event_switch(struct task_struct *task,
 		.event_id	= {
 			.header = {
 				/* .type */
-				.misc = sched_in ? 0 : PERF_RECORD_MISC_SWITCH_OUT,
+				.misc = switch_type,
 				/* .size */
 			},
 			/* .next_prev_pid */
diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
index 6f873503552d..0339c829cda5 100644
--- a/tools/include/uapi/linux/perf_event.h
+++ b/tools/include/uapi/linux/perf_event.h
@@ -654,6 +654,11 @@ struct perf_event_mmap_page {
  * perf_event_attr::precise_ip.
  */
 #define PERF_RECORD_MISC_EXACT_IP		(1 << 14)
+/*
+ * Indicates that thread explicitly yielded cpu due to
+ * a call of some synchronization API e.g. futex system call
+ */
+#define PERF_RECORD_MISC_SWITCH_OUT_YIELD	(1 << 14)
 /*
  * Reserve the last bit to indicate some extended misc field
  */

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH RESEND v1 2/3] perf report: extend raw dump (-D) out with switch out event type
  2018-03-12  8:38 [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
  2018-03-12  8:41 ` [PATCH RESEND v1 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
@ 2018-03-12  8:43 ` Alexey Budankov
  2018-03-12  8:44 ` [PATCH RESEND v1 3/3] perf script: extend misc field deconding " Alexey Budankov
  2018-03-14 14:17 ` [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
  3 siblings, 0 replies; 5+ messages in thread
From: Alexey Budankov @ 2018-03-12  8:43 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen, linux-kernel

Print additional 'yield' tag for PERF_RECORD_SWITCH[_CPU_WIDE] OUT records when
event header misc field contains PERF_RECORD_MISC_SWITCH_OUT_YIELD bit set 
designating synchronization context switch out event:

perf report -D -i system-wide.perf: 

0x1b9c50 [0x30]: event: 15
.
. ... raw event: size 48 bytes
.  0000:  0f 00 00 00 00 20 30 00 01 1e 00 00 01 1e 00 00  ..... 0.........
.  0010:  00 00 00 00 00 00 00 00 85 ae d4 e3 3e 0e 00 00  ............>...
.  0020:  54 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00  T...............

5 15663273127557 0x1b9c50 [0x30]: PERF_RECORD_SWITCH_CPU_WIDE OUT  next pid/tid:  7681/7681 

0x2646c0 [0x30]: event: 15
.
. ... raw event: size 48 bytes
.  0000:  0f 00 00 00 00 60 30 00 00 00 00 00 00 00 00 00  .....`0.........
.  0010:  00 1e 00 00 00 1e 00 00 29 1e d5 e3 3e 0e 00 00  ........)...>...
.  0020:  56 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00  V...............

7 15663273156137 0x2646c0 [0x30]: PERF_RECORD_SWITCH_CPU_WIDE OUT yield  next pid/tid:     0/0

Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
---
 tools/perf/util/event.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c
index f0a6cbd033cc..af5a85d56446 100644
--- a/tools/perf/util/event.c
+++ b/tools/perf/util/event.c
@@ -1421,7 +1421,9 @@ size_t perf_event__fprintf_itrace_start(union perf_event *event, FILE *fp)
 size_t perf_event__fprintf_switch(union perf_event *event, FILE *fp)
 {
 	bool out = event->header.misc & PERF_RECORD_MISC_SWITCH_OUT;
-	const char *in_out = out ? "OUT" : "IN ";
+	const char *in_out = !out ? "IN " :
+		!(event->header.misc & PERF_RECORD_MISC_SWITCH_OUT_YIELD) ?
+				"OUT" : "OUT yield";
 
 	if (event->header.type == PERF_RECORD_SWITCH)
 		return fprintf(fp, " %s\n", in_out);

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH RESEND v1 3/3] perf script: extend misc field deconding with switch out event type
  2018-03-12  8:38 [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
  2018-03-12  8:41 ` [PATCH RESEND v1 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
  2018-03-12  8:43 ` [PATCH RESEND v1 2/3] perf report: extend raw dump (-D) out with switch out event type Alexey Budankov
@ 2018-03-12  8:44 ` Alexey Budankov
  2018-03-14 14:17 ` [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
  3 siblings, 0 replies; 5+ messages in thread
From: Alexey Budankov @ 2018-03-12  8:44 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen, linux-kernel

Append 'y' sign to 'S' tag designating the type of context switch out event so 
'S' means preemption context switch and 'Sy' means synchronization context 
switch. Documentation is extended to cover new presentation changes.

perf script --show-switch-events -F +misc -I -i system-wide.perf:

amplxe-perf  7681 [005] S     15663.273151: PERF_RECORD_SWITCH_CPU_WIDE OUT  next pid/tid:    39/39   
migration/5    39 [005]       15663.273152: PERF_RECORD_SWITCH_CPU_WIDE IN   prev pid/tid:  7681/7681 
amplxe-perf  7680 [007] K     15663.273153:          1                                                                                                                                       context-switch: 
                  aaa488 schedule ([kernel.kallsyms])
                  1a9f50 __poll_nocancel (inlined)

amplxe-perf  7680 [007] Sy    15663.273156: PERF_RECORD_SWITCH_CPU_WIDE OUT yield  next pid/tid:     0/0    
migration/5    39 [005] K     15663.273157:

Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
---
 tools/perf/Documentation/perf-script.txt | 17 +++++++++--------
 tools/perf/builtin-script.c              |  5 ++++-
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index 36ec0257f8d3..80e94cbbf520 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -228,14 +228,15 @@ OPTIONS
 	For sample events it's possible to display misc field with -F +misc option,
 	following letters are displayed for each bit:
 
-	  PERF_RECORD_MISC_KERNEL        K
-	  PERF_RECORD_MISC_USER          U
-	  PERF_RECORD_MISC_HYPERVISOR    H
-	  PERF_RECORD_MISC_GUEST_KERNEL  G
-	  PERF_RECORD_MISC_GUEST_USER    g
-	  PERF_RECORD_MISC_MMAP_DATA*    M
-	  PERF_RECORD_MISC_COMM_EXEC     E
-	  PERF_RECORD_MISC_SWITCH_OUT    S
+	  PERF_RECORD_MISC_KERNEL               K
+	  PERF_RECORD_MISC_USER                 U
+	  PERF_RECORD_MISC_HYPERVISOR           H
+	  PERF_RECORD_MISC_GUEST_KERNEL         G
+	  PERF_RECORD_MISC_GUEST_USER           g
+	  PERF_RECORD_MISC_MMAP_DATA*           M
+	  PERF_RECORD_MISC_COMM_EXEC            E
+	  PERF_RECORD_MISC_SWITCH_OUT           S
+	  PERF_RECORD_MISC_SWITCH_OUT_YIELD     Sy
 
 	  $ perf script -F +misc ...
 	   sched-messaging  1414 K     28690.636582:       4590 cycles ...
diff --git a/tools/perf/builtin-script.c b/tools/perf/builtin-script.c
index cce926aeb0c0..06d7fe73886f 100644
--- a/tools/perf/builtin-script.c
+++ b/tools/perf/builtin-script.c
@@ -657,8 +657,11 @@ static int perf_sample__fprintf_start(struct perf_sample *sample,
 			break;
 		case PERF_RECORD_SWITCH:
 		case PERF_RECORD_SWITCH_CPU_WIDE:
-			if (has(SWITCH_OUT))
+			if (has(SWITCH_OUT)) {
 				ret += fprintf(fp, "S");
+				if (sample->misc & PERF_RECORD_MISC_SWITCH_OUT_YIELD)
+					ret += fprintf(fp, "y");
+			}
 		default:
 			break;
 		}

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space
  2018-03-12  8:38 [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
                   ` (2 preceding siblings ...)
  2018-03-12  8:44 ` [PATCH RESEND v1 3/3] perf script: extend misc field deconding " Alexey Budankov
@ 2018-03-14 14:17 ` Alexey Budankov
  3 siblings, 0 replies; 5+ messages in thread
From: Alexey Budankov @ 2018-03-14 14:17 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen, linux-kernel

On 12.03.2018 11:38, Alexey Budankov wrote:
> 
> Here is a series of small patches that implement exposing type of 
> context-switch-out event as a part of PERF_RECORD_SWITCH[_CPU_WIDE] record.

Testing results from my Fedora 27/x86_64:

uname -a
Linux nntvtune39 4.16.0-rc4+ #1 SMP Mon Mar 12 21:17:37 MSK 2018 x86_64 x86_64 x86_64 GNU/Linux

make -C tools/perf build-test
make: Entering directory '/root/abudanko/tip/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
                 make_help_O: cd . && make help FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.xrLs5ksrJ9 DESTDIR=/tmp/tmp.5ZpjIqvBVY
                  make_doc_O: cd . && make doc FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.MJmfrgLhNK DESTDIR=/tmp/tmp.yJo94jyacg
         make_no_libunwind_O: cd . && make NO_LIBUNWIND=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.ZuEWWlVFeU DESTDIR=/tmp/tmp.aNyH2VKah3
              make_install_O: cd . && make install FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.XXcWzGEFUk DESTDIR=/tmp/tmp.NMO2Xtx42H
       make_install_prefix_O: cd . && make install prefix=/tmp/krava FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.5RerzNEW09 DESTDIR=/tmp/tmp.ehBBqNFP98
           make_no_libnuma_O: cd . && make NO_LIBNUMA=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.aMXBc8UM1x DESTDIR=/tmp/tmp.ttdyrsd18s
               make_static_O: cd . && make LDFLAGS=-static FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP_STATIC  O=/tmp/tmp.obO7qjlSS9 DESTDIR=/tmp/tmp.dnvYuui9Jj
          make_no_libaudit_O: cd . && make NO_LIBAUDIT=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.7cWjMWSYZD DESTDIR=/tmp/tmp.tIi87QH0yU
                 make_tags_O: cd . && make tags FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.RhiMLTTU6h DESTDIR=/tmp/tmp.JAAbJwzneB
                make_debug_O: cd . && make DEBUG=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.WeiF5jlgUO DESTDIR=/tmp/tmp.LuEBtkX92v
 make_install_prefix_slash_O: cd . && make install prefix=/tmp/krava/ FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.Wdsxe0jQ8j DESTDIR=/tmp/tmp.iraPIy4UAS
            make_no_libelf_O: cd . && make NO_LIBELF=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.6MBYepMyHa DESTDIR=/tmp/tmp.p3PrkVry8g
       make_with_clangllvm_O: cd . && make LIBCLANGLLVM=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.PoPZzgpUV1 DESTDIR=/tmp/tmp.ipXWNpqDRs
              make_minimal_O: cd . && make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.hq7E29QItv DESTDIR=/tmp/tmp.5RgyPl1F0Q
           make_no_libperl_O: cd . && make NO_LIBPERL=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.1yx2LBUHLy DESTDIR=/tmp/tmp.258moNRwf3
           make_no_scripts_O: cd . && make NO_LIBPYTHON=1 NO_LIBPERL=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.sohUVBmifi DESTDIR=/tmp/tmp.DFP99FuMWs
                make_no_ui_O: cd . && make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.uoGvFnx0sR DESTDIR=/tmp/tmp.0RNi8PX9wa
                 make_pure_O: cd . && make FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.HqqCNIxJmM DESTDIR=/tmp/tmp.CvFxUqhh4X
            make_clean_all_O: cd . && make clean all FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.hffsHJY0jp DESTDIR=/tmp/tmp.3kq9oSNTJD
              make_no_newt_O: cd . && make NO_NEWT=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.4DDe0e7oiV DESTDIR=/tmp/tmp.lH28Fbdq2A
          make_install_bin_O: cd . && make install-bin FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.r8pqeg8Bji DESTDIR=/tmp/tmp.fDlZujS8lV
     make_util_pmu_bison_o_O: cd . && make util/pmu-bison.o FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.f3V6Jiisxg DESTDIR=/tmp/tmp.PUDAXV2mch
         make_no_libbionic_O: cd . && make NO_LIBBIONIC=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.VKfBelKuio DESTDIR=/tmp/tmp.3y5FCbUf6P
              make_no_gtk2_O: cd . && make NO_GTK2=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.zaVqsGpU2H DESTDIR=/tmp/tmp.i9UKKwNPED
      make_with_babeltrace_O: cd . && make LIBBABELTRACE=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.3PDo5rHKA1 DESTDIR=/tmp/tmp.CjHtdhGFDa
          make_no_demangle_O: cd . && make NO_DEMANGLE=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.cafL24IcpK DESTDIR=/tmp/tmp.Df2ehA6Coc
           make_util_map_o_O: cd . && make util/map.o FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.rqy6KUq5u3 DESTDIR=/tmp/tmp.0gcFovJ7dU
               make_perf_o_O: cd . && make perf.o FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.Hgn6SV60iB DESTDIR=/tmp/tmp.zPz5HSuCdc
             make_no_slang_O: cd . && make NO_SLANG=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.yNpnVEo3cY DESTDIR=/tmp/tmp.WlGcI4JYLr
         make_no_libpython_O: cd . && make NO_LIBPYTHON=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.eUIGux6t1l DESTDIR=/tmp/tmp.9fbBddEstQ
make_no_libdw_dwarf_unwind_O: cd . && make NO_LIBDW_DWARF_UNWIND=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.9mj1JAfAU0 DESTDIR=/tmp/tmp.YrMfF3PgTE
         make_no_backtrace_O: cd . && make NO_BACKTRACE=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.2r9LfRZpLU DESTDIR=/tmp/tmp.QfnjPHDYYl
            make_no_libbpf_O: cd . && make NO_LIBBPF=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.3VYlKWYvYr DESTDIR=/tmp/tmp.C2S4CFHUJS
          make_no_auxtrace_O: cd . && make NO_AUXTRACE=1 FEATURES_DUMP=/root/abudanko/tip/tools/perf/BUILD_TEST_FEATURE_DUMP  O=/tmp/tmp.zQcyEThr5D DESTDIR=/tmp/tmp.3NDAUKtHXm
OK
make: Leaving directory '/root/abudanko/tip/tools/perf'

perf test
 1: vmlinux symtab matches kallsyms                       : Ok
 2: Detect openat syscall event                           : Ok
 3: Detect openat syscall event on all cpus               : Ok
 4: Read samples using the mmap interface                 : Ok
 5: Test data source output                               : Ok
 6: Parse event definition strings                        : Ok
 7: Simple expression parser                              : Ok
 8: PERF_RECORD_* events & perf_sample fields             : Ok
 9: Parse perf pmu format                                 : Ok
10: DSO data read                                         : Ok
11: DSO data cache                                        : Ok
12: DSO data reopen                                       : Ok
13: Roundtrip evsel->name                                 : Ok
14: Parse sched tracepoints fields                        : Ok
15: syscalls:sys_enter_openat event fields                : Ok
16: Setup struct perf_event_attr                          : Ok
17: Match and link multiple hists                         : Ok
18: 'import perf' in python                               : Ok
19: Breakpoint overflow signal handler                    : Ok
20: Breakpoint overflow sampling                          : Ok
21: Number of exit events of a simple workload            : Ok
22: Software clock events period values                   : Ok
23: Object code reading                                   :
--- start ---
test child forked, pid 16844
Looking at the vmlinux_path (8 entries long)
Using /lib/modules/4.16.0-rc4+/build/vmlinux for symbols
Parsing event 'cycles'
mmap size 528384B
Reading object code for memory address: 0xffffffffab060c16
File is: /lib/modules/4.16.0-rc4+/build/vmlinux
On file address is: 0x260c16
Objdump command is: objdump -z -d --start-address=0xffffffff81060c16 --stop-address=0xffffffff81060c96 /lib/modules/4.16.0-rc4+/build/vmlinux
Bytes read match those read by objdump
Reading object code for memory address: 0xfffffe000013a01e
thread__find_addr_map failed
test child finished with -1
---- end ----
Object code reading: FAILED!
24: Sample parsing                                        : Ok
25: Use a dummy software event to keep tracking           : Ok
26: Parse with no sample_id_all bit set                   : Ok
27: Filter hist entries                                   : Ok
28: Lookup mmap thread                                    : Ok
29: Share thread mg                                       : Ok
30: Sort output of hist entries                           : Ok
31: Cumulate child hist entries                           : Ok
32: Track with sched_switch                               : Ok
33: Filter fds with revents mask in a fdarray             : Ok
34: Add fd to a fdarray, making it autogrow               : Ok
35: kmod_path__parse                                      : Ok
36: Thread map                                            : Ok
37: LLVM search and compile                               :
37.1: Basic BPF llvm compile                              : Skip
37.2: kbuild searching                                    : Skip
37.3: Compile source for BPF prologue generation          : Skip
37.4: Compile source for BPF relocation                   : Skip
38: Session topology                                      : Ok
39: BPF filter                                            :
39.1: Basic BPF filtering                                 : Skip
39.2: BPF pinning                                         : Skip
39.3: BPF prologue generation                             : Skip
39.4: BPF relocation checker                              : Skip
40: Synthesize thread map                                 : Ok
41: Remove thread map                                     : Ok
42: Synthesize cpu map                                    : Ok
43: Synthesize stat config                                : Ok
44: Synthesize stat                                       : Ok
45: Synthesize stat round                                 : Ok
46: Synthesize attr update                                : Ok
47: Event times                                           : Ok
48: Read backward ring buffer                             : Ok
49: Print cpu map                                         : Ok
50: Probe SDT events                                      : Ok
51: is_printable_array                                    : Ok
52: Print bitmap                                          : Ok
53: perf hooks                                            : Ok
54: builtin clang support                                 : Skip (not compiled in)
55: unit_number__scnprintf                                : Ok
56: x86 rdpmc                                             : Ok
57: Convert perf time to TSC                              : Ok
58: DWARF unwind                                          : Ok
59: x86 instruction decoder - new instructions            : Ok
60: Use vfs_getname probe to get syscall args filenames   : Ok
61: Add vfs_getname probe to get syscall args filenames   : Ok
62: Check open filename arg using perf trace + vfs_getname: Ok
63: probe libc's inet_pton & backtrace it with ping       : Ok

Thanks,
Alexey

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-03-14 14:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-12  8:38 [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
2018-03-12  8:41 ` [PATCH RESEND v1 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
2018-03-12  8:43 ` [PATCH RESEND v1 2/3] perf report: extend raw dump (-D) out with switch out event type Alexey Budankov
2018-03-12  8:44 ` [PATCH RESEND v1 3/3] perf script: extend misc field deconding " Alexey Budankov
2018-03-14 14:17 ` [PATCH RESEND v1 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).