lkml.org 
[lkml]   [2021]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH V5 12/14] trace: Protect tr->tracing_cpumask with get/put_online_cpus
    Date
    In preparation to the hotplug support on tracers with workload,
    protect tr->tracing_cpumask with get/put_online_cpus() to avoid
    concurrency with hotplug operations.

    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Alexandre Chartre <alexandre.chartre@oracle.com>
    Cc: Clark Willaims <williams@redhat.com>
    Cc: John Kacur <jkacur@redhat.com>
    Cc: Juri Lelli <juri.lelli@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: x86@kernel.org
    Cc: linux-doc@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
    ---
    kernel/trace/trace.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
    index 52fc9438b7b4..c14f33db147e 100644
    --- a/kernel/trace/trace.c
    +++ b/kernel/trace/trace.c
    @@ -5053,7 +5053,13 @@ int tracing_set_cpumask(struct trace_array *tr,
    arch_spin_unlock(&tr->max_lock);
    local_irq_enable();

    + /*
    + * tracing_cpumask is read by tracers that support CPU
    + * hotplug.
    + */
    + get_online_cpus();
    cpumask_copy(tr->tracing_cpumask, tracing_cpumask_new);
    + put_online_cpus();

    return 0;
    }
    --
    2.31.1
    \
     
     \ /
      Last update: 2021-06-22 16:45    [W:4.283 / U:0.020 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site