diff options
-rw-r--r-- | patches/0001-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch (renamed from patches/0002-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch) | 7 | ||||
-rw-r--r-- | patches/0002-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch (renamed from patches/0001-tracing-Steve-s-unofficial-trace_recursive_lock-patc.patch) | 47 | ||||
-rw-r--r-- | patches/0003-tracing-Remove-lookups-from-tracing_map-hitcount.patch (renamed from patches/0004-tracing-Remove-lookups-from-tracing_map-hitcount.patch) | 6 | ||||
-rw-r--r-- | patches/0004-tracing-Increase-tracing-map-KEYS_MAX-size.patch (renamed from patches/0005-tracing-Increase-tracing-map-KEYS_MAX-size.patch) | 6 | ||||
-rw-r--r-- | patches/0005-tracing-Make-traceprobe-parsing-code-reusable.patch (renamed from patches/0006-tracing-Make-traceprobe-parsing-code-reusable.patch) | 6 | ||||
-rw-r--r-- | patches/0006-tracing-Clean-up-hist_field_flags-enum.patch (renamed from patches/0007-tracing-Clean-up-hist_field_flags-enum.patch) | 6 | ||||
-rw-r--r-- | patches/0007-tracing-Add-hist_field_name-accessor.patch (renamed from patches/0008-tracing-Add-hist_field_name-accessor.patch) | 6 | ||||
-rw-r--r-- | patches/0008-tracing-Reimplement-log2.patch (renamed from patches/0009-tracing-Reimplement-log2.patch) | 6 | ||||
-rw-r--r-- | patches/0009-tracing-Move-hist-trigger-Documentation-to-histogram.patch (renamed from patches/0001-tracing-Move-hist-trigger-Documentation-to-histogram.patch) | 6 | ||||
-rw-r--r-- | patches/0010-tracing-Add-Documentation-for-log2-modifier.patch (renamed from patches/0002-tracing-Add-Documentation-for-log2-modifier.patch) | 6 | ||||
-rw-r--r-- | patches/0011-tracing-Add-support-to-detect-and-avoid-duplicates.patch (renamed from patches/0003-tracing-Add-support-to-detect-and-avoid-duplicates.patch) | 6 | ||||
-rw-r--r-- | patches/0012-tracing-Remove-code-which-merges-duplicates.patch (renamed from patches/0004-tracing-Remove-code-which-merges-duplicates.patch) | 6 | ||||
-rw-r--r-- | patches/0013-ring-buffer-Add-interface-for-setting-absolute-time-.patch (renamed from patches/0005-ring-buffer-Add-interface-for-setting-absolute-time-.patch) | 6 | ||||
-rw-r--r-- | patches/0014-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch (renamed from patches/0006-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch) | 6 | ||||
-rw-r--r-- | patches/0015-tracing-Add-timestamp_mode-trace-file.patch (renamed from patches/0007-tracing-Add-timestamp_mode-trace-file.patch) | 6 | ||||
-rw-r--r-- | patches/0016-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch (renamed from patches/0008-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch) | 6 | ||||
-rw-r--r-- | patches/0017-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch (renamed from patches/0009-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch) | 6 | ||||
-rw-r--r-- | patches/0018-tracing-Break-out-hist-trigger-assignment-parsing.patch (renamed from patches/0010-tracing-Break-out-hist-trigger-assignment-parsing.patch) | 6 | ||||
-rw-r--r-- | patches/0019-tracing-Add-hist-trigger-timestamp-support.patch (renamed from patches/0011-tracing-Add-hist-trigger-timestamp-support.patch) | 6 | ||||
-rw-r--r-- | patches/0020-tracing-Add-per-element-variable-support-to-tracing_.patch (renamed from patches/0012-tracing-Add-per-element-variable-support-to-tracing_.patch) | 6 | ||||
-rw-r--r-- | patches/0021-tracing-Add-hist_data-member-to-hist_field.patch (renamed from patches/0013-tracing-Add-hist_data-member-to-hist_field.patch) | 6 | ||||
-rw-r--r-- | patches/0022-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch (renamed from patches/0014-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch) | 6 | ||||
-rw-r--r-- | patches/0023-tracing-Add-variable-support-to-hist-triggers.patch (renamed from patches/0015-tracing-Add-variable-support-to-hist-triggers.patch) | 6 | ||||
-rw-r--r-- | patches/0024-tracing-Account-for-variables-in-named-trigger-compa.patch (renamed from patches/0016-tracing-Account-for-variables-in-named-trigger-compa.patch) | 6 | ||||
-rw-r--r-- | patches/0025-tracing-Move-get_hist_field_flags.patch (renamed from patches/0017-tracing-Move-get_hist_field_flags.patch) | 6 | ||||
-rw-r--r-- | patches/0026-tracing-Add-simple-expression-support-to-hist-trigge.patch (renamed from patches/0018-tracing-Add-simple-expression-support-to-hist-trigge.patch) | 6 | ||||
-rw-r--r-- | patches/0027-tracing-Generalize-per-element-hist-trigger-data.patch (renamed from patches/0019-tracing-Generalize-per-element-hist-trigger-data.patch) | 6 | ||||
-rw-r--r-- | patches/0028-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch (renamed from patches/0020-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch) | 6 | ||||
-rw-r--r-- | patches/0029-tracing-Add-hist_field-type-field.patch (renamed from patches/0021-tracing-Add-hist_field-type-field.patch) | 6 | ||||
-rw-r--r-- | patches/0030-tracing-Add-variable-reference-handling-to-hist-trig.patch (renamed from patches/0022-tracing-Add-variable-reference-handling-to-hist-trig.patch) | 6 | ||||
-rw-r--r-- | patches/0031-tracing-Add-hist-trigger-action-hook.patch (renamed from patches/0023-tracing-Add-hist-trigger-action-hook.patch) | 6 | ||||
-rw-r--r-- | patches/0032-tracing-Add-support-for-synthetic-events.patch (renamed from patches/0024-tracing-Add-support-for-synthetic-events.patch) | 6 | ||||
-rw-r--r-- | patches/0033-tracing-Add-support-for-field-variables.patch (renamed from patches/0025-tracing-Add-support-for-field-variables.patch) | 6 | ||||
-rw-r--r-- | patches/0034-tracing-Add-onmatch-hist-trigger-action-support.patch (renamed from patches/0026-tracing-Add-onmatch-hist-trigger-action-support.patch) | 6 | ||||
-rw-r--r-- | patches/0035-tracing-Add-onmax-hist-trigger-action-support.patch (renamed from patches/0027-tracing-Add-onmax-hist-trigger-action-support.patch) | 6 | ||||
-rw-r--r-- | patches/0035-tracing-Increase-trace_recursive_lock-limit-for-synt.patch | 43 | ||||
-rw-r--r-- | patches/0036-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch (renamed from patches/0028-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch) | 6 | ||||
-rw-r--r-- | patches/0037-tracing-Add-cpu-field-for-hist-triggers.patch (renamed from patches/0029-tracing-Add-cpu-field-for-hist-triggers.patch) | 6 | ||||
-rw-r--r-- | patches/0038-tracing-Add-hist-trigger-support-for-variable-refere.patch (renamed from patches/0030-tracing-Add-hist-trigger-support-for-variable-refere.patch) | 6 | ||||
-rw-r--r-- | patches/0039-tracing-Add-last-error-error-facility-for-hist-trigg.patch (renamed from patches/0031-tracing-Add-last-error-error-facility-for-hist-trigg.patch) | 6 | ||||
-rw-r--r-- | patches/0040-tracing-Add-inter-event-hist-trigger-Documentation.patch (renamed from patches/0032-tracing-Add-inter-event-hist-trigger-Documentation.patch) | 6 | ||||
-rw-r--r-- | patches/0041-tracing-Make-tracing_set_clock-non-static.patch (renamed from patches/0033-tracing-Make-tracing_set_clock-non-static.patch) | 6 | ||||
-rw-r--r-- | patches/0042-tracing-Add-a-clock-attribute-for-hist-triggers.patch (renamed from patches/0034-tracing-Add-a-clock-attribute-for-hist-triggers.patch) | 6 | ||||
-rw-r--r-- | patches/0043-ring-buffer-Bring-back-context-level-recursive-check.patch | 127 | ||||
-rw-r--r-- | patches/0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch | 36 | ||||
-rw-r--r-- | patches/0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch | 119 | ||||
-rw-r--r-- | patches/0046-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch | 54 | ||||
-rw-r--r-- | patches/0047-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch (renamed from patches/0036-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch) | 6 | ||||
-rw-r--r-- | patches/0048-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch (renamed from patches/0037-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch) | 6 | ||||
-rw-r--r-- | patches/brd-remove-unused-brd_mutex.patch | 26 | ||||
-rw-r--r-- | patches/localversion.patch | 2 | ||||
-rw-r--r-- | patches/series | 98 |
52 files changed, 648 insertions, 163 deletions
diff --git a/patches/0002-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch b/patches/0001-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch index 43370263ad73..2c2213421dd2 100644 --- a/patches/0002-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch +++ b/patches/0001-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch @@ -1,6 +1,6 @@ From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> -Date: Fri, 22 Sep 2017 14:58:16 -0500 -Subject: [PATCH 02/42] tracing: Reverse the order of trace_types_lock and +Date: Thu, 21 Sep 2017 16:22:49 -0400 +Subject: [PATCH 01/48] tracing: Reverse the order of trace_types_lock and event_mutex In order to make future changes where we need to call @@ -9,8 +9,11 @@ trace_types_lock and event_mutex must be reversed, as the event command will hold event_mutex and the trace_types_lock is taken from within tracing_set_clock(). +Link: http://lkml.kernel.org/r/20170921162249.0dde3dca@gandalf.local.home + Requested-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 12ecef0cb12102d8c034770173d2d1363cb97d52) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace.c | 5 +++++ diff --git a/patches/0001-tracing-Steve-s-unofficial-trace_recursive_lock-patc.patch b/patches/0002-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch index 58e4331af7cb..1c3f8a39cc58 100644 --- a/patches/0001-tracing-Steve-s-unofficial-trace_recursive_lock-patc.patch +++ b/patches/0002-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch @@ -1,35 +1,26 @@ -From: Steven Rostedt <rostedt@goodmis.org> -Date: Fri, 22 Sep 2017 14:58:15 -0500 -Subject: [PATCH 01/42] tracing: Steve's unofficial trace_recursive_lock() - patch +From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> +Date: Fri, 22 Sep 2017 16:59:02 -0400 +Subject: [PATCH 02/48] ring-buffer: Rewrite trace_recursive_(un)lock() to be + simpler -On Tue, 5 Sep 2017 16:57:52 -0500 -Tom Zanussi <tom.zanussi@linux.intel.com> wrote: +The current method to prevent the ring buffer from entering into a recursize +loop is to use a bitmask and set the bit that maps to the current context +(normal, softirq, irq or NMI), and if that bit was already set, it is +considered a recursive loop. -> Synthetic event generation requires the reservation of a second event -> while the reservation of a previous event is still in progress. The -> trace_recursive_lock() check in ring_buffer_lock_reserve() prevents -> this however. -> -> This sets up a special reserve pathway for this particular case, -> leaving existing pathways untouched, other than an additional check in -> ring_buffer_lock_reserve() and trace_event_buffer_reserve(). These -> checks could be gotten rid of as well, with copies of those functions, -> but for now try to avoid that unless necessary. -> -> Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +New code is being added that may require the ring buffer to be entered a +second time in the current context. The recursive locking prevents that from +happening. Instead of mapping a bitmask to the current context, just allow 4 +levels of nesting in the ring buffer. This matches the 4 context levels that +it can already nest. It is highly unlikely to have more than two levels, +thus it should be fine when we add the second entry into the ring buffer. If +that proves to be a problem, we can always up the number to 8. -I've been planing on changing that lock, which may help you here -without having to mess around with parameters. That is to simply add a -counter. Would this patch help you. You can add a patch to increment -the count to 5 with an explanation of handling synthetic events, but -even getting to 4 is extremely unlikely. - -I'll make this into an official patch if this works for you, and then -you can include it in your series. - --- Steve +An added benefit is that reading preempt_count() to get the current level +adds a very slight but noticeable overhead. This removes that need. +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 1a149d7d3f45d311da1f63473736c05f30ae8a75) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/ring_buffer.c | 66 ++++++++++++--------------------------------- diff --git a/patches/0004-tracing-Remove-lookups-from-tracing_map-hitcount.patch b/patches/0003-tracing-Remove-lookups-from-tracing_map-hitcount.patch index 7e5e851f6e37..c3f323673c68 100644 --- a/patches/0004-tracing-Remove-lookups-from-tracing_map-hitcount.patch +++ b/patches/0003-tracing-Remove-lookups-from-tracing_map-hitcount.patch @@ -1,12 +1,16 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Fri, 22 Sep 2017 14:58:18 -0500 -Subject: [PATCH 04/42] tracing: Remove lookups from tracing_map hitcount +Subject: [PATCH 03/48] tracing: Remove lookups from tracing_map hitcount Lookups inflate the hitcount, making it essentially useless. Only inserts and updates should really affect the hitcount anyway, so explicitly filter lookups out. +Link: http://lkml.kernel.org/r/c8d9dc39d269a8abf88bf4102d0dfc65deb0fc7f.1506105045.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 83c07ecc4203728e85fc4a2ce6fdf25d16ea118e) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/tracing_map.c | 3 ++- diff --git a/patches/0005-tracing-Increase-tracing-map-KEYS_MAX-size.patch b/patches/0004-tracing-Increase-tracing-map-KEYS_MAX-size.patch index 4757fb0e2f4d..20c3ef4064c6 100644 --- a/patches/0005-tracing-Increase-tracing-map-KEYS_MAX-size.patch +++ b/patches/0004-tracing-Increase-tracing-map-KEYS_MAX-size.patch @@ -1,11 +1,15 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Fri, 22 Sep 2017 14:58:19 -0500 -Subject: [PATCH 05/42] tracing: Increase tracing map KEYS_MAX size +Subject: [PATCH 04/48] tracing: Increase tracing map KEYS_MAX size The current default for the number of subkeys in a compound key is 2, which is too restrictive. Increase it to a more realistic value of 3. +Link: http://lkml.kernel.org/r/b6952cca06d1f912eba33804a6fd6069b3847d44.1506105045.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 4f36c2d85cedea60ad424d44534121ab0458069e) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/tracing_map.h | 2 +- diff --git a/patches/0006-tracing-Make-traceprobe-parsing-code-reusable.patch b/patches/0005-tracing-Make-traceprobe-parsing-code-reusable.patch index 750af9c7946e..14912fcd5a73 100644 --- a/patches/0006-tracing-Make-traceprobe-parsing-code-reusable.patch +++ b/patches/0005-tracing-Make-traceprobe-parsing-code-reusable.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Fri, 22 Sep 2017 14:58:20 -0500 -Subject: [PATCH 06/42] tracing: Make traceprobe parsing code reusable +Subject: [PATCH 05/48] tracing: Make traceprobe parsing code reusable traceprobe_probes_write() and traceprobe_command() actually contain nothing that ties them to kprobes - the code is generically useful for @@ -11,7 +11,11 @@ Other than moving it, the only change is in naming: traceprobe_probes_write() becomes trace_parse_run_command() and traceprobe_command() becomes trace_run_command(). +Link: http://lkml.kernel.org/r/ae5c26ea40c196a8986854d921eb6e713ede7e3f.1506105045.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 7e465baa80293ed5f87fdf6405391d6f02110d4e) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace.c | 86 ++++++++++++++++++++++++++++++++++++++++++++ diff --git a/patches/0007-tracing-Clean-up-hist_field_flags-enum.patch b/patches/0006-tracing-Clean-up-hist_field_flags-enum.patch index c7a61b36952f..61e6a4c755d2 100644 --- a/patches/0007-tracing-Clean-up-hist_field_flags-enum.patch +++ b/patches/0006-tracing-Clean-up-hist_field_flags-enum.patch @@ -1,12 +1,16 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Fri, 22 Sep 2017 14:58:21 -0500 -Subject: [PATCH 07/42] tracing: Clean up hist_field_flags enum +Subject: [PATCH 06/48] tracing: Clean up hist_field_flags enum As we add more flags, specifying explicit integers for the flag values becomes more unwieldy and error-prone - switch them over to left-shift values. +Link: http://lkml.kernel.org/r/e644e4fb7665aec015f4a2d84a2f990d3dd5b8a1.1506105045.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 0d7a8325bf3326c92da2d21b4496a9ddde896d4f) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 20 ++++++++++---------- diff --git a/patches/0008-tracing-Add-hist_field_name-accessor.patch b/patches/0007-tracing-Add-hist_field_name-accessor.patch index e3c77814d9f2..e4e0e9401d94 100644 --- a/patches/0008-tracing-Add-hist_field_name-accessor.patch +++ b/patches/0007-tracing-Add-hist_field_name-accessor.patch @@ -1,12 +1,16 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Fri, 22 Sep 2017 14:58:22 -0500 -Subject: [PATCH 08/42] tracing: Add hist_field_name() accessor +Subject: [PATCH 07/48] tracing: Add hist_field_name() accessor In preparation for hist_fields that won't be strictly based on trace_event_fields, add a new hist_field_name() accessor to allow that flexibility and update associated users. +Link: http://lkml.kernel.org/r/5b5a2d36dde067cbbe2434b10f06daac27b7dbd5.1506105045.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 85013256cf01629f72a327674c5d007b4a4b40da) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 67 ++++++++++++++++++++++++++------------- diff --git a/patches/0009-tracing-Reimplement-log2.patch b/patches/0008-tracing-Reimplement-log2.patch index e26c8d5dc532..fced6863d059 100644 --- a/patches/0009-tracing-Reimplement-log2.patch +++ b/patches/0008-tracing-Reimplement-log2.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Fri, 22 Sep 2017 14:58:23 -0500 -Subject: [PATCH 09/42] tracing: Reimplement log2 +Subject: [PATCH 08/48] tracing: Reimplement log2 log2 as currently implemented applies only to u64 trace_event_field derived fields, and assumes that anything it's applied to is a u64 @@ -16,7 +16,11 @@ implementations, add a hist_field operand array into the hist_field definition for this purpose, and make use of it to implement the log2 'function'. +Link: http://lkml.kernel.org/r/b47f93fc0b87b36eccf716b0c018f3a71e1f1111.1506105045.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 5819eaddf35b24d628ddfa4fbb5f8d4026e44b96) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 31 +++++++++++++++++++++++++++---- diff --git a/patches/0001-tracing-Move-hist-trigger-Documentation-to-histogram.patch b/patches/0009-tracing-Move-hist-trigger-Documentation-to-histogram.patch index 141a559b9f38..115c00216700 100644 --- a/patches/0001-tracing-Move-hist-trigger-Documentation-to-histogram.patch +++ b/patches/0009-tracing-Move-hist-trigger-Documentation-to-histogram.patch @@ -1,12 +1,16 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:35 -0600 -Subject: [PATCH 01/37] tracing: Move hist trigger Documentation to +Subject: [PATCH 09/48] tracing: Move hist trigger Documentation to histogram.txt The hist trigger Documentation takes up a large part of events.txt - since it will be getting even larger, move it to a separate file. +Link: http://lkml.kernel.org/r/92761155ea4f529e590821b1e02207fe8619f248.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 995f87b4d6ddb6bbb40309c08c3ca2a1f9f9db80) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Documentation/trace/events.txt | 1548 ------------------------------------- diff --git a/patches/0002-tracing-Add-Documentation-for-log2-modifier.patch b/patches/0010-tracing-Add-Documentation-for-log2-modifier.patch index f9c8648f9123..a5f686cf965c 100644 --- a/patches/0002-tracing-Add-Documentation-for-log2-modifier.patch +++ b/patches/0010-tracing-Add-Documentation-for-log2-modifier.patch @@ -1,11 +1,15 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:36 -0600 -Subject: [PATCH 02/37] tracing: Add Documentation for log2 modifier +Subject: [PATCH 10/48] tracing: Add Documentation for log2 modifier Add a line for the log2 modifier, to keep it aligned with tracing/README. +Link: http://lkml.kernel.org/r/a419028bccab155749a4b8702d5b97af75f1578f.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit fcb5b95a2bb931f8e72e2dbd2def67382dd99d42) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Documentation/trace/histogram.txt | 1 + diff --git a/patches/0003-tracing-Add-support-to-detect-and-avoid-duplicates.patch b/patches/0011-tracing-Add-support-to-detect-and-avoid-duplicates.patch index 898d8f71332e..3c34776e33a8 100644 --- a/patches/0003-tracing-Add-support-to-detect-and-avoid-duplicates.patch +++ b/patches/0011-tracing-Add-support-to-detect-and-avoid-duplicates.patch @@ -1,6 +1,6 @@ From: Vedang Patel <vedang.patel@intel.com> Date: Mon, 15 Jan 2018 20:51:37 -0600 -Subject: [PATCH 03/37] tracing: Add support to detect and avoid duplicates +Subject: [PATCH 11/48] tracing: Add support to detect and avoid duplicates A duplicate in the tracing_map hash table is when 2 different entries have the same key and, as a result, the key_hash. This is possible due @@ -40,8 +40,12 @@ had the same key. [1] http://lkml.kernel.org/r/cover.1498510759.git.tom.zanussi@linux.intel.com +Link: http://lkml.kernel.org/r/e178e89ec399240331d383bd5913d649713110f4.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Vedang Patel <vedang.patel@intel.com> Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit bd0a7ab135d0d0872296c3ae3c4f816a9a4c3dee) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/tracing_map.c | 41 ++++++++++++++++++++++++++++++++++++----- diff --git a/patches/0004-tracing-Remove-code-which-merges-duplicates.patch b/patches/0012-tracing-Remove-code-which-merges-duplicates.patch index 9131c4cf0e75..e0e3da1ae63b 100644 --- a/patches/0004-tracing-Remove-code-which-merges-duplicates.patch +++ b/patches/0012-tracing-Remove-code-which-merges-duplicates.patch @@ -1,6 +1,6 @@ From: Vedang Patel <vedang.patel@intel.com> Date: Mon, 15 Jan 2018 20:51:38 -0600 -Subject: [PATCH 04/37] tracing: Remove code which merges duplicates +Subject: [PATCH 12/48] tracing: Remove code which merges duplicates We now have the logic to detect and remove duplicates in the tracing_map hash table. The code which merges duplicates in the @@ -9,8 +9,12 @@ duplicates. The duplication detection code is still kept to ensure that any rare race condition which might cause duplicates does not go unnoticed. +Link: http://lkml.kernel.org/r/55215cf59e2674391bdaf772fdafc4c393352b03.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Vedang Patel <vedang.patel@intel.com> Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 3f7f4cc21fc62ff7da7d34b5ca95a69d73a1f764) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 11 ----- diff --git a/patches/0005-ring-buffer-Add-interface-for-setting-absolute-time-.patch b/patches/0013-ring-buffer-Add-interface-for-setting-absolute-time-.patch index 90254d62feac..01e87511a5b1 100644 --- a/patches/0005-ring-buffer-Add-interface-for-setting-absolute-time-.patch +++ b/patches/0013-ring-buffer-Add-interface-for-setting-absolute-time-.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:39 -0600 -Subject: [PATCH 05/37] ring-buffer: Add interface for setting absolute time +Subject: [PATCH 13/48] ring-buffer: Add interface for setting absolute time stamps Define a new function, tracing_set_time_stamp_abs(), which can be used @@ -10,8 +10,12 @@ deltas for a trace array. Only the interface is added here; a subsequent patch will add the underlying implementation. +Link: http://lkml.kernel.org/r/ce96119de44c7fe0ee44786d15254e9b493040d3.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Baohong Liu <baohong.liu@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 22753475c5232cd6f024746d6a6696a4dd2683ab) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- include/linux/ring_buffer.h | 2 ++ diff --git a/patches/0006-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch b/patches/0014-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch index b7810216701c..d934b018e851 100644 --- a/patches/0006-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch +++ b/patches/0014-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:40 -0600 -Subject: [PATCH 06/37] ring-buffer: Redefine the unimplemented +Subject: [PATCH 14/48] ring-buffer: Redefine the unimplemented RINGBUF_TYPE_TIME_STAMP RINGBUF_TYPE_TIME_STAMP is defined but not used, and from what I can @@ -20,7 +20,11 @@ purposes other than serial event printing. To set/reset this mode, use tracing_set_timestamp_abs() from the previous interface patch. +Link: http://lkml.kernel.org/r/477b362dba1ce7fab9889a1a8e885a62c472f041.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 58c0bd803060b0c0c9de8751382a7af5f507d74d) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- include/linux/ring_buffer.h | 12 ++--- diff --git a/patches/0007-tracing-Add-timestamp_mode-trace-file.patch b/patches/0015-tracing-Add-timestamp_mode-trace-file.patch index 006a35cf65ba..cfab8da4a466 100644 --- a/patches/0007-tracing-Add-timestamp_mode-trace-file.patch +++ b/patches/0015-tracing-Add-timestamp_mode-trace-file.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:41 -0600 -Subject: [PATCH 07/37] tracing: Add timestamp_mode trace file +Subject: [PATCH 15/48] tracing: Add timestamp_mode trace file Add a new option flag indicating whether or not the ring buffer is in 'absolute timestamp' mode. @@ -14,7 +14,11 @@ the ring buffer is in absolute mode, timestamps written while absolute mode is in effect take up more space in the buffer, and are not as efficient). +Link: http://lkml.kernel.org/r/e8aa7b1cde1cf15014e66545d06ac6ef2ebba456.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 0eba34f9bf5b66217355a6a66054b3194aca123d) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Documentation/trace/ftrace.txt | 24 ++++++++++++++++++++ diff --git a/patches/0008-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch b/patches/0016-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch index be3c8922950c..adaba32d0a88 100644 --- a/patches/0008-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch +++ b/patches/0016-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch @@ -1,12 +1,16 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:42 -0600 -Subject: [PATCH 08/37] tracing: Give event triggers access to +Subject: [PATCH 16/48] tracing: Give event triggers access to ring_buffer_event The ring_buffer event can provide a timestamp that may be useful to various triggers - pass it into the handlers for that purpose. +Link: http://lkml.kernel.org/r/6de592683b59fa70ffa5d43d0109896623fc1367.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 373514437a6f75b5cfe890742b590f2c12f6c335) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- include/linux/trace_events.h | 14 ++++++---- diff --git a/patches/0009-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch b/patches/0017-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch index 3572b0593c1a..ac7f0824b009 100644 --- a/patches/0009-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch +++ b/patches/0017-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch @@ -1,12 +1,16 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:43 -0600 -Subject: [PATCH 09/37] tracing: Add ring buffer event param to hist field +Subject: [PATCH 17/48] tracing: Add ring buffer event param to hist field functions Some events such as timestamps require access to a ring_buffer_event struct; add a param so that hist field functions can access that. +Link: http://lkml.kernel.org/r/2ff4af18e72b6002eb86b26b2a7f39cef7d1dfe4.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit df7253a730d0aaef760d45ea234dc087ba7cac88) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 39 ++++++++++++++++++++++++--------------- diff --git a/patches/0010-tracing-Break-out-hist-trigger-assignment-parsing.patch b/patches/0018-tracing-Break-out-hist-trigger-assignment-parsing.patch index 396a3bbb2658..de84be4d2949 100644 --- a/patches/0010-tracing-Break-out-hist-trigger-assignment-parsing.patch +++ b/patches/0018-tracing-Break-out-hist-trigger-assignment-parsing.patch @@ -1,12 +1,16 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:44 -0600 -Subject: [PATCH 10/37] tracing: Break out hist trigger assignment parsing +Subject: [PATCH 18/48] tracing: Break out hist trigger assignment parsing This will make it easier to add variables, and makes the parsing code cleaner regardless. +Link: http://lkml.kernel.org/r/e574b3291bbe15e35a4dfc87e5395aa715701c98.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Rajvi Jingar <rajvi.jingar@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 3c1e23def1291b21a2057f883ccc0456418dc5ad) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 72 +++++++++++++++++++++++++++------------ diff --git a/patches/0011-tracing-Add-hist-trigger-timestamp-support.patch b/patches/0019-tracing-Add-hist-trigger-timestamp-support.patch index 75fa3f9079f6..dfbf39e6a3f4 100644 --- a/patches/0011-tracing-Add-hist-trigger-timestamp-support.patch +++ b/patches/0019-tracing-Add-hist-trigger-timestamp-support.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:45 -0600 -Subject: [PATCH 11/37] tracing: Add hist trigger timestamp support +Subject: [PATCH 19/48] tracing: Add hist trigger timestamp support Add support for a timestamp event field. This is actually a 'pseudo-' event field in that it behaves like it's part of the event record, but @@ -20,10 +20,14 @@ Note that the use of this field requires the ring buffer be put into event rather than an offset. This mode will be enabled if and only if a histogram makes use of the "common_timestamp" field. +Link: http://lkml.kernel.org/r/97afbd646ed146e26271f3458b4b33e16d7817c2.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Baohong Liu <baohong.liu@intel.com> [kasan use-after-free fix] Signed-off-by: Vedang Patel <vedang.patel@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 5d9d58b00ff82078deac8557c91359cd13c8959d) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 94 +++++++++++++++++++++++++++++---------- diff --git a/patches/0012-tracing-Add-per-element-variable-support-to-tracing_.patch b/patches/0020-tracing-Add-per-element-variable-support-to-tracing_.patch index b597f76ad6e8..909886416acf 100644 --- a/patches/0012-tracing-Add-per-element-variable-support-to-tracing_.patch +++ b/patches/0020-tracing-Add-per-element-variable-support-to-tracing_.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:46 -0600 -Subject: [PATCH 12/37] tracing: Add per-element variable support to +Subject: [PATCH 20/48] tracing: Add per-element variable support to tracing_map In order to allow information to be passed between trace events, add @@ -17,7 +17,11 @@ tracing_map_read_var_once() reads the variable and resets it to the 'unset' state, implementing read-once variables, which are also important for event-matching uses. +Link: http://lkml.kernel.org/r/7fa001108252556f0c6dd9d63145eabfe3370d1a.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 42a38132f9e154e1fa2dd2182dff17f9c0e7ee7e) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/tracing_map.c | 108 +++++++++++++++++++++++++++++++++++++++++++++ diff --git a/patches/0013-tracing-Add-hist_data-member-to-hist_field.patch b/patches/0021-tracing-Add-hist_data-member-to-hist_field.patch index 317b645a07d0..e0041209adc4 100644 --- a/patches/0013-tracing-Add-hist_data-member-to-hist_field.patch +++ b/patches/0021-tracing-Add-hist_data-member-to-hist_field.patch @@ -1,11 +1,15 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:47 -0600 -Subject: [PATCH 13/37] tracing: Add hist_data member to hist_field +Subject: [PATCH 21/48] tracing: Add hist_data member to hist_field Allow hist_data access via hist_field. Some users of hist_fields require or will require more access to the associated hist_data. +Link: http://lkml.kernel.org/r/d04cd0768f5228ebb4ac0ba4a847bc4d14d4826f.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 14ab3edac407939009700c04215935576250e969) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 14 +++++++++----- diff --git a/patches/0014-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch b/patches/0022-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch index a5af7d473784..81541442f072 100644 --- a/patches/0014-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch +++ b/patches/0022-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:48 -0600 -Subject: [PATCH 14/37] tracing: Add usecs modifier for hist trigger timestamps +Subject: [PATCH 22/48] tracing: Add usecs modifier for hist trigger timestamps Appending .usecs onto a common_timestamp field will cause the timestamp value to be in microseconds instead of the default @@ -13,7 +13,11 @@ this: This also adds an external trace_clock_in_ns() to trace.c for the timestamp conversion. +Link: http://lkml.kernel.org/r/4e813705a170b3e13e97dc3135047362fb1a39f3.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 4fa4fdb0fe5d0e87e05b0c5b443cec2269ec0609) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Documentation/trace/histogram.txt | 1 + diff --git a/patches/0015-tracing-Add-variable-support-to-hist-triggers.patch b/patches/0023-tracing-Add-variable-support-to-hist-triggers.patch index 2ed39bf18ec2..4b85d24ebb7c 100644 --- a/patches/0015-tracing-Add-variable-support-to-hist-triggers.patch +++ b/patches/0023-tracing-Add-variable-support-to-hist-triggers.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:49 -0600 -Subject: [PATCH 15/37] tracing: Add variable support to hist triggers +Subject: [PATCH 23/48] tracing: Add variable support to hist triggers Add support for saving the value of a current event's event field by assigning it to a variable that can be read by a subsequent event. @@ -32,8 +32,12 @@ using separate assignments: Variables set as above can be used by being referenced from another event, as described in a subsequent patch. +Link: http://lkml.kernel.org/r/fc93c4944d9719dbcb1d0067be627d44e98e2adc.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Baohong Liu <baohong.liu@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit b073711690e3af61965e53f197a56638b3c65a81) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 370 ++++++++++++++++++++++++++++++++++----- diff --git a/patches/0016-tracing-Account-for-variables-in-named-trigger-compa.patch b/patches/0024-tracing-Account-for-variables-in-named-trigger-compa.patch index d63d2ef6d985..a7617a26b6f0 100644 --- a/patches/0016-tracing-Account-for-variables-in-named-trigger-compa.patch +++ b/patches/0024-tracing-Account-for-variables-in-named-trigger-compa.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:50 -0600 -Subject: [PATCH 16/37] tracing: Account for variables in named trigger +Subject: [PATCH 24/48] tracing: Account for variables in named trigger compatibility Named triggers must also have the same set of variables in order to be @@ -10,7 +10,11 @@ that. The reason for this requirement is that named triggers with variables are meant to allow one or more events to set the same variable. +Link: http://lkml.kernel.org/r/a17eae6328a99917f9d5c66129c9fcd355279ee9.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit f94add7df3d72bc8e659f9491e25d91c9dae1b44) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 7 ++++++- diff --git a/patches/0017-tracing-Move-get_hist_field_flags.patch b/patches/0025-tracing-Move-get_hist_field_flags.patch index 4f4801d15a85..767bf7e8f4ed 100644 --- a/patches/0017-tracing-Move-get_hist_field_flags.patch +++ b/patches/0025-tracing-Move-get_hist_field_flags.patch @@ -1,11 +1,15 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:51 -0600 -Subject: [PATCH 17/37] tracing: Move get_hist_field_flags() +Subject: [PATCH 25/48] tracing: Move get_hist_field_flags() Move get_hist_field_flags() to make it more easily accessible for new code (and keep the move separate from new functionality). +Link: http://lkml.kernel.org/r/32470f0a7047ec7a6e84ba5ec89d6142cc6ede7d.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit fde3bce553d359c01beb9a6fce4013b65076aff3) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 44 +++++++++++++++++++-------------------- diff --git a/patches/0018-tracing-Add-simple-expression-support-to-hist-trigge.patch b/patches/0026-tracing-Add-simple-expression-support-to-hist-trigge.patch index 82eb73548258..acfd1dd1f179 100644 --- a/patches/0018-tracing-Add-simple-expression-support-to-hist-trigge.patch +++ b/patches/0026-tracing-Add-simple-expression-support-to-hist-trigge.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:52 -0600 -Subject: [PATCH 18/37] tracing: Add simple expression support to hist triggers +Subject: [PATCH 26/48] tracing: Add simple expression support to hist triggers Add support for simple addition, subtraction, and unary expressions (-(expr) and expr, where expr = b-a, a+b, a+b+c) to hist triggers, in @@ -13,9 +13,13 @@ or more events). In the process, factor out some common code from key and value parsing. +Link: http://lkml.kernel.org/r/9a9308ead4fe32a433d9c7e95921fb798394f6b2.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> [kbuild test robot fix, add static to parse_atom()] Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 26c5cb5e4790fec96e3eba02c347e78fa72273a8) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 487 +++++++++++++++++++++++++++++++++------ diff --git a/patches/0019-tracing-Generalize-per-element-hist-trigger-data.patch b/patches/0027-tracing-Generalize-per-element-hist-trigger-data.patch index 727362d2e816..c51640d37ce0 100644 --- a/patches/0019-tracing-Generalize-per-element-hist-trigger-data.patch +++ b/patches/0027-tracing-Generalize-per-element-hist-trigger-data.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:53 -0600 -Subject: [PATCH 19/37] tracing: Generalize per-element hist trigger data +Subject: [PATCH 27/48] tracing: Generalize per-element hist trigger data Up until now, hist triggers only needed per-element support for saving 'comm' data, which was saved directly as a private data pointer. @@ -9,7 +9,11 @@ In anticipation of the need to save other data besides 'comm', add a new hist_elt_data struct for the purpose, and switch the current 'comm'-related code over to that. +Link: http://lkml.kernel.org/r/4502c338c965ddf5fc19fb1ec4764391e001ed4b.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 8102d0cb859d223564b17afb01e33701f57191d1) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 76 ++++++++++++++++++++++----------------- diff --git a/patches/0020-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch b/patches/0028-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch index a151631a8327..1634c72100e8 100644 --- a/patches/0020-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch +++ b/patches/0028-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:54 -0600 -Subject: [PATCH 20/37] tracing: Pass tracing_map_elt to hist_field accessor +Subject: [PATCH 28/48] tracing: Pass tracing_map_elt to hist_field accessor functions Some accessor functions, such as for variable references, require @@ -9,7 +9,11 @@ access to a corrsponding tracing_map_elt. Add a tracing_map_elt param to the function signature and update the accessor functions accordingly. +Link: http://lkml.kernel.org/r/e0f292b068e9e4948da1d5af21b5ae0efa9b5717.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 8405bbbbc9dc0d88ffc92848cb8f0bda2c7a1b30) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 91 ++++++++++++++++++++++++--------------- diff --git a/patches/0021-tracing-Add-hist_field-type-field.patch b/patches/0029-tracing-Add-hist_field-type-field.patch index c2131c940beb..8b4ed0015720 100644 --- a/patches/0021-tracing-Add-hist_field-type-field.patch +++ b/patches/0029-tracing-Add-hist_field-type-field.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:55 -0600 -Subject: [PATCH 21/37] tracing: Add hist_field 'type' field +Subject: [PATCH 29/48] tracing: Add hist_field 'type' field Future support for synthetic events requires hist_field 'type' information, so add a field for that. @@ -8,7 +8,11 @@ information, so add a field for that. Also, make other hist_field attribute usage consistent (size, is_signed, etc). +Link: http://lkml.kernel.org/r/3fd12a2e86316b05151ba0d7c68268e780af2c9d.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit d544a468f82526e97cc80c18a019708eb203b00a) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 33 +++++++++++++++++++++++++++++++++ diff --git a/patches/0022-tracing-Add-variable-reference-handling-to-hist-trig.patch b/patches/0030-tracing-Add-variable-reference-handling-to-hist-trig.patch index 06fcbb6dff76..04e707ec9fdc 100644 --- a/patches/0022-tracing-Add-variable-reference-handling-to-hist-trig.patch +++ b/patches/0030-tracing-Add-variable-reference-handling-to-hist-trig.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:56 -0600 -Subject: [PATCH 22/37] tracing: Add variable reference handling to hist +Subject: [PATCH 30/48] tracing: Add variable reference handling to hist triggers Add the necessary infrastructure to allow the variables defined on one @@ -21,7 +21,11 @@ Further users of variable references will be described in subsequent patches, such as for instance how the 'wakeup_lat' variable above can be displayed in a latency histogram. +Link: http://lkml.kernel.org/r/b1d3e6975374e34d501ff417c20189c3f9b2c7b8.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 434c1d5831194e72e6eb30d46534d75b5a985eb7) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace.c | 2 diff --git a/patches/0023-tracing-Add-hist-trigger-action-hook.patch b/patches/0031-tracing-Add-hist-trigger-action-hook.patch index 469fdc739391..203bf614caae 100644 --- a/patches/0023-tracing-Add-hist-trigger-action-hook.patch +++ b/patches/0031-tracing-Add-hist-trigger-action-hook.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:57 -0600 -Subject: [PATCH 23/37] tracing: Add hist trigger action hook +Subject: [PATCH 31/48] tracing: Add hist trigger action hook Add a hook for executing extra actions whenever a histogram entry is added or updated. @@ -13,7 +13,11 @@ another event, or compare and save a maximum. Add a simple framework for doing that; specific actions will be implemented on top of it in later patches. +Link: http://lkml.kernel.org/r/9482ba6a3eaf5ca6e60954314beacd0e25c05b24.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit b91ae245c2f781e6da0532d8545f51a0f1291cc0) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 106 ++++++++++++++++++++++++++++++++++++++- diff --git a/patches/0024-tracing-Add-support-for-synthetic-events.patch b/patches/0032-tracing-Add-support-for-synthetic-events.patch index 30d9e50fb79b..1873064cd980 100644 --- a/patches/0024-tracing-Add-support-for-synthetic-events.patch +++ b/patches/0032-tracing-Add-support-for-synthetic-events.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:58 -0600 -Subject: [PATCH 24/37] tracing: Add support for 'synthetic' events +Subject: [PATCH 32/48] tracing: Add support for 'synthetic' events Synthetic events are user-defined events generated from hist trigger variables saved from one or more other events. @@ -44,9 +44,13 @@ generated but defined by the user at run-time. How this can be automatically hooked up via a hist trigger 'action' is discussed in a subsequent patch. +Link: http://lkml.kernel.org/r/c68df2284b7d172669daf9be29db62ad49bbc559.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> [fix noderef.cocci warnings, sizeof pointer for kcalloc of event->fields] Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit cc9371f8641efd7ce6c8d4e1fd44eae249deadb4) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 895 ++++++++++++++++++++++++++++++++++++++- diff --git a/patches/0025-tracing-Add-support-for-field-variables.patch b/patches/0033-tracing-Add-support-for-field-variables.patch index 9afd0d7fb9fc..a155f63b748d 100644 --- a/patches/0025-tracing-Add-support-for-field-variables.patch +++ b/patches/0033-tracing-Add-support-for-field-variables.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:51:59 -0600 -Subject: [PATCH 25/37] tracing: Add support for 'field variables' +Subject: [PATCH 33/48] tracing: Add support for 'field variables' Users should be able to directly specify event fields in hist trigger 'actions' rather than being forced to explicitly create a variable for @@ -37,7 +37,11 @@ echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0: onmatch(sched.sched_waking).wakeup_latency($wakeup_lat,next_pid,prio) >> /sys/kernel/debug/tracing/events/sched/sched_switch/trigger +Link: http://lkml.kernel.org/r/8e8dcdac1ea180ed7a3689e1caeeccede9dc42b3.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 5fcd8c6efab39371cb3ce51b8b391a43e83a94de) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 531 ++++++++++++++++++++++++++++++++++++++- diff --git a/patches/0026-tracing-Add-onmatch-hist-trigger-action-support.patch b/patches/0034-tracing-Add-onmatch-hist-trigger-action-support.patch index 12abe5f8c745..04b6a43e0769 100644 --- a/patches/0026-tracing-Add-onmatch-hist-trigger-action-support.patch +++ b/patches/0034-tracing-Add-onmatch-hist-trigger-action-support.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:00 -0600 -Subject: [PATCH 26/37] tracing: Add 'onmatch' hist trigger action support +Subject: [PATCH 34/48] tracing: Add 'onmatch' hist trigger action support Add an 'onmatch(matching.event).<synthetic_event_name>(param list)' hist trigger action which is invoked with the set of variables or @@ -38,8 +38,12 @@ tracing/events/synthetic directory, as usual: # echo 'hist:keys=pid,prio:sort=pid,prio' >> \ /sys/kernel/debug/tracing/events/synthetic/wakeup_new_test/trigger +Link: http://lkml.kernel.org/r/8c2a574bcb7530c876629c901ecd23911b14afe8.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Rajvi Jingar <rajvi.jingar@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit ea82307e63ec125d8612d8cedd2618669f674226) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 488 +++++++++++++++++++++++++++++++++++++-- diff --git a/patches/0027-tracing-Add-onmax-hist-trigger-action-support.patch b/patches/0035-tracing-Add-onmax-hist-trigger-action-support.patch index 0c1c436b06d1..57f3d28ef2be 100644 --- a/patches/0027-tracing-Add-onmax-hist-trigger-action-support.patch +++ b/patches/0035-tracing-Add-onmax-hist-trigger-action-support.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:01 -0600 -Subject: [PATCH 27/37] tracing: Add 'onmax' hist trigger action support +Subject: [PATCH 35/48] tracing: Add 'onmax' hist trigger action support Add an 'onmax(var).save(field,...)' hist trigger action which is invoked whenever an event exceeds the current maximum. @@ -51,7 +51,11 @@ fields: Entries: 3 Dropped: 0 +Link: http://lkml.kernel.org/r/006907f71b1e839bb059337ec3c496f84fcb71de.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 4e30c922f0a19496ff424edd5c473666e1690601) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 331 ++++++++++++++++++++++++++++++++++----- diff --git a/patches/0035-tracing-Increase-trace_recursive_lock-limit-for-synt.patch b/patches/0035-tracing-Increase-trace_recursive_lock-limit-for-synt.patch deleted file mode 100644 index fe99b29424de..000000000000 --- a/patches/0035-tracing-Increase-trace_recursive_lock-limit-for-synt.patch +++ /dev/null @@ -1,43 +0,0 @@ -From: Tom Zanussi <tom.zanussi@linux.intel.com> -Date: Mon, 15 Jan 2018 20:52:09 -0600 -Subject: [PATCH 35/37] tracing: Increase trace_recursive_lock() limit for - synthetic events - -Synthetic event generation needs to happen while the current event is -still in progress, so add 1 to the trace_recursive_lock() recursion -limit to account for that. - -Because we also want to allow for the possibility of a synthetic event -being generated from another synthetic event, add an additional -increment for that as well. - -Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> -Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ---- - kernel/trace/ring_buffer.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - ---- a/kernel/trace/ring_buffer.c -+++ b/kernel/trace/ring_buffer.c -@@ -2593,16 +2593,16 @@ rb_wakeups(struct ring_buffer *buffer, s - * IRQ context - * NMI context - * -- * If for some reason the ring buffer starts to recurse, we -- * only allow that to happen at most 4 times (one for each -- * context). If it happens 5 times, then we consider this a -- * recusive loop and do not let it go further. -+ * If for some reason the ring buffer starts to recurse, we only allow -+ * that to happen at most 6 times (one for each context, plus possibly -+ * two levels of synthetic event generation). If it happens 7 times, -+ * then we consider this a recusive loop and do not let it go further. - */ - - static __always_inline int - trace_recursive_lock(struct ring_buffer_per_cpu *cpu_buffer) - { -- if (cpu_buffer->current_context >= 4) -+ if (cpu_buffer->current_context >= 6) - return 1; - - cpu_buffer->current_context++; diff --git a/patches/0028-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch b/patches/0036-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch index 98c93ab6b8ed..3d306b171c03 100644 --- a/patches/0028-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch +++ b/patches/0036-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:02 -0600 -Subject: [PATCH 28/37] tracing: Allow whitespace to surround hist trigger +Subject: [PATCH 36/48] tracing: Allow whitespace to surround hist trigger filter The existing code only allows for one space before and after the 'if' @@ -10,7 +10,11 @@ spaces in the trigger itself now that we have additional syntax (onmatch/onmax) where spaces are more natural e.g. spaces after commas in param lists. +Link: http://lkml.kernel.org/r/1053090c3c308d4f431accdeb59dff4b511d4554.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit ab257ec0f8eb50c58fafd50b1cb5352553f31ccf) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 37 ++++++++++++++++++++++++++++++++----- diff --git a/patches/0029-tracing-Add-cpu-field-for-hist-triggers.patch b/patches/0037-tracing-Add-cpu-field-for-hist-triggers.patch index 170248d578df..80f1abacf899 100644 --- a/patches/0029-tracing-Add-cpu-field-for-hist-triggers.patch +++ b/patches/0037-tracing-Add-cpu-field-for-hist-triggers.patch @@ -1,11 +1,15 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:03 -0600 -Subject: [PATCH 29/37] tracing: Add cpu field for hist triggers +Subject: [PATCH 37/48] tracing: Add cpu field for hist triggers A common key to use in a histogram is the cpuid - add a new cpu 'synthetic' field named 'cpu' for that purpose. +Link: http://lkml.kernel.org/r/89537645bfc957e0d76e2cacf5f0ada88691a6cc.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 4bfaa88f0e0e98e706d57647452e4d37afd78d00) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Documentation/trace/histogram.txt | 15 +++++++++++++++ diff --git a/patches/0030-tracing-Add-hist-trigger-support-for-variable-refere.patch b/patches/0038-tracing-Add-hist-trigger-support-for-variable-refere.patch index 816fff8e141d..f1a34d221161 100644 --- a/patches/0030-tracing-Add-hist-trigger-support-for-variable-refere.patch +++ b/patches/0038-tracing-Add-hist-trigger-support-for-variable-refere.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:04 -0600 -Subject: [PATCH 30/37] tracing: Add hist trigger support for variable +Subject: [PATCH 38/48] tracing: Add hist trigger support for variable reference aliases Add support for alias=$somevar where alias can be used as @@ -20,7 +20,11 @@ uses that in the call instead: onmatch(sched.sched_switch).wake2($latency,pid)' > /sys/kernel/debug/tracing/events/synthetic/wake1/trigger +Link: http://lkml.kernel.org/r/ef20a65d921af3a873a6f1e8c71407c926d5586f.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 53c5a4f99f1a5f6ba304453716da571f3e51bc79) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace_events_hist.c | 74 +++++++++++++++++++++++++++++++++++---- diff --git a/patches/0031-tracing-Add-last-error-error-facility-for-hist-trigg.patch b/patches/0039-tracing-Add-last-error-error-facility-for-hist-trigg.patch index 05b9342e7306..1d99c35cb82b 100644 --- a/patches/0031-tracing-Add-last-error-error-facility-for-hist-trigg.patch +++ b/patches/0039-tracing-Add-last-error-error-facility-for-hist-trigg.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:05 -0600 -Subject: [PATCH 31/37] tracing: Add 'last error' error facility for hist +Subject: [PATCH 39/48] tracing: Add 'last error' error facility for hist triggers With the addition of variables and actions, it's become necessary to @@ -22,7 +22,11 @@ trigger command for that event. Also add specific error messages for variable and action errors. +Link: http://lkml.kernel.org/r/64e9c422fc8aeafcc2f7a3b4328c0cffe7969129.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 215016863b5ec1ee5db5e20f32ffe015a497209f) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Documentation/trace/histogram.txt | 20 ++++ diff --git a/patches/0032-tracing-Add-inter-event-hist-trigger-Documentation.patch b/patches/0040-tracing-Add-inter-event-hist-trigger-Documentation.patch index b03f8680c248..362cb9490536 100644 --- a/patches/0032-tracing-Add-inter-event-hist-trigger-Documentation.patch +++ b/patches/0040-tracing-Add-inter-event-hist-trigger-Documentation.patch @@ -1,12 +1,16 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:06 -0600 -Subject: [PATCH 32/37] tracing: Add inter-event hist trigger Documentation +Subject: [PATCH 40/48] tracing: Add inter-event hist trigger Documentation Add background and details on inter-event hist triggers, including hist variables, synthetic events, and actions. +Link: http://lkml.kernel.org/r/b0414efb66535aa52aa7411f58c3d56724027fce.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Baohong Liu <baohong.liu@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 7d5f30af5e39e572f6984c1083fe79fd7dc34d04) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Documentation/trace/histogram.txt | 381 ++++++++++++++++++++++++++++++++++++++ diff --git a/patches/0033-tracing-Make-tracing_set_clock-non-static.patch b/patches/0041-tracing-Make-tracing_set_clock-non-static.patch index bd6e979f0e83..ac2cbeace022 100644 --- a/patches/0033-tracing-Make-tracing_set_clock-non-static.patch +++ b/patches/0041-tracing-Make-tracing_set_clock-non-static.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:07 -0600 -Subject: [PATCH 33/37] tracing: Make tracing_set_clock() non-static +Subject: [PATCH 41/48] tracing: Make tracing_set_clock() non-static Allow tracing code outside of trace.c to access tracing_set_clock(). @@ -9,7 +9,11 @@ properly, such as latency calculations. Also, add an accessor returning the current clock string. +Link: http://lkml.kernel.org/r/6d1c53e9ee2163f54e1849f5376573f54f0e6009.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit f8913a56885a33eda24452c1839102c305bf7df5) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/trace.c | 2 +- diff --git a/patches/0034-tracing-Add-a-clock-attribute-for-hist-triggers.patch b/patches/0042-tracing-Add-a-clock-attribute-for-hist-triggers.patch index c88cf85f42e6..c91bd41cbc7f 100644 --- a/patches/0034-tracing-Add-a-clock-attribute-for-hist-triggers.patch +++ b/patches/0042-tracing-Add-a-clock-attribute-for-hist-triggers.patch @@ -1,6 +1,6 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:08 -0600 -Subject: [PATCH 34/37] tracing: Add a clock attribute for hist triggers +Subject: [PATCH 42/48] tracing: Add a clock attribute for hist triggers The default clock if timestamps are used in a histogram is "global". If timestamps aren't used, the clock is irrelevant. @@ -8,8 +8,12 @@ If timestamps aren't used, the clock is irrelevant. Use the "clock=" param only if you want to override the default "global" clock for a histogram with timestamps. +Link: http://lkml.kernel.org/r/427bed1389c5d22aa40c3e0683e30cc3d151e260.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Rajvi Jingar <rajvi.jingar@intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 77e7689e0b182465cfcd7c328061b70eecdcde31) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- Documentation/trace/histogram.txt | 11 +++++++++ diff --git a/patches/0043-ring-buffer-Bring-back-context-level-recursive-check.patch b/patches/0043-ring-buffer-Bring-back-context-level-recursive-check.patch new file mode 100644 index 000000000000..bceb5eef48c4 --- /dev/null +++ b/patches/0043-ring-buffer-Bring-back-context-level-recursive-check.patch @@ -0,0 +1,127 @@ +From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> +Date: Mon, 15 Jan 2018 10:47:09 -0500 +Subject: [PATCH 43/48] ring-buffer: Bring back context level recursive checks + +Commit 1a149d7d3f45 ("ring-buffer: Rewrite trace_recursive_(un)lock() to be +simpler") replaced the context level recursion checks with a simple counter. +This would prevent the ring buffer code from recursively calling itself more +than the max number of contexts that exist (Normal, softirq, irq, nmi). But +this change caused a lockup in a specific case, which was during suspend and +resume using a global clock. Adding a stack dump to see where this occurred, +the issue was in the trace global clock itself: + + trace_buffer_lock_reserve+0x1c/0x50 + __trace_graph_entry+0x2d/0x90 + trace_graph_entry+0xe8/0x200 + prepare_ftrace_return+0x69/0xc0 + ftrace_graph_caller+0x78/0xa8 + queued_spin_lock_slowpath+0x5/0x1d0 + trace_clock_global+0xb0/0xc0 + ring_buffer_lock_reserve+0xf9/0x390 + +The function graph tracer traced queued_spin_lock_slowpath that was called +by trace_clock_global. This pointed out that the trace_clock_global() is not +reentrant, as it takes a spin lock. It depended on the ring buffer recursive +lock from letting that happen. + +By removing the context detection and adding just a max number of allowable +recursions, it allowed the trace_clock_global() to be entered again and try +to retake the spinlock it already held, causing a deadlock. + +Fixes: 1a149d7d3f45 ("ring-buffer: Rewrite trace_recursive_(un)lock() to be simpler") +Reported-by: David Weinehall <david.weinehall@gmail.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit a0e3a18f4baf8e3754ac1e56f0ade924d0c0c721) +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + kernel/trace/ring_buffer.c | 64 ++++++++++++++++++++++++++++++++------------- + 1 file changed, 46 insertions(+), 18 deletions(-) + +--- a/kernel/trace/ring_buffer.c ++++ b/kernel/trace/ring_buffer.c +@@ -2585,29 +2585,59 @@ rb_wakeups(struct ring_buffer *buffer, s + * The lock and unlock are done within a preempt disable section. + * The current_context per_cpu variable can only be modified + * by the current task between lock and unlock. But it can +- * be modified more than once via an interrupt. There are four +- * different contexts that we need to consider. ++ * be modified more than once via an interrupt. To pass this ++ * information from the lock to the unlock without having to ++ * access the 'in_interrupt()' functions again (which do show ++ * a bit of overhead in something as critical as function tracing, ++ * we use a bitmask trick. + * +- * Normal context. +- * SoftIRQ context +- * IRQ context +- * NMI context +- * +- * If for some reason the ring buffer starts to recurse, we +- * only allow that to happen at most 4 times (one for each +- * context). If it happens 5 times, then we consider this a +- * recusive loop and do not let it go further. ++ * bit 0 = NMI context ++ * bit 1 = IRQ context ++ * bit 2 = SoftIRQ context ++ * bit 3 = normal context. ++ * ++ * This works because this is the order of contexts that can ++ * preempt other contexts. A SoftIRQ never preempts an IRQ ++ * context. ++ * ++ * When the context is determined, the corresponding bit is ++ * checked and set (if it was set, then a recursion of that context ++ * happened). ++ * ++ * On unlock, we need to clear this bit. To do so, just subtract ++ * 1 from the current_context and AND it to itself. ++ * ++ * (binary) ++ * 101 - 1 = 100 ++ * 101 & 100 = 100 (clearing bit zero) ++ * ++ * 1010 - 1 = 1001 ++ * 1010 & 1001 = 1000 (clearing bit 1) ++ * ++ * The least significant bit can be cleared this way, and it ++ * just so happens that it is the same bit corresponding to ++ * the current context. + */ + + static __always_inline int + trace_recursive_lock(struct ring_buffer_per_cpu *cpu_buffer) + { +- if (cpu_buffer->current_context >= 4) ++ unsigned int val = cpu_buffer->current_context; ++ unsigned long pc = preempt_count(); ++ int bit; ++ ++ if (!(pc & (NMI_MASK | HARDIRQ_MASK | SOFTIRQ_OFFSET))) ++ bit = RB_CTX_NORMAL; ++ else ++ bit = pc & NMI_MASK ? RB_CTX_NMI : ++ pc & HARDIRQ_MASK ? RB_CTX_IRQ : ++ pc & SOFTIRQ_OFFSET ? 2 : RB_CTX_SOFTIRQ; ++ ++ if (unlikely(val & (1 << bit))) + return 1; + +- cpu_buffer->current_context++; +- /* Interrupts must see this update */ +- barrier(); ++ val |= (1 << bit); ++ cpu_buffer->current_context = val; + + return 0; + } +@@ -2615,9 +2645,7 @@ trace_recursive_lock(struct ring_buffer_ + static __always_inline void + trace_recursive_unlock(struct ring_buffer_per_cpu *cpu_buffer) + { +- /* Don't let the dec leak out */ +- barrier(); +- cpu_buffer->current_context--; ++ cpu_buffer->current_context &= cpu_buffer->current_context - 1; + } + + /** diff --git a/patches/0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch b/patches/0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch new file mode 100644 index 000000000000..c9ee7e0e8d34 --- /dev/null +++ b/patches/0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch @@ -0,0 +1,36 @@ +From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> +Date: Thu, 18 Jan 2018 15:42:09 -0500 +Subject: [PATCH 44/48] ring-buffer: Fix duplicate results in mapping context + to bits in recursive lock + +In bringing back the context checks, the code checks first if its normal +(non-interrupt) context, and then for NMI then IRQ then softirq. The final +check is redundant. Since the if branch is only hit if the context is one of +NMI, IRQ, or SOFTIRQ, if it's not NMI or IRQ there's no reason to check if +it is SOFTIRQ. The current code returns the same result even if its not a +SOFTIRQ. Which is confusing. + + pc & SOFTIRQ_OFFSET ? 2 : RB_CTX_SOFTIRQ + +Is redundant as RB_CTX_SOFTIRQ *is* 2! + +Fixes: a0e3a18f4baf ("ring-buffer: Bring back context level recursive checks") +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 0164e0d7e803af3ee1c63770978c728f8778ad01) +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + kernel/trace/ring_buffer.c | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/kernel/trace/ring_buffer.c ++++ b/kernel/trace/ring_buffer.c +@@ -2630,8 +2630,7 @@ trace_recursive_lock(struct ring_buffer_ + bit = RB_CTX_NORMAL; + else + bit = pc & NMI_MASK ? RB_CTX_NMI : +- pc & HARDIRQ_MASK ? RB_CTX_IRQ : +- pc & SOFTIRQ_OFFSET ? 2 : RB_CTX_SOFTIRQ; ++ pc & HARDIRQ_MASK ? RB_CTX_IRQ : RB_CTX_SOFTIRQ; + + if (unlikely(val & (1 << bit))) + return 1; diff --git a/patches/0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch b/patches/0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch new file mode 100644 index 000000000000..d7b349e10b01 --- /dev/null +++ b/patches/0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch @@ -0,0 +1,119 @@ +From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> +Date: Wed, 7 Feb 2018 17:26:32 -0500 +Subject: [PATCH 45/48] ring-buffer: Add nesting for adding events within + events + +The ring-buffer code has recusion protection in case tracing ends up tracing +itself, the ring-buffer will detect that it was called at the same context +(normal, softirq, interrupt or NMI), and not continue to record the event. + +With the histogram synthetic events, they are called while tracing another +event at the same context. The recusion protection triggers because it +detects tracing at the same context and stops it. + +Add ring_buffer_nest_start() and ring_buffer_nest_end() that will notify the +ring buffer that a trace is about to happen within another trace and that it +is intended, and not to trigger the recursion blocking. + +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit f932ff1d98c482716b4b71a5d76b2aa3d65f66f0) +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + include/linux/ring_buffer.h | 3 ++ + kernel/trace/ring_buffer.c | 57 +++++++++++++++++++++++++++++++++++++++++--- + 2 files changed, 57 insertions(+), 3 deletions(-) + +--- a/include/linux/ring_buffer.h ++++ b/include/linux/ring_buffer.h +@@ -120,6 +120,9 @@ int ring_buffer_unlock_commit(struct rin + int ring_buffer_write(struct ring_buffer *buffer, + unsigned long length, void *data); + ++void ring_buffer_nest_start(struct ring_buffer *buffer); ++void ring_buffer_nest_end(struct ring_buffer *buffer); ++ + struct ring_buffer_event * + ring_buffer_peek(struct ring_buffer *buffer, int cpu, u64 *ts, + unsigned long *lost_events); +--- a/kernel/trace/ring_buffer.c ++++ b/kernel/trace/ring_buffer.c +@@ -478,6 +478,7 @@ struct ring_buffer_per_cpu { + struct buffer_page *reader_page; + unsigned long lost_events; + unsigned long last_overrun; ++ unsigned long nest; + local_t entries_bytes; + local_t entries; + local_t overrun; +@@ -2632,10 +2633,10 @@ trace_recursive_lock(struct ring_buffer_ + bit = pc & NMI_MASK ? RB_CTX_NMI : + pc & HARDIRQ_MASK ? RB_CTX_IRQ : RB_CTX_SOFTIRQ; + +- if (unlikely(val & (1 << bit))) ++ if (unlikely(val & (1 << (bit + cpu_buffer->nest)))) + return 1; + +- val |= (1 << bit); ++ val |= (1 << (bit + cpu_buffer->nest)); + cpu_buffer->current_context = val; + + return 0; +@@ -2644,7 +2645,57 @@ trace_recursive_lock(struct ring_buffer_ + static __always_inline void + trace_recursive_unlock(struct ring_buffer_per_cpu *cpu_buffer) + { +- cpu_buffer->current_context &= cpu_buffer->current_context - 1; ++ cpu_buffer->current_context &= ++ cpu_buffer->current_context - (1 << cpu_buffer->nest); ++} ++ ++/* The recursive locking above uses 4 bits */ ++#define NESTED_BITS 4 ++ ++/** ++ * ring_buffer_nest_start - Allow to trace while nested ++ * @buffer: The ring buffer to modify ++ * ++ * The ring buffer has a safty mechanism to prevent recursion. ++ * But there may be a case where a trace needs to be done while ++ * tracing something else. In this case, calling this function ++ * will allow this function to nest within a currently active ++ * ring_buffer_lock_reserve(). ++ * ++ * Call this function before calling another ring_buffer_lock_reserve() and ++ * call ring_buffer_nest_end() after the nested ring_buffer_unlock_commit(). ++ */ ++void ring_buffer_nest_start(struct ring_buffer *buffer) ++{ ++ struct ring_buffer_per_cpu *cpu_buffer; ++ int cpu; ++ ++ /* Enabled by ring_buffer_nest_end() */ ++ preempt_disable_notrace(); ++ cpu = raw_smp_processor_id(); ++ cpu_buffer = buffer->buffers[cpu]; ++ /* This is the shift value for the above recusive locking */ ++ cpu_buffer->nest += NESTED_BITS; ++} ++ ++/** ++ * ring_buffer_nest_end - Allow to trace while nested ++ * @buffer: The ring buffer to modify ++ * ++ * Must be called after ring_buffer_nest_start() and after the ++ * ring_buffer_unlock_commit(). ++ */ ++void ring_buffer_nest_end(struct ring_buffer *buffer) ++{ ++ struct ring_buffer_per_cpu *cpu_buffer; ++ int cpu; ++ ++ /* disabled by ring_buffer_nest_start() */ ++ cpu = raw_smp_processor_id(); ++ cpu_buffer = buffer->buffers[cpu]; ++ /* This is the shift value for the above recusive locking */ ++ cpu_buffer->nest -= NESTED_BITS; ++ preempt_enable_notrace(); + } + + /** diff --git a/patches/0046-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch b/patches/0046-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch new file mode 100644 index 000000000000..006fb2afbd70 --- /dev/null +++ b/patches/0046-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch @@ -0,0 +1,54 @@ +From: "Steven Rostedt (VMware)" <rostedt@goodmis.org> +Date: Wed, 7 Feb 2018 17:29:46 -0500 +Subject: [PATCH 46/48] tracing: Use the ring-buffer nesting to allow synthetic + events to be traced + +Synthetic events can be done within the recording of other events. Notify +the ring buffer via ring_buffer_nest_start() and ring_buffer_nest_end() that +this is intended and not to block it due to its recursion protection. + +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 92c571543120ffed5e725f5b57b9de0b535e9d0a) +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + kernel/trace/trace_events_hist.c | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +--- a/kernel/trace/trace_events_hist.c ++++ b/kernel/trace/trace_events_hist.c +@@ -640,6 +640,7 @@ static notrace void trace_event_raw_even + struct trace_event_file *trace_file = __data; + struct synth_trace_event *entry; + struct trace_event_buffer fbuffer; ++ struct ring_buffer *buffer; + struct synth_event *event; + unsigned int i, n_u64; + int fields_size = 0; +@@ -651,10 +652,17 @@ static notrace void trace_event_raw_even + + fields_size = event->n_u64 * sizeof(u64); + ++ /* ++ * Avoid ring buffer recursion detection, as this event ++ * is being performed within another event. ++ */ ++ buffer = trace_file->tr->trace_buffer.buffer; ++ ring_buffer_nest_start(buffer); ++ + entry = trace_event_buffer_reserve(&fbuffer, trace_file, + sizeof(*entry) + fields_size); + if (!entry) +- return; ++ goto out; + + for (i = 0, n_u64 = 0; i < event->n_fields; i++) { + if (event->fields[i]->is_string) { +@@ -670,6 +678,8 @@ static notrace void trace_event_raw_even + } + + trace_event_buffer_commit(&fbuffer); ++out: ++ ring_buffer_nest_end(buffer); + } + + static void free_synth_event_print_fmt(struct trace_event_call *call) diff --git a/patches/0036-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch b/patches/0047-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch index be3540ae94f1..77f9db7c2252 100644 --- a/patches/0036-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch +++ b/patches/0047-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch @@ -1,13 +1,17 @@ From: Tom Zanussi <tom.zanussi@linux.intel.com> Date: Mon, 15 Jan 2018 20:52:10 -0600 -Subject: [PATCH 36/37] tracing: Add inter-event blurb to HIST_TRIGGERS config +Subject: [PATCH 47/48] tracing: Add inter-event blurb to HIST_TRIGGERS config option So that users know that inter-event tracing is supported as part of the HIST_TRIGGERS option, include text to that effect in the help text. +Link: http://lkml.kernel.org/r/a38e24231d8d980be636b56d35814570acfd167a.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit 02942764c4fd12caeb29868822b7744fa91a9ad0) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- kernel/trace/Kconfig | 5 ++++- diff --git a/patches/0037-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch b/patches/0048-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch index 616de058af38..98ac79d369bc 100644 --- a/patches/0037-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch +++ b/patches/0048-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch @@ -1,6 +1,6 @@ From: Rajvi Jingar <rajvi.jingar@intel.com> Date: Mon, 15 Jan 2018 20:52:11 -0600 -Subject: [PATCH 37/37] selftests: ftrace: Add inter-event hist triggers +Subject: [PATCH 48/48] selftests: ftrace: Add inter-event hist triggers testcases This adds inter-event hist triggers testcases which covers following: @@ -25,8 +25,12 @@ Subject: [PATCH 37/37] selftests: ftrace: Add inter-event hist triggers [6] event trigger - test inter-event histogram trigger onmax action [PASS] [7] event trigger - test synthetic event create remove [PASS] +Link: http://lkml.kernel.org/r/e07ef1e72f7bf0f84dc87c9b736d6dc91b4b0b49.1516069914.git.tom.zanussi@linux.intel.com + Signed-off-by: Rajvi Jingar <rajvi.jingar@intel.com> Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> +Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org> +(cherry picked from commit fb08b656dc9caee4a097bc4d8e050e2ead59bc24) Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- tools/testing/selftests/ftrace/test.d/functions | 7 + diff --git a/patches/brd-remove-unused-brd_mutex.patch b/patches/brd-remove-unused-brd_mutex.patch new file mode 100644 index 000000000000..ff9f7053b717 --- /dev/null +++ b/patches/brd-remove-unused-brd_mutex.patch @@ -0,0 +1,26 @@ +From: Mikulas Patocka <mpatocka@redhat.com> +Date: Fri, 10 Nov 2017 12:29:34 -0500 +Subject: [PATCH] brd: remove unused brd_mutex + +Upstream commit 15f7b41f70ddcca3b555bd0fdc7c8da7466b517e + +Remove unused mutex brd_mutex. It is unused since the commit ff26956875c2 +("brd: remove support for BLKFLSBUF"). + +Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> +Signed-off-by: Jens Axboe <axboe@kernel.dk> +Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> +--- + drivers/block/brd.c | 1 - + 1 file changed, 1 deletion(-) + +--- a/drivers/block/brd.c ++++ b/drivers/block/brd.c +@@ -60,7 +60,6 @@ struct brd_device { + /* + * Look up and return a brd's page for a given sector. + */ +-static DEFINE_MUTEX(brd_mutex); + static struct page *brd_lookup_page(struct brd_device *brd, sector_t sector) + { + pgoff_t idx; diff --git a/patches/localversion.patch b/patches/localversion.patch index e1f3b8d87864..340816c8febc 100644 --- a/patches/localversion.patch +++ b/patches/localversion.patch @@ -10,4 +10,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ -+-rt14 ++-rt15 diff --git a/patches/series b/patches/series index 63f164b7fd10..04f63ba2742e 100644 --- a/patches/series +++ b/patches/series @@ -6,6 +6,7 @@ # UPSTREAM changes queued ############################################################ rcu-Suppress-lockdep-false-positive-boost_mtx-compla.patch +brd-remove-unused-brd_mutex.patch ############################################################ # UPSTREAM FIXES, patches pending @@ -122,53 +123,56 @@ kernel-SRCU-provide-a-static-initializer.patch kernel-sched-Provide-a-pointer-to-the-valid-CPU-mask.patch add_migrate_disable.patch -# tracing: Bug fixes and minor cleanup | 2017-09-22 -0001-tracing-Steve-s-unofficial-trace_recursive_lock-patc.patch -0002-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch -0004-tracing-Remove-lookups-from-tracing_map-hitcount.patch -0005-tracing-Increase-tracing-map-KEYS_MAX-size.patch -0006-tracing-Make-traceprobe-parsing-code-reusable.patch -0007-tracing-Clean-up-hist_field_flags-enum.patch -0008-tracing-Add-hist_field_name-accessor.patch -0009-tracing-Reimplement-log2.patch -# v7 tracing: Inter-event (e.g. latency) support | 2017-12-06 -0001-tracing-Move-hist-trigger-Documentation-to-histogram.patch -0002-tracing-Add-Documentation-for-log2-modifier.patch -0003-tracing-Add-support-to-detect-and-avoid-duplicates.patch -0004-tracing-Remove-code-which-merges-duplicates.patch -0005-ring-buffer-Add-interface-for-setting-absolute-time-.patch -0006-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch -0007-tracing-Add-timestamp_mode-trace-file.patch -0008-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch -0009-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch -0010-tracing-Break-out-hist-trigger-assignment-parsing.patch -0011-tracing-Add-hist-trigger-timestamp-support.patch -0012-tracing-Add-per-element-variable-support-to-tracing_.patch -0013-tracing-Add-hist_data-member-to-hist_field.patch -0014-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch -0015-tracing-Add-variable-support-to-hist-triggers.patch -0016-tracing-Account-for-variables-in-named-trigger-compa.patch -0017-tracing-Move-get_hist_field_flags.patch -0018-tracing-Add-simple-expression-support-to-hist-trigge.patch -0019-tracing-Generalize-per-element-hist-trigger-data.patch -0020-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch -0021-tracing-Add-hist_field-type-field.patch -0022-tracing-Add-variable-reference-handling-to-hist-trig.patch -0023-tracing-Add-hist-trigger-action-hook.patch -0024-tracing-Add-support-for-synthetic-events.patch -0025-tracing-Add-support-for-field-variables.patch -0026-tracing-Add-onmatch-hist-trigger-action-support.patch -0027-tracing-Add-onmax-hist-trigger-action-support.patch -0028-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch -0029-tracing-Add-cpu-field-for-hist-triggers.patch -0030-tracing-Add-hist-trigger-support-for-variable-refere.patch -0031-tracing-Add-last-error-error-facility-for-hist-trigg.patch -0032-tracing-Add-inter-event-hist-trigger-Documentation.patch -0033-tracing-Make-tracing_set_clock-non-static.patch -0034-tracing-Add-a-clock-attribute-for-hist-triggers.patch -0035-tracing-Increase-trace_recursive_lock-limit-for-synt.patch -0036-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch -0037-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch +# tracing: Inter-event (e.g. latency) support +# cherry-picked from Steven's tracing tree. +0001-tracing-Reverse-the-order-of-trace_types_lock-and-ev.patch +0002-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch +0003-tracing-Remove-lookups-from-tracing_map-hitcount.patch +0004-tracing-Increase-tracing-map-KEYS_MAX-size.patch +0005-tracing-Make-traceprobe-parsing-code-reusable.patch +0006-tracing-Clean-up-hist_field_flags-enum.patch +0007-tracing-Add-hist_field_name-accessor.patch +0008-tracing-Reimplement-log2.patch +0009-tracing-Move-hist-trigger-Documentation-to-histogram.patch +0010-tracing-Add-Documentation-for-log2-modifier.patch +0011-tracing-Add-support-to-detect-and-avoid-duplicates.patch +0012-tracing-Remove-code-which-merges-duplicates.patch +0013-ring-buffer-Add-interface-for-setting-absolute-time-.patch +0014-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch +0015-tracing-Add-timestamp_mode-trace-file.patch +0016-tracing-Give-event-triggers-access-to-ring_buffer_ev.patch +0017-tracing-Add-ring-buffer-event-param-to-hist-field-fu.patch +0018-tracing-Break-out-hist-trigger-assignment-parsing.patch +0019-tracing-Add-hist-trigger-timestamp-support.patch +0020-tracing-Add-per-element-variable-support-to-tracing_.patch +0021-tracing-Add-hist_data-member-to-hist_field.patch +0022-tracing-Add-usecs-modifier-for-hist-trigger-timestam.patch +0023-tracing-Add-variable-support-to-hist-triggers.patch +0024-tracing-Account-for-variables-in-named-trigger-compa.patch +0025-tracing-Move-get_hist_field_flags.patch +0026-tracing-Add-simple-expression-support-to-hist-trigge.patch +0027-tracing-Generalize-per-element-hist-trigger-data.patch +0028-tracing-Pass-tracing_map_elt-to-hist_field-accessor-.patch +0029-tracing-Add-hist_field-type-field.patch +0030-tracing-Add-variable-reference-handling-to-hist-trig.patch +0031-tracing-Add-hist-trigger-action-hook.patch +0032-tracing-Add-support-for-synthetic-events.patch +0033-tracing-Add-support-for-field-variables.patch +0034-tracing-Add-onmatch-hist-trigger-action-support.patch +0035-tracing-Add-onmax-hist-trigger-action-support.patch +0036-tracing-Allow-whitespace-to-surround-hist-trigger-fi.patch +0037-tracing-Add-cpu-field-for-hist-triggers.patch +0038-tracing-Add-hist-trigger-support-for-variable-refere.patch +0039-tracing-Add-last-error-error-facility-for-hist-trigg.patch +0040-tracing-Add-inter-event-hist-trigger-Documentation.patch +0041-tracing-Make-tracing_set_clock-non-static.patch +0042-tracing-Add-a-clock-attribute-for-hist-triggers.patch +0043-ring-buffer-Bring-back-context-level-recursive-check.patch +0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch +0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch +0046-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch +0047-tracing-Add-inter-event-blurb-to-HIST_TRIGGERS-confi.patch +0048-selftests-ftrace-Add-inter-event-hist-triggers-testc.patch # SCHED BLOCK/WQ block-shorten-interrupt-disabled-regions.patch |