lkml.org 
[lkml]   [2010]   [Jun]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 01/13] jump label v9: notifier atomic call chain notrace
    From: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>

    In LTTng, being able to use the atomic notifier from cpu idle entry to
    ensure the tracer flush the last events in the current subbuffer
    requires the rcu read-side to be marked "notrace", otherwise it can end
    up calling back into lockdep and the tracer.

    Also apply to the the die notifier.

    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
    Signed-off-by: Jason Baron <jbaron@redhat.com>
    Reviewed-by: Masami Hiramatsu <mhiramat@redhat.com>
    ---
    kernel/notifier.c | 6 +++---
    1 files changed, 3 insertions(+), 3 deletions(-)

    diff --git a/kernel/notifier.c b/kernel/notifier.c
    index 2488ba7..88453a7 100644
    --- a/kernel/notifier.c
    +++ b/kernel/notifier.c
    @@ -148,7 +148,7 @@ int atomic_notifier_chain_unregister(struct atomic_notifier_head *nh,
    spin_lock_irqsave(&nh->lock, flags);
    ret = notifier_chain_unregister(&nh->head, n);
    spin_unlock_irqrestore(&nh->lock, flags);
    - synchronize_rcu();
    + synchronize_sched();
    return ret;
    }
    EXPORT_SYMBOL_GPL(atomic_notifier_chain_unregister);
    @@ -178,9 +178,9 @@ int __kprobes __atomic_notifier_call_chain(struct atomic_notifier_head *nh,
    {
    int ret;

    - rcu_read_lock();
    + rcu_read_lock_sched_notrace();
    ret = notifier_call_chain(&nh->head, val, v, nr_to_call, nr_calls);
    - rcu_read_unlock();
    + rcu_read_unlock_sched_notrace();
    return ret;
    }
    EXPORT_SYMBOL_GPL(__atomic_notifier_call_chain);
    --
    1.7.1


    \
     
     \ /
      Last update: 2010-06-09 23:41    [W:0.020 / U:92.344 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site