All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v5 0/3] perf/core: expose thread context switch out event type to user space
@ 2018-04-09  7:20 Alexey Budankov
  2018-04-09  7:25 ` [PATCH v5 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Alexey Budankov @ 2018-04-09  7:20 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen,
	linux-kernel, linux-perf-users


Implement preempting context switch out event as a part of 
PERF_RECORD_SWITCH[_CPU_WIDE] record. The event is treated as preemption 
one when task->state value of the thread being switched out is TASK_RUNNING;

Percentage of preempting and non-preempting context switches help 
understanding the nature of workloads (CPU or IO bound) that are running 
on the machine;

Event type encoding is implemented using a new
PERF_RECORD_MISC_SWITCH_OUT_PREEMPT bit in misc field of event record header;

Perf tool report and script commands have been extended to decode 
new PREEMPT bit and the updated output looks like this:

tools/perf/perf report -D -i perf.data | grep _SWITCH

0 768361415226 0x27f076 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     8/8    
4 768362216813 0x28f45e [0x28]: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:     0/0    
4 768362217824 0x28f486 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:  4073/4073 
0 768362414027 0x27f0ce [0x28]: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid:     8/8    
0 768362414367 0x27f0f6 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     0/0    

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

          hdparm  4073 [004] U       762.198265:     380194 cycles:ppp:      7faf727f5a23 strchr (/usr/lib64/ld-2.26.so)
          hdparm  4073 [004] K       762.198366:     441572 cycles:ppp:  ffffffffb9218435 alloc_set_pte (/lib/modules/4.16.0-rc6+/build/vmlinux)
          hdparm  4073 [004] S       762.198391: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:     0/0    
         swapper     0 [004]         762.198392: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:  4073/4073 
         swapper     0 [004] Sp      762.198477: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid:  4073/4073 
          hdparm  4073 [004]         762.198478: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     0/0    
         swapper     0 [007] K       762.198514:    2303073 cycles:ppp:  ffffffffb98b0c66 intel_idle (/lib/modules/4.16.0-rc6+/build/vmlinux)
         swapper     0 [007] Sp      762.198561: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid:  1134/1134 
  kworker/u16:18  1134 [007]         762.198562: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     0/0    
  kworker/u16:18  1134 [007] S       762.198567: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:     0/0    

The documentation has been updated to mention PREEMPT 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

---
 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          | 18 +++++++++++++++---
 kernel/events/core.c                     |  4 ++++
 tools/include/uapi/linux/perf_event.h    | 18 +++++++++++++++---
 tools/perf/Documentation/perf-script.txt | 17 +++++++++--------
 tools/perf/builtin-script.c              |  5 ++++-
 tools/perf/util/event.c                  |  4 +++-
 6 files changed, 50 insertions(+), 16 deletions(-)

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

* [PATCH v5 1/3] perf/core: store context switch out type into Perf trace
  2018-04-09  7:20 [PATCH v5 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
@ 2018-04-09  7:25 ` Alexey Budankov
  2018-04-09  9:26   ` Peter Zijlstra
  2018-04-21  7:46   ` [tip:perf/urgent] perf/core: Store context switch out type in PERF_RECORD_SWITCH[_CPU_WIDE] tip-bot for Alexey Budankov
  2018-04-09  7:26 ` [PATCH v5 2/3] perf report: extend raw dump (-D) out with switch out event type Alexey Budankov
  2018-04-09  7:26 ` [PATCH v5 3/3] perf script: extend misc field decoding " Alexey Budankov
  2 siblings, 2 replies; 12+ messages in thread
From: Alexey Budankov @ 2018-04-09  7:25 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen,
	linux-kernel, linux-perf-users


Store preempting context switch out event into Perf trace as a part of 
PERF_RECORD_SWITCH[_CPU_WIDE] record.

Percentage of preempting and non-preempting context switches help 
understanding the nature of workloads (CPU or IO bound) that are running 
on a machine;

