Patch "tracing: Fix check for cpu online when event is disabled" has been added to the 3.10-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
tracing: Fix check for cpu online when event is disabled
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
tracing-fix-check-for-cpu-online-when-event-is-disabled.patch
and it can be found in the queue-3.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
dc17147de328a74bbdee67c1bf37d2f1992de756Mon Sep 17 00:00:00 2001
From: "Steven Rostedt (Red Hat)" <[email protected]>
Date: Wed, 9 Mar 2016 11:58:41 -0500
Subject: tracing: Fix check for cpu online when event is disabled
From: Steven Rostedt (Red Hat) <[email protected]>
commit dc17147de328a74bbdee67c1bf37d2f1992de756 upstream.
Commit f37755490fe9b ("tracepoints: Do not trace when cpu is offline") added a check to make sure that tracepoints only get called when the cpu is online, as it uses rcu_read_lock_sched() for protection.
Commit 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints are disabled") added lockdep checks (including rcu checks) for events that are not enabled to catch possible RCU issues that would only be triggered if a trace event was enabled. Commit f37755490fe9b only stopped the warnings when the trace event was enabled but did not prevent warnings if the trace event was called when disabled.
To fix this, the cpu online check is moved to where the condition is added to the trace event. This will place the cpu online check in all places that it may be used now and in the future.
--- include/linux/tracepoint.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)
include/linux/tracepoint.h +9 -8
@@ -129,9 +129,6 @@ static inline void tracepoint_synchronizvoid *it_func; \void *__data; \ \ -if (!cpu_online (raw_smp_processor_id ())) \ -return ; \ - \if (!(cond)) \return ; \ prercu; \
@@ -265,15 +262,19 @@ static inline void tracepoint_synchroniz* "void *__data, proto" as the callback prototype. */ #define DECLARE_TRACE_NOARGS (name) \ - __DECLARE_TRACE(name, void, , 1, void *__data, __data) + __DECLARE_TRACE(name, void, , \ + cpu_online(raw_smp_processor_id()), \ + void *__data, __data)#define DECLARE_TRACE (name, proto, args) \ - __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \ - PARAMS(void *__data, proto), \ - PARAMS(__data, args)) + __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ + cpu_online(raw_smp_processor_id()), \ + PARAMS(void *__data, proto), \ + PARAMS(__data, args))#define DECLARE_TRACE_CONDITION (name, proto, args, cond) \ - __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), PARAMS(cond), \ + __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ + cpu_online(raw_smp_processor_id()) && (PARAMS(cond)), \ PARAMS(void *__data, proto), \ PARAMS(__data, args))
Patches currently in stable-queue which might be from [email protected] are
queue-3.10/tracing-fix-check-for-cpu-online-when-event-is-disabled.patch
Quoted 8 lines · Greg Kroah-Hartman
This is a note to let you know that I've just added the patch titled
tracing: Fix check for cpu online when event is disabled
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
Quoted 7 lines
The filename of the patch is:
tracing-fix-check-for-cpu-online-when-event-is-disabled.patch
and it can be found in the queue-3.10 subdirectory.If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Please note that this patch was tagged for stable 3.18+.
Cheers,
--
Lu�s
Quoted 82 lines
From
dc17147de328a74bbdee67c1bf37d2f1992de756Mon Sep 17 00:00:00 2001
From: "Steven Rostedt (Red Hat)" <[email protected]>
Date: Wed, 9 Mar 2016 11:58:41 -0500
Subject: tracing: Fix check for cpu online when event is disabledFrom: Steven Rostedt (Red Hat) <[email protected]>
commit
dc17147de328a74bbdee67c1bf37d2f1992de756upstream.Commit
f37755490fe9b("tracepoints: Do not trace when cpu is offline") added a check to make sure that tracepoints only get called when the cpu is online, as it usesrcu_read_lock_sched()for protection.Commit
3a630178fd5f3("tracing: generate RCU warnings even when tracepoints are disabled") added lockdep checks (including rcu checks) for events that are not enabled to catch possible RCU issues that would only be triggered if a trace event was enabled. Commitf37755490fe9bonly stopped the warnings when the trace event was enabled but did not prevent warnings if the trace event was called when disabled.To fix this, the cpu online check is moved to where the condition is added to the trace event. This will place the cpu online check in all places that it may be used now and in the future.
Fixes f37755490fe9b ("tracepoints: Do not trace when cpu is offline")Fixes 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints are disabled")Reported-by Sudeep Holla <[email protected]>Tested-by Sudeep Holla <[email protected]>Signed-off-by Steven Rostedt <[email protected]>Signed-off-by Greg Kroah-Hartman <[email protected]>--- include/linux/tracepoint.h | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-)include/linux/tracepoint.h +9
-8@@ -129,9 +129,6 @@ static inline void tracepoint_synchronizvoid *it_func; \void *__data; \ \ -if (!cpu_online (raw_smp_processor_id ())) \ -return ; \ - \if (!(cond)) \return ; \ prercu; \@@ -265,15 +262,19 @@ static inline void tracepoint_synchroniz* "void *__data, proto" as the callback prototype. */ #define DECLARE_TRACE_NOARGS (name) \ - __DECLARE_TRACE(name, void, , 1, void *__data, __data) + __DECLARE_TRACE(name, void, , \ + cpu_online(raw_smp_processor_id()), \ + void *__data, __data)#define DECLARE_TRACE (name, proto, args) \ - __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \ - PARAMS(void *__data, proto), \ - PARAMS(__data, args)) + __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ + cpu_online(raw_smp_processor_id()), \ + PARAMS(void *__data, proto), \ + PARAMS(__data, args))#define DECLARE_TRACE_CONDITION (name, proto, args, cond) \ - __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), PARAMS(cond), \ + __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ + cpu_online(raw_smp_processor_id()) && (PARAMS(cond)), \ PARAMS(void *__data, proto), \ PARAMS(__data, args))Patches currently in stable-queue which might be from [email protected] are
queue-3.10/tracing-fix-check-for-cpu-online-when-event-is-disabled.patch--
To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Greg KH
maintainerQuoted 13 lines · Luis Henriques
Quoted 12 lines · Greg Kroah-Hartman
This is a note to let you know that I've just added the patch titled
tracing: Fix check for cpu online when event is disabled
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summaryThe filename of the patch is:
tracing-fix-check-for-cpu-online-when-event-is-disabled.patch
and it can be found in the queue-3.10 subdirectory.
Quoted 5 lines
Quoted 3 lines
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Please note that this patch was tagged for stable 3.18+.
Please fix your scripts, and look deeper down the chain... :)
Steven Rostedt
maintainerQuoted 13 lines · On Mon, 14 Mar 2016 17:18:52 +0000 Luis Henriques…
Quoted 12 lines · Greg Kroah-Hartman
This is a note to let you know that I've just added the patch titled
tracing: Fix check for cpu online when event is disabled
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summaryThe filename of the patch is:
tracing-fix-check-for-cpu-online-when-event-is-disabled.patch
and it can be found in the queue-3.10 subdirectory.
Quoted 6 lines
Quoted 3 lines
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Please note that this patch was tagged for stable 3.18+.
Correct. That's because:
Quoted 4 lines
Quoted 4 lines
Commit
f37755490fe9b("tracepoints: Do not trace when cpu is offline") added a check to make sure that tracepoints only get called when the cpu is online, as it usesrcu_read_lock_sched()for protection.
This was added much earlier and fixes a real bug in various places.
Quoted 7 lines
Quoted 7 lines
Commit
3a630178fd5f3("tracing: generate RCU warnings even when tracepoints are disabled") added lockdep checks (including rcu checks) for events that are not enabled to catch possible RCU issues that would only be triggered if a trace event was enabled. Commitf37755490fe9bonly stopped the warnings when the trace event was enabled but did not prevent warnings if the trace event was called when disabled.
The above wasn't added till 3.18, which warns when the trace event is not enabled. With the backported patch, it now triggers false warnings. But the false warnings wont exist before 3.18.
It doesn't hurt to backport this patch further, it's just not necessary, unless 3a630178fd5f3 was backported too. Was it?
-- Steve
Quoted 40 lines · Steven Rostedt
Quoted 13 lines · On Mon, 14 Mar 2016 17:18:52 +0000 Luis Henriques…
Quoted 12 lines · Greg Kroah-Hartman
This is a note to let you know that I've just added the patch titled
tracing: Fix check for cpu online when event is disabled
to the 3.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summaryThe filename of the patch is:
tracing-fix-check-for-cpu-online-when-event-is-disabled.patch
and it can be found in the queue-3.10 subdirectory.Quoted 6 lines
Quoted 3 lines
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Please note that this patch was tagged for stable 3.18+.
Correct. That's because:
Quoted 4 lines
Quoted 4 lines
Commit
f37755490fe9b("tracepoints: Do not trace when cpu is offline") added a check to make sure that tracepoints only get called when the cpu is online, as it usesrcu_read_lock_sched()for protection.This was added much earlier and fixes a real bug in various places.
Quoted 7 lines
Quoted 7 lines
Commit
3a630178fd5f3("tracing: generate RCU warnings even when tracepoints are disabled") added lockdep checks (including rcu checks) for events that are not enabled to catch possible RCU issues that would only be triggered if a trace event was enabled. Commitf37755490fe9bonly stopped the warnings when the trace event was enabled but did not prevent warnings if the trace event was called when disabled.
Quoted 9 lines
The above wasn't added till 3.18, which warns when the trace event is not enabled. With the backported patch, it now triggers false warnings. But the false warnings wont exist before 3.18.
It doesn't hurt to backport this patch further, it's just not necessary, unless
3a630178fd5f3was backported too. Was it?-- Steve
Thanks for clarifying, Steve. I don't think commit 3a630178fd5f3 has been backport to stable kernels, so if you're saying it doesn't hurt to backport dc17147de328 I guess that's up to the stable maintainers to include it or not. Thanks!
Cheers,
--
Lu�s
Steven Rostedt
maintainerQuoted 4 lines · On Mon, 14 Mar 2016 18:14:18 +0000 Luis Henriques…
Thanks for clarifying, Steve. I don't think commit
3a630178fd5f3has been backport to stable kernels, so if you're saying it doesn't hurt to backportdc17147de328I guess that's up to the stable maintainers to include it or not. Thanks!
Right, it doesn't hurt to backport the patch as it's just a more robust way to do the same change as it was fixing. I only added the 3.18 tag in case the change failed to apply to stable trees earlier than 3.18. Then it wouldn't need to be backported unless 3a630178fd5f3 was.
-- Steve