lkml.org 
[lkml]   [2015]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2] tracing: Export tracing clock functions
    Date
    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 <rostedt@goodmis.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Signed-off-by: Jerry Snitselaar <jsnitsel@redhat.com>
    ---
    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


    \
     
     \ /
      Last update: 2015-04-30 17:21    [W:3.120 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site