The event is treated as preemption one when task->state value of the 
thread being switched out is TASK_RUNNING. Event type encoding is 
implemented using PERF_RECORD_MISC_SWITCH_OUT_PREEMPT bit;
	
Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
---
 include/uapi/linux/perf_event.h       | 18 +++++++++++++++---
 kernel/events/core.c                  |  4 ++++
 tools/include/uapi/linux/perf_event.h | 18 +++++++++++++++---
 3 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index 912b85b52344..b8e288a1f740 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -650,11 +650,23 @@ struct perf_event_mmap_page {
 #define PERF_RECORD_MISC_COMM_EXEC		(1 << 13)
 #define PERF_RECORD_MISC_SWITCH_OUT		(1 << 13)
 /*
- * Indicates that the content of PERF_SAMPLE_IP points to
- * the actual instruction that triggered the event. See also
- * perf_event_attr::precise_ip.
+ * These PERF_RECORD_MISC_* flags below are safely reused
+ * for the following events:
+ *
+ *   PERF_RECORD_MISC_EXACT_IP           - PERF_RECORD_SAMPLE of precise events
+ *   PERF_RECORD_MISC_SWITCH_OUT_PREEMPT - PERF_RECORD_SWITCH* events
+ *
+ *
+ * PERF_RECORD_MISC_EXACT_IP:
+ *   Indicates that the content of PERF_SAMPLE_IP points to
+ *   the actual instruction that triggered the event. See also
+ *   perf_event_attr::precise_ip.
+ *
+ * PERF_RECORD_MISC_SWITCH_OUT_PREEMPT:
+ *   Indicates that thread was preempted in TASK_RUNNING state.
  */
 #define PERF_RECORD_MISC_EXACT_IP		(1 << 14)
+#define PERF_RECORD_MISC_SWITCH_OUT_PREEMPT	(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 fc1c330c6bd6..872a5aaa77eb 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -7584,6 +7584,10 @@ static void perf_event_switch(struct task_struct *task,
 		},
 	};
 
+	if (!sched_in && task->state == TASK_RUNNING)
+		switch_event.event_id.header.misc |=
+				PERF_RECORD_MISC_SWITCH_OUT_PREEMPT;
+
 	perf_iterate_sb(perf_event_switch_output,
 		       &switch_event,
 		       NULL);
diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
index 912b85b52344..b8e288a1f740 100644
--- a/tools/include/uapi/linux/perf_event.h
+++ b/tools/include/uapi/linux/perf_event.h
@@ -650,11 +650,23 @@ struct perf_event_mmap_page {
 #define PERF_RECORD_MISC_COMM_EXEC		(1 << 13)
 #define PERF_RECORD_MISC_SWITCH_OUT		(1 << 13)
 /*
- * Indicates that the content of PERF_SAMPLE_IP points to
- * the actual instruction that triggered the event. See also
- * perf_event_attr::precise_ip.
+ * These PERF_RECORD_MISC_* flags below are safely reused
+ * for the following events:
+ *
+ *   PERF_RECORD_MISC_EXACT_IP           - PERF_RECORD_SAMPLE of precise events
+ *   PERF_RECORD_MISC_SWITCH_OUT_PREEMPT - PERF_RECORD_SWITCH* events
+ *
+ *
+ * PERF_RECORD_MISC_EXACT_IP:
+ *   Indicates that the content of PERF_SAMPLE_IP points to
+ *   the actual instruction that triggered the event. See also
+ *   perf_event_attr::precise_ip.
+ *
+ * PERF_RECORD_MISC_SWITCH_OUT_PREEMPT:
+ *   Indicates that thread was preempted in TASK_RUNNING state.
  */
 #define PERF_RECORD_MISC_EXACT_IP		(1 << 14)
+#define PERF_RECORD_MISC_SWITCH_OUT_PREEMPT	(1 << 14)
 /*
  * Reserve the last bit to indicate some extended misc field
  */

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

* [PATCH v5 2/3] perf report: extend raw dump (-D) out with switch out event type
  2018-04-09  7:20 [PATCH v5 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
  2018-04-09  7:25 ` [PATCH v5 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
@ 2018-04-09  7:26 ` Alexey Budankov
  2018-04-21  7:47   ` [tip:perf/urgent] perf report: Extend " tip-bot for Alexey Budankov
  2018-04-09  7:26 ` [PATCH v5 3/3] perf script: extend misc field decoding " Alexey Budankov
  2 siblings, 1 reply; 12+ messages in thread
From: Alexey Budankov @ 2018-04-09  7:26 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen,
	linux-kernel, linux-perf-users


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

tools/perf/perf report -D -i perf.data | grep _SWITCH

0 768361415226 0x27f076 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     8/8    
4 768362216813 0x28f45e [0x28]: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:     0/0    
4 768362217824 0x28f486 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:  4073/4073 
0 768362414027 0x27f0ce [0x28]: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid:     8/8    
0 768362414367 0x27f0f6 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev 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..98ff3a6a3d50 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_PREEMPT) ?
+				    "OUT        " : "OUT preempt";
 
 	if (event->header.type == PERF_RECORD_SWITCH)
 		return fprintf(fp, " %s\n", in_out);

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

* [PATCH v5 3/3] perf script: extend misc field decoding with switch out event type
  2018-04-09  7:20 [PATCH v5 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
  2018-04-09  7:25 ` [PATCH v5 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
  2018-04-09  7:26 ` [PATCH v5 2/3] perf report: extend raw dump (-D) out with switch out event type Alexey Budankov
@ 2018-04-09  7:26 ` Alexey Budankov
  2018-04-21  7:47   ` [tip:perf/urgent] perf script: Extend " tip-bot for Alexey Budankov
  2 siblings, 1 reply; 12+ messages in thread
From: Alexey Budankov @ 2018-04-09  7:26 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Arnaldo Carvalho de Melo
  Cc: Alexander Shishkin, Jiri Olsa, Namhyung Kim, Andi Kleen,
	linux-kernel, linux-perf-users


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

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

          hdparm  4073 [004] U       762.198265:     380194 cycles:ppp:      7faf727f5a23 strchr (/usr/lib64/ld-2.26.so)
          hdparm  4073 [004] K       762.198366:     441572 cycles:ppp:  ffffffffb9218435 alloc_set_pte (/lib/modules/4.16.0-rc6+/build/vmlinux)
          hdparm  4073 [004] S       762.198391: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:     0/0    
         swapper     0 [004]         762.198392: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:  4073/4073 
         swapper     0 [004] Sp      762.198477: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid:  4073/4073 
          hdparm  4073 [004]         762.198478: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     0/0    
         swapper     0 [007] K       762.198514:    2303073 cycles:ppp:  ffffffffb98b0c66 intel_idle (/lib/modules/4.16.0-rc6+/build/vmlinux)
         swapper     0 [007] Sp      762.198561: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid:  1134/1134 
  kworker/u16:18  1134 [007]         762.198562: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     0/0    
  kworker/u16:18  1134 [007] S       762.198567: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:     0/0    

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..afdafe2110a1 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_PREEMPT   Sp
 
 	  $ 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 313c42423393..0f916e8e1835 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_PREEMPT)
+					ret += fprintf(fp, "p");
+			}
 		default:
 			break;
 		}

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

* Re: [PATCH v5 1/3] perf/core: store context switch out type into Perf trace
  2018-04-09  7:25 ` [PATCH v5 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
@ 2018-04-09  9:26   ` Peter Zijlstra
  2018-04-09  9:56     ` Alexey Budankov
  2018-04-16  8:29     ` Alexey Budankov
  2018-04-21  7:46   ` [tip:perf/urgent] perf/core: Store context switch out type in PERF_RECORD_SWITCH[_CPU_WIDE] tip-bot for Alexey Budankov
  1 sibling, 2 replies; 12+ messages in thread
From: Peter Zijlstra @ 2018-04-09  9:26 UTC (permalink / raw)
  To: Alexey Budankov
  Cc: Ingo Molnar, Arnaldo Carvalho de Melo, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, Andi Kleen, linux-kernel,
	linux-perf-users

On Mon, Apr 09, 2018 at 10:25:32AM +0300, Alexey Budankov wrote:
> 
> Store preempting context switch out event into Perf trace as a part of 
> PERF_RECORD_SWITCH[_CPU_WIDE] record.
> 
> Percentage of preempting and non-preempting context switches help 
> understanding the nature of workloads (CPU or IO bound) that are running 
> on a machine;
> 
> The event is treated as preemption one when task->state value of the 
> thread being switched out is TASK_RUNNING. Event type encoding is 
> implemented using PERF_RECORD_MISC_SWITCH_OUT_PREEMPT bit;
> 	
> Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>

Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>

Acme, I'm thinking you should route this, since most of the changes are
actually to the tool.

> diff --git a/kernel/events/core.c b/kernel/events/core.c
> index fc1c330c6bd6..872a5aaa77eb 100644
> --- a/kernel/events/core.c
> +++ b/kernel/events/core.c
> @@ -7584,6 +7584,10 @@ static void perf_event_switch(struct task_struct *task,
>  		},
>  	};
>  
> +	if (!sched_in && task->state == TASK_RUNNING)
> +		switch_event.event_id.header.misc |=
> +				PERF_RECORD_MISC_SWITCH_OUT_PREEMPT;

I typically prefer {} over any multi-line expression.

>  	perf_iterate_sb(perf_event_switch_output,
>  		       &switch_event,
>  		       NULL);

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

* Re: [PATCH v5 1/3] perf/core: store context switch out type into Perf trace
  2018-04-09  9:26   ` Peter Zijlstra
