]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/3.18.62/tracing-use-softirq_offset-for-softirq-dectection-for-more-accurate-results.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 3.18.62 / tracing-use-softirq_offset-for-softirq-dectection-for-more-accurate-results.patch
1 From c59f29cb144a6a0dfac16ede9dc8eafc02dc56ca Mon Sep 17 00:00:00 2001
2 From: Pavankumar Kondeti <pkondeti@codeaurora.org>
3 Date: Fri, 9 Dec 2016 21:50:17 +0530
4 Subject: tracing: Use SOFTIRQ_OFFSET for softirq dectection for more accurate results
5
6 From: Pavankumar Kondeti <pkondeti@codeaurora.org>
7
8 commit c59f29cb144a6a0dfac16ede9dc8eafc02dc56ca upstream.
9
10 The 's' flag is supposed to indicate that a softirq is running. This
11 can be detected by testing the preempt_count with SOFTIRQ_OFFSET.
12
13 The current code tests the preempt_count with SOFTIRQ_MASK, which
14 would be true even when softirqs are disabled but not serving a
15 softirq.
16
17 Link: http://lkml.kernel.org/r/1481300417-3564-1-git-send-email-pkondeti@codeaurora.org
18
19 Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
20 Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
21 Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
22 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
23
24 ---
25 kernel/trace/trace.c | 2 +-
26 1 file changed, 1 insertion(+), 1 deletion(-)
27
28 --- a/kernel/trace/trace.c
29 +++ b/kernel/trace/trace.c
30 @@ -1587,7 +1587,7 @@ tracing_generic_entry_update(struct trac
31 TRACE_FLAG_IRQS_NOSUPPORT |
32 #endif
33 ((pc & HARDIRQ_MASK) ? TRACE_FLAG_HARDIRQ : 0) |
34 - ((pc & SOFTIRQ_MASK) ? TRACE_FLAG_SOFTIRQ : 0) |
35 + ((pc & SOFTIRQ_OFFSET) ? TRACE_FLAG_SOFTIRQ : 0) |
36 (tif_need_resched() ? TRACE_FLAG_NEED_RESCHED : 0) |
37 (test_preempt_need_resched() ? TRACE_FLAG_PREEMPT_RESCHED : 0);
38 }