From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751456AbcGLTJi (ORCPT ); Tue, 12 Jul 2016 15:09:38 -0400 Received: from mail.kernel.org ([198.145.29.136]:60814 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750885AbcGLTIr (ORCPT ); Tue, 12 Jul 2016 15:08:47 -0400 Message-Id: <20160712190842.386699928@goodmis.org> User-Agent: quilt/0.61-1 Date: Tue, 12 Jul 2016 15:08:30 -0400 From: Steven Rostedt To: linux-kernel@vger.kernel.org, linux-rt-users Cc: Thomas Gleixner , Carsten Emde , Sebastian Andrzej Siewior , John Kacur , Paul Gortmaker , Subject: [PATCH RT 2/4] trace: correct off by one while recording the trace-event References: <20160712190828.355044001@goodmis.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Disposition: inline; filename=0002-trace-correct-off-by-one-while-recording-the-trace-e.patch Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 3.4.112-rt143-rc1 stable review patch. If anyone has any objections, please let me know. ------------------ From: Sebastian Andrzej Siewior Trace events like raw_syscalls show always a preempt code of one. The reason is that on PREEMPT kernels rcu_read_lock_sched_notrace() increases the preemption counter and the function recording the counter is caller within the RCU section. Cc: stable-rt@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior [ Changed this to upstream version. See commit e947841c0dce ] Signed-off-by: Steven Rostedt --- include/trace/ftrace.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/trace/ftrace.h b/include/trace/ftrace.h index 763bf05ccb27..73aab555b42d 100644 --- a/include/trace/ftrace.h +++ b/include/trace/ftrace.h @@ -530,6 +530,9 @@ ftrace_raw_event_##call(void *__data, proto) \ \ local_save_flags(irq_flags); \ pc = preempt_count(); \ + /* Account for tracepoint preempt disable */ \ + if (IS_ENABLED(CONFIG_PREEMPT)) \ + pc--; \ \ __data_size = ftrace_get_offsets_##call(&__data_offsets, args); \ \ -- 2.8.1