@ 2018-04-09  9:56     ` Alexey Budankov
  2018-04-16  8:29     ` Alexey Budankov
  1 sibling, 0 replies; 12+ messages in thread
From: Alexey Budankov @ 2018-04-09  9:56 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: Ingo Molnar, Arnaldo Carvalho de Melo, Alexander Shishkin,
	Jiri Olsa, Namhyung Kim, Andi Kleen, linux-kernel,
	linux-perf-users

On 09.04.2018 12:26, Peter Zijlstra wrote:
> On Mon, Apr 09, 2018 at 10:25:32AM +0300, Alexey Budankov wrote:
>>
>> Store preempting context switch out event into Perf trace as a part of 
>> PERF_RECORD_SWITCH[_CPU_WIDE] record.
>>
>> Percentage of preempting and non-preempting context switches help 
>> understanding the nature of workloads (CPU or IO bound) that are running 
>> on a machine;
>>
>> The event is treated as preemption one when task->state value of the 
>> thread being switched out is TASK_RUNNING. Event type encoding is 
>> implemented using PERF_RECORD_MISC_SWITCH_OUT_PREEMPT bit;
>> 	
>> Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
> 
> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> 
> Acme, I'm thinking you should route this, since most of the changes are
> actually to the tool.
> 
>> diff --git a/kernel/events/core.c b/kernel/events/core.c
>> index fc1c330c6bd6..872a5aaa77eb 100644
>> --- a/kernel/events/core.c
>> +++ b/kernel/events/core.c
>> @@ -7584,6 +7584,10 @@ static void perf_event_switch(struct task_struct *task,
>>  		},
>>  	};
>>  
>> +	if (!sched_in && task->state == TASK_RUNNING)
>> +		switch_event.event_id.header.misc |=
>> +				PERF_RECORD_MISC_SWITCH_OUT_PREEMPT;
> 
> I typically prefer {} over any multi-line expression.

Yep, makes sense. Sorry for missing that here.

> 
>>  	perf_iterate_sb(perf_event_switch_output,
>>  		       &switch_event,
>>  		       NULL);
> 

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

* Re: [PATCH v5 1/3] perf/core: store context switch out type into Perf trace
  2018-04-09  9:26   ` Peter Zijlstra
  2018-04-09  9:56     ` Alexey Budankov
@ 2018-04-16  8:29     ` Alexey Budankov
  2018-04-16 13:59       ` Arnaldo Carvalho de Melo
  2018-04-16 14:28       ` Arnaldo Carvalho de Melo
  1 sibling, 2 replies; 12+ messages in thread
From: Alexey Budankov @ 2018-04-16  8:29 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Peter Zijlstra, Ingo Molnar, Alexander Shishkin, Jiri Olsa,
	Namhyung Kim, Andi Kleen, linux-kernel, linux-perf-users

Hi Arnaldo,

On 09.04.2018 12:26, Peter Zijlstra wrote:
> On Mon, Apr 09, 2018 at 10:25:32AM +0300, Alexey Budankov wrote:
>>
>> Store preempting context switch out event into Perf trace as a part of 
>> PERF_RECORD_SWITCH[_CPU_WIDE] record.
>>
>> Percentage of preempting and non-preempting context switches help 
>> understanding the nature of workloads (CPU or IO bound) that are running 
>> on a machine;
>>
>> The event is treated as preemption one when task->state value of the 
>> thread being switched out is TASK_RUNNING. Event type encoding is 
>> implemented using PERF_RECORD_MISC_SWITCH_OUT_PREEMPT bit;
>> 	
>> Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
> 
> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> 
> Acme, I'm thinking you should route this, since most of the changes are
> actually to the tool.

This is just to make sure it doesn't sneak out of your attention 
in hope the plan is still the same as Peter mentioned above.

Thanks,
Alexey

> 
>> diff --git a/kernel/events/core.c b/kernel/events/core.c
>> index fc1c330c6bd6..872a5aaa77eb 100644
>> --- a/kernel/events/core.c
>> +++ b/kernel/events/core.c
>> @@ -7584,6 +7584,10 @@ static void perf_event_switch(struct task_struct *task,
>>  		},
>>  	};
>>  
>> +	if (!sched_in && task->state == TASK_RUNNING)
>> +		switch_event.event_id.header.misc |=
>> +				PERF_RECORD_MISC_SWITCH_OUT_PREEMPT;
> 
> I typically prefer {} over any multi-line expression.
> 
>>  	perf_iterate_sb(perf_event_switch_output,
>>  		       &switch_event,
>>  		       NULL);
> 

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

* Re: [PATCH v5 1/3] perf/core: store context switch out type into Perf trace
  2018-04-16  8:29     ` Alexey Budankov
