summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Andrzej Siewior <bigeasy@linutronix.de>2018-02-09 23:50:42 +0100
committerSebastian Andrzej Siewior <bigeasy@linutronix.de>2018-02-09 23:50:42 +0100
commit06425a6e2d38da7642d476124145511c1e681086 (patch)
treec3d7c1d2e375ab393e400e394b82367afaa60558
parent27fce157d2679066e8895a089fddba5ba5e80636 (diff)
downloadlinux-rt-4.14.18-rt15-patches.tar.gz
[ANNOUNCE] v4.14.18-rt15v4.14.18-rt15-patches
Dear RT folks! I'm pleased to announce the v4.14.18-rt15 patch set. Changes since v4.14.18-rt14: - Remove unused mutex brd_mutex, it was causing a "defined but not used warning". Reported by Dan Murphy, patch by Mikulas Patocka. - Update the "tracing: Inter-event (e.g. latency) support" patch to what was merged in the end. The significant change is probably the inclusion of commit a0e3a18f4baf ("ring-buffer: Bring back context level recursive checks"). Known issues - A warning triggered in "rcu_note_context_switch" originated from SyS_timer_gettime(). The issue was always there, it is now visible. Reported by Grygorii Strashko and Daniel Wagner. The delta patch against v4.14.18-rt14 is appended below and can be found here: https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.14/incr/patch-4.14.18-rt14-rt15.patch.xz You can get this release via the git tree at: git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.14.18-rt15 The RT patch against v4.14.18 can be found here: https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patch-4.14.18-rt15.patch.xz The split quilt queue is available at: https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.14/older/patches-4.14.18-rt15.tar.xz Sebastian Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-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.patch43
-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.patch127
-rw-r--r--patches/0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch36
-rw-r--r--patches/0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch119
-rw-r--r--patches/0046-tracing-Use-the-ring-buffer-nesting-to-allow-synthet.patch54
-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.patch26
-rw-r--r--patches/localversion.patch2
-rw-r--r--patches/series98
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