Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752093AbbD3PK2 (ORCPT ); Thu, 30 Apr 2015 11:10:28 -0400 Received: from mx1.redhat.com ([209.132.183.28]:50361 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751499AbbD3PK1 (ORCPT ); Thu, 30 Apr 2015 11:10:27 -0400 From: Jerry Snitselaar To: linux-kernel@vger.kernel.org Cc: Steven Rostedt , Ingo Molnar Subject: [PATCH v2] tracing: Export tracing clock functions Date: Thu, 30 Apr 2015 08:10:24 -0700 Message-Id: <1430406624-22609-1-git-send-email-jsnitsel@redhat.com> In-Reply-To: <1430404600-15141-1-git-send-email-jsnitsel@redhat.com> References: <1430404600-15141-1-git-send-email-jsnitsel@redhat.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1681 Lines: 55 Critical tracepoint hooks should never call anything that takes a lock, so they are unable to call getrawmonotonic() or ktime_get(). Export the rest of the tracing clock functions so can be used in tracepoint hooks. Background: We have a customer that adds their own module and registers a tracepoint hook to sched_wakeup. They were using ktime_get() for a time source, but it grabs a seq lock and caused a deadlock to occur. v2: added background info and fixed typo Cc: Steven Rostedt Cc: Ingo Molnar Signed-off-by: Jerry Snitselaar --- kernel/trace/trace_clock.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/kernel/trace/trace_clock.c b/kernel/trace/trace_clock.c index 57b67b1..0f06532 100644 --- a/kernel/trace/trace_clock.c +++ b/kernel/trace/trace_clock.c @@ -56,6 +56,7 @@ u64 notrace trace_clock(void) { return local_clock(); } +EXPORT_SYMBOL_GPL(trace_clock); /* * trace_jiffy_clock(): Simply use jiffies as a clock counter. @@ -68,6 +69,7 @@ u64 notrace trace_clock_jiffies(void) { return jiffies_64_to_clock_t(jiffies_64 - INITIAL_JIFFIES); } +EXPORT_SYMBOL_GPL(trace_clock_jiffies); /* * trace_clock_global(): special globally coherent trace clock @@ -123,6 +125,7 @@ u64 notrace trace_clock_global(void) return now; } +EXPORT_SYMBOL_GPL(trace_clock_global); static atomic64_t trace_counter; -- 2.4.0.rc3.3.g6eb1401 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/