@ 2018-04-16 13:59       ` Arnaldo Carvalho de Melo
  2018-04-16 14:28       ` Arnaldo Carvalho de Melo
  1 sibling, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-04-16 13:59 UTC (permalink / raw)
  To: Alexey Budankov
  Cc: Peter Zijlstra, Ingo Molnar, Alexander Shishkin, Jiri Olsa,
	Namhyung Kim, Andi Kleen, linux-kernel, linux-perf-users

Em Mon, Apr 16, 2018 at 11:29:03AM +0300, Alexey Budankov escreveu:
> Hi Arnaldo,
> 
> On 09.04.2018 12:26, Peter Zijlstra wrote:
> > On Mon, Apr 09, 2018 at 10:25:32AM +0300, Alexey Budankov wrote:
> >>
> >> Store preempting context switch out event into Perf trace as a part of 
> >> PERF_RECORD_SWITCH[_CPU_WIDE] record.
> >>
> >> Percentage of preempting and non-preempting context switches help 
> >> understanding the nature of workloads (CPU or IO bound) that are running 
> >> on a machine;
> >>
> >> The event is treated as preemption one when task->state value of the 
> >> thread being switched out is TASK_RUNNING. Event type encoding is 
> >> implemented using PERF_RECORD_MISC_SWITCH_OUT_PREEMPT bit;
> >> 	
> >> Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
> > 
> > Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> > 
> > Acme, I'm thinking you should route this, since most of the changes are
> > actually to the tool.
> 
> This is just to make sure it doesn't sneak out of your attention 
> in hope the plan is still the same as Peter mentioned above.

Will look into this now.
 
> Thanks,
> Alexey
> 
> > 
> >> diff --git a/kernel/events/core.c b/kernel/events/core.c
> >> index fc1c330c6bd6..872a5aaa77eb 100644
> >> --- a/kernel/events/core.c
> >> +++ b/kernel/events/core.c
> >> @@ -7584,6 +7584,10 @@ static void perf_event_switch(struct task_struct *task,
> >>  		},
> >>  	};
> >>  
> >> +	if (!sched_in && task->state == TASK_RUNNING)
> >> +		switch_event.event_id.header.misc |=
> >> +				PERF_RECORD_MISC_SWITCH_OUT_PREEMPT;
> > 
> > I typically prefer {} over any multi-line expression.
> > 
> >>  	perf_iterate_sb(perf_event_switch_output,
> >>  		       &switch_event,
> >>  		       NULL);
> > 

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

* Re: [PATCH v5 1/3] perf/core: store context switch out type into Perf trace
  2018-04-16  8:29     ` Alexey Budankov
  2018-04-16 13:59       ` Arnaldo Carvalho de Melo
