[PATCH 1/5] tracing/ftrace: Types and naming corrections for sched tracer - Kernel

This is a discussion on [PATCH 1/5] tracing/ftrace: Types and naming corrections for sched tracer - Kernel ; This patch applies some corrections suggested by Steven Rostedt. Change the type of shed_ref into int since it is used into a Mutex, we don't need it anymore as an atomic variable in the sched_switch tracer. Also change the name ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: [PATCH 1/5] tracing/ftrace: Types and naming corrections for sched tracer

  1. [PATCH 1/5] tracing/ftrace: Types and naming corrections for sched tracer

    This patch applies some corrections suggested by Steven Rostedt.

    Change the type of shed_ref into int since it is used
    into a Mutex, we don't need it anymore as an atomic
    variable in the sched_switch tracer.
    Also change the name of the register mutex.


    Signed-off-by: Frederic Weisbecker
    Cc: Steven Rostedt
    ---
    kernel/trace/trace_sched_switch.c | 30 +++++++++++++-----------------
    1 files changed, 13 insertions(+), 17 deletions(-)

    diff --git a/kernel/trace/trace_sched_switch.c
    b/kernel/trace/trace_sched_switch.c
    index 9d7bdac..969953b 100644
    --- a/kernel/trace/trace_sched_switch.c
    +++ b/kernel/trace/trace_sched_switch.c
    @@ -16,8 +16,8 @@

    static struct trace_array *ctx_trace;
    static int __read_mostly tracer_enabled;
    -static atomic_t sched_ref;
    -static DEFINE_MUTEX(tracepoint_mutex);
    +static int sched_ref;
    +static DEFINE_MUTEX(sched_register_mutex);

    static void
    probe_sched_switch(struct rq *__rq, struct task_struct *prev,
    @@ -28,7 +28,7 @@ probe_sched_switch(struct rq *__rq, struct task_struct *prev,
    int cpu;
    int pc;

    - if (!atomic_read(&sched_ref))
    + if (!sched_ref)
    return;

    tracing_record_cmdline(prev);
    @@ -124,26 +124,22 @@ static void tracing_sched_unregister(void)

    static void tracing_start_sched_switch(void)
    {
    - long ref;
    -
    - mutex_lock(&tracepoint_mutex);
    - tracer_enabled = 1;
    - ref = atomic_inc_return(&sched_ref);
    - if (ref == 1)
    + mutex_lock(&sched_register_mutex);
    + if (!(sched_ref++)) {
    + tracer_enabled = 1;
    tracing_sched_register();
    - mutex_unlock(&tracepoint_mutex);
    + }
    + mutex_unlock(&sched_register_mutex);
    }

    static void tracing_stop_sched_switch(void)
    {
    - long ref;
    -
    - mutex_lock(&tracepoint_mutex);
    - tracer_enabled = 0;
    - ref = atomic_dec_and_test(&sched_ref);
    - if (ref)
    + mutex_lock(&sched_register_mutex);
    + if (!(--sched_ref)) {
    tracing_sched_unregister();
    - mutex_unlock(&tracepoint_mutex);
    + tracer_enabled = 0;
    + }
    + mutex_unlock(&sched_register_mutex);
    }

    void tracing_start_cmdline_record(void)
    --
    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/

  2. Re: [PATCH 1/5] tracing/ftrace: Types and naming corrections for sched tracer

    2008/10/22 Frederic Weisbecker :
    > This patch applies some corrections suggested by Steven Rostedt.
    >
    > Change the type of shed_ref into int since it is used
    > into a Mutex, we don't need it anymore as an atomic
    > variable in the sched_switch tracer.
    > Also change the name of the register mutex.
    >
    >
    > Signed-off-by: Frederic Weisbecker
    > Cc: Steven Rostedt
    > ---
    > kernel/trace/trace_sched_switch.c | 30 +++++++++++++-----------------
    > 1 files changed, 13 insertions(+), 17 deletions(-)
    >
    > diff --git a/kernel/trace/trace_sched_switch.c
    > b/kernel/trace/trace_sched_switch.c
    > index 9d7bdac..969953b 100644
    > --- a/kernel/trace/trace_sched_switch.c
    > +++ b/kernel/trace/trace_sched_switch.c
    > @@ -16,8 +16,8 @@
    >
    > static struct trace_array *ctx_trace;
    > static int __read_mostly tracer_enabled;
    > -static atomic_t sched_ref;
    > -static DEFINE_MUTEX(tracepoint_mutex);
    > +static int sched_ref;
    > +static DEFINE_MUTEX(sched_register_mutex);
    >
    > static void
    > probe_sched_switch(struct rq *__rq, struct task_struct *prev,
    > @@ -28,7 +28,7 @@ probe_sched_switch(struct rq *__rq, struct task_struct *prev,
    > int cpu;
    > int pc;
    >
    > - if (!atomic_read(&sched_ref))
    > + if (!sched_ref)
    > return;
    >
    > tracing_record_cmdline(prev);
    > @@ -124,26 +124,22 @@ static void tracing_sched_unregister(void)
    >
    > static void tracing_start_sched_switch(void)
    > {
    > - long ref;
    > -
    > - mutex_lock(&tracepoint_mutex);
    > - tracer_enabled = 1;
    > - ref = atomic_inc_return(&sched_ref);
    > - if (ref == 1)
    > + mutex_lock(&sched_register_mutex);
    > + if (!(sched_ref++)) {
    > + tracer_enabled = 1;
    > tracing_sched_register();
    > - mutex_unlock(&tracepoint_mutex);
    > + }
    > + mutex_unlock(&sched_register_mutex);
    > }
    >
    > static void tracing_stop_sched_switch(void)
    > {
    > - long ref;
    > -
    > - mutex_lock(&tracepoint_mutex);
    > - tracer_enabled = 0;
    > - ref = atomic_dec_and_test(&sched_ref);
    > - if (ref)
    > + mutex_lock(&sched_register_mutex);
    > + if (!(--sched_ref)) {
    > tracing_sched_unregister();
    > - mutex_unlock(&tracepoint_mutex);
    > + tracer_enabled = 0;
    > + }
    > + mutex_unlock(&sched_register_mutex);
    > }
    >
    > void tracing_start_cmdline_record(void)
    >


    Correction, it's not anymore a 1/5, it's just a resend.
    --
    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/

+ Reply to Thread