@ 2018-04-16 14:28       ` Arnaldo Carvalho de Melo
  1 sibling, 0 replies; 12+ messages in thread
From: Arnaldo Carvalho de Melo @ 2018-04-16 14:28 UTC (permalink / raw)
  To: Alexey Budankov
  Cc: Peter Zijlstra, Ingo Molnar, Alexander Shishkin, Jiri Olsa,
	Namhyung Kim, Andi Kleen, linux-kernel, linux-perf-users

Em Mon, Apr 16, 2018 at 11:29:03AM +0300, Alexey Budankov escreveu:
> Hi Arnaldo,
> 
> On 09.04.2018 12:26, Peter Zijlstra wrote:
> > On Mon, Apr 09, 2018 at 10:25:32AM +0300, Alexey Budankov wrote:
> >>
> >> Store preempting context switch out event into Perf trace as a part of 
> >> PERF_RECORD_SWITCH[_CPU_WIDE] record.
> >>
> >> Percentage of preempting and non-preempting context switches help 
> >> understanding the nature of workloads (CPU or IO bound) that are running 
> >> on a machine;
> >>
> >> The event is treated as preemption one when task->state value of the 
> >> thread being switched out is TASK_RUNNING. Event type encoding is 
> >> implemented using PERF_RECORD_MISC_SWITCH_OUT_PREEMPT bit;
> >> 	
> >> Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
> > 
> > Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> > 
> > Acme, I'm thinking you should route this, since most of the changes are
> > actually to the tool.
> 
> This is just to make sure it doesn't sneak out of your attention 
> in hope the plan is still the same as Peter mentioned above.
> 
> Thanks,
> Alexey

Applying, rebuilding a kernel with this and testing,

- Arnaldo

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

* [tip:perf/urgent] perf/core: Store context switch out type in PERF_RECORD_SWITCH[_CPU_WIDE]
  2018-04-09  7:25 ` [PATCH v5 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
  2018-04-09  9:26   ` Peter Zijlstra
@ 2018-04-21  7:46   ` tip-bot for Alexey Budankov
  1 sibling, 0 replies; 12+ messages in thread
From: tip-bot for Alexey Budankov @ 2018-04-21  7:46 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: jolsa, hpa, peterz, alexey.budankov, alexander.shishkin,
	linux-kernel, ak, namhyung, tglx, acme, mingo

Commit-ID:  101592b4904ecf6b8ed2a4784d41d180319d95a1
Gitweb:     https://git.kernel.org/tip/101592b4904ecf6b8ed2a4784d41d180319d95a1
Author:     Alexey Budankov <alexey.budankov@linux.intel.com>
AuthorDate: Mon, 9 Apr 2018 10:25:32 +0300
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 17 Apr 2018 09:47:39 -0300

perf/core: Store context switch out type in PERF_RECORD_SWITCH[_CPU_WIDE]

Store preempting context switch out event into Perf trace as a part of
PERF_RECORD_SWITCH[_CPU_WIDE] record.

Percentage of preempting and non-preempting context switches help
understanding the nature of workloads (CPU or IO bound) that are running
on a machine;

The event is treated as preemption one when task->state value of the
thread being switched out is TASK_RUNNING. Event type encoding is
implemented using PERF_RECORD_MISC_SWITCH_OUT_PREEMPT bit;

Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: http://lkml.kernel.org/r/9ff84e83-a0ca-dd82-a6d0-cb951689be74@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 include/uapi/linux/perf_event.h       | 18 +++++++++++++++---
 kernel/events/core.c                  |  4 ++++
 tools/include/uapi/linux/perf_event.h | 18 +++++++++++++++---
 3 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/include/uapi/linux/perf_event.h b/include/uapi/linux/perf_event.h
index 912b85b52344..b8e288a1f740 100644
--- a/include/uapi/linux/perf_event.h
+++ b/include/uapi/linux/perf_event.h
@@ -650,11 +650,23 @@ struct perf_event_mmap_page {
 #define PERF_RECORD_MISC_COMM_EXEC		(1 << 13)
 #define PERF_RECORD_MISC_SWITCH_OUT		(1 << 13)
 /*
- * Indicates that the content of PERF_SAMPLE_IP points to
- * the actual instruction that triggered the event. See also
- * perf_event_attr::precise_ip.
+ * These PERF_RECORD_MISC_* flags below are safely reused
+ * for the following events:
+ *
+ *   PERF_RECORD_MISC_EXACT_IP           - PERF_RECORD_SAMPLE of precise events
+ *   PERF_RECORD_MISC_SWITCH_OUT_PREEMPT - PERF_RECORD_SWITCH* events
+ *
+ *
+ * PERF_RECORD_MISC_EXACT_IP:
+ *   Indicates that the content of PERF_SAMPLE_IP points to
+ *   the actual instruction that triggered the event. See also
+ *   perf_event_attr::precise_ip.
+ *
+ * PERF_RECORD_MISC_SWITCH_OUT_PREEMPT:
+ *   Indicates that thread was preempted in TASK_RUNNING state.
  */
 #define PERF_RECORD_MISC_EXACT_IP		(1 << 14)
+#define PERF_RECORD_MISC_SWITCH_OUT_PREEMPT	(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 2d5fe26551f8..1bae80aaabfb 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -7587,6 +7587,10 @@ static void perf_event_switch(struct task_struct *task,
 		},
 	};
 
+	if (!sched_in && task->state == TASK_RUNNING)
+		switch_event.event_id.header.misc |=
+				PERF_RECORD_MISC_SWITCH_OUT_PREEMPT;
+
 	perf_iterate_sb(perf_event_switch_output,
 		       &switch_event,
 		       NULL);
diff --git a/tools/include/uapi/linux/perf_event.h b/tools/include/uapi/linux/perf_event.h
index 912b85b52344..b8e288a1f740 100644
--- a/tools/include/uapi/linux/perf_event.h
+++ b/tools/include/uapi/linux/perf_event.h
@@ -650,11 +650,23 @@ struct perf_event_mmap_page {
 #define PERF_RECORD_MISC_COMM_EXEC		(1 << 13)
 #define PERF_RECORD_MISC_SWITCH_OUT		(1 << 13)
 /*
- * Indicates that the content of PERF_SAMPLE_IP points to
- * the actual instruction that triggered the event. See also
- * perf_event_attr::precise_ip.
+ * These PERF_RECORD_MISC_* flags below are safely reused
+ * for the following events:
+ *
+ *   PERF_RECORD_MISC_EXACT_IP           - PERF_RECORD_SAMPLE of precise events
+ *   PERF_RECORD_MISC_SWITCH_OUT_PREEMPT - PERF_RECORD_SWITCH* events
+ *
+ *
+ * PERF_RECORD_MISC_EXACT_IP:
+ *   Indicates that the content of PERF_SAMPLE_IP points to
+ *   the actual instruction that triggered the event. See also
+ *   perf_event_attr::precise_ip.
+ *
+ * PERF_RECORD_MISC_SWITCH_OUT_PREEMPT:
+ *   Indicates that thread was preempted in TASK_RUNNING state.
  */
 #define PERF_RECORD_MISC_EXACT_IP		(1 << 14)
+#define PERF_RECORD_MISC_SWITCH_OUT_PREEMPT	(1 << 14)
 /*
  * Reserve the last bit to indicate some extended misc field
  */

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

* [tip:perf/urgent] perf report: Extend raw dump (-D) out with switch out event type
  2018-04-09  7:26 ` [PATCH v5 2/3] perf report: extend raw dump (-D) out with switch out event type Alexey Budankov
@ 2018-04-21  7:47   ` tip-bot for Alexey Budankov
  0 siblings, 0 replies; 12+ messages in thread
From: tip-bot for Alexey Budankov @ 2018-04-21  7:47 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: tglx, alexey.budankov, acme, peterz, hpa, alexander.shishkin,
	linux-kernel, mingo, namhyung, jolsa, ak

Commit-ID:  b3f35b5d5d36fba9311d1a965fcce2dd35614f2e
Gitweb:     https://git.kernel.org/tip/b3f35b5d5d36fba9311d1a965fcce2dd35614f2e
Author:     Alexey Budankov <alexey.budankov@linux.intel.com>
AuthorDate: Mon, 9 Apr 2018 10:26:05 +0300
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 17 Apr 2018 09:47:39 -0300

perf report: Extend raw dump (-D) out with switch out event type

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

tools/perf/perf report -D -i perf.data | grep _SWITCH

0 768361415226 0x27f076 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     8/8
4 768362216813 0x28f45e [0x28]: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:     0/0
4 768362217824 0x28f486 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:  4073/4073
0 768362414027 0x27f0ce [0x28]: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid:     8/8
0 768362414367 0x27f0f6 [0x28]: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:     0/0

Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/6f5aebb9-b96c-f304-f08f-8f046d38de4f@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.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..98ff3a6a3d50 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_PREEMPT) ?
+				    "OUT        " : "OUT preempt";
 
 	if (event->header.type == PERF_RECORD_SWITCH)
 		return fprintf(fp, " %s\n", in_out);

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

* [tip:perf/urgent] perf script: Extend misc field decoding with switch out event type
  2018-04-09  7:26 ` [PATCH v5 3/3] perf script: extend misc field decoding " Alexey Budankov
@ 2018-04-21  7:47   ` tip-bot for Alexey Budankov
  0 siblings, 0 replies; 12+ messages in thread
From: tip-bot for Alexey Budankov @ 2018-04-21  7:47 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: alexander.shishkin, alexey.budankov, namhyung, tglx, hpa,
	linux-kernel, peterz, acme, jolsa, ak, mingo

Commit-ID:  bf30cc1882d2c65aaf92842cc9bcf06565eab73c
Gitweb:     https://git.kernel.org/tip/bf30cc1882d2c65aaf92842cc9bcf06565eab73c
Author:     Alexey Budankov <alexey.budankov@linux.intel.com>
AuthorDate: Mon, 9 Apr 2018 10:26:46 +0300
Committer:  Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Tue, 17 Apr 2018 09:47:39 -0300

perf script: Extend misc field decoding with switch out event type

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

  $ perf script --show-switch-events -F +misc -I -i perf.data:

          hdparm 4073 [004] U  762.198265:     380194 cycles:ppp:      7faf727f5a23 strchr (/usr/lib64/ld-2.26.so)
          hdparm 4073 [004] K  762.198366:     441572 cycles:ppp:  ffffffffb9218435 alloc_set_pte (/lib/modules/4.16.0-rc6+/build/vmlinux)
          hdparm 4073 [004] S  762.198391: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:    0/0
         swapper    0 [004]    762.198392: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid: 4073/4073
         swapper    0 [004] Sp 762.198477: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid: 4073/4073
          hdparm 4073 [004]    762.198478: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:    0/0
         swapper    0 [007] K  762.198514:    2303073 cycles:ppp:  ffffffffb98b0c66 intel_idle (/lib/modules/4.16.0-rc6+/build/vmlinux)
         swapper    0 [007] Sp 762.198561: PERF_RECORD_SWITCH_CPU_WIDE OUT preempt  next pid/tid: 1134/1134
  kworker/u16:18 1134 [007]    762.198562: PERF_RECORD_SWITCH_CPU_WIDE IN           prev pid/tid:    0/0
  kworker/u16:18 1134 [007] S  762.198567: PERF_RECORD_SWITCH_CPU_WIDE OUT          next pid/tid:    0/0

Signed-off-by: Alexey Budankov <alexey.budankov@linux.intel.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/5fc65ce7-8ca5-53ae-8858-8ddd27290575@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.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..afdafe2110a1 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_PREEMPT   Sp
 
 	  $ 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 b17edbcd98cc..e0a9845b6cbc 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_PREEMPT)
+					ret += fprintf(fp, "p");
+			}
 		default:
 			break;
 		}

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

end of thread, other threads:[~2018-04-21  7:48 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-09  7:20 [PATCH v5 0/3] perf/core: expose thread context switch out event type to user space Alexey Budankov
2018-04-09  7:25 ` [PATCH v5 1/3] perf/core: store context switch out type into Perf trace Alexey Budankov
2018-04-09  9:26   ` Peter Zijlstra
2018-04-09  9:56     ` Alexey Budankov
2018-04-16  8:29     ` Alexey Budankov
2018-04-16 13:59       ` Arnaldo Carvalho de Melo
2018-04-16 14:28       ` Arnaldo Carvalho de Melo
2018-04-21  7:46   ` [tip:perf/urgent] perf/core: Store context switch out type in PERF_RECORD_SWITCH[_CPU_WIDE] tip-bot for Alexey Budankov
2018-04-09  7:26 ` [PATCH v5 2/3] perf report: extend raw dump (-D) out with switch out event type Alexey Budankov
2018-04-21  7:47   ` [tip:perf/urgent] perf report: Extend " tip-bot for Alexey Budankov
2018-04-09  7:26 ` [PATCH v5 3/3] perf script: extend misc field decoding " Alexey Budankov
2018-04-21  7:47   ` [tip:perf/urgent] perf script: Extend " tip-bot for Alexey Budankov

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.