]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Revert: "ring-buffer: Do not have boot mapped buffers hook to CPU hotplug"
authorSteven Rostedt <rostedt@goodmis.org>
Thu, 14 Nov 2024 04:08:39 +0000 (23:08 -0500)
committerSteven Rostedt (Google) <rostedt@goodmis.org>
Thu, 14 Nov 2024 15:01:00 +0000 (10:01 -0500)
A crash happened when testing cpu hotplug with respect to the memory
mapped ring buffers. It was assumed that the hot plug code was adding a
per CPU buffer that was already created that caused the crash. The real
problem was due to ref counting and was fixed by commit 2cf9733891a4
("ring-buffer: Fix refcount setting of boot mapped buffers").

When a per CPU buffer is created, it will not be created again even with
CPU hotplug, so the fix to not use CPU hotplug was a red herring. In fact,
it caused only the boot CPU buffer to be created, leaving the other CPU
per CPU buffers disabled.

Revert that change as it was not the culprit of the fix it was intended to
be.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/20241113230839.6c03640f@gandalf.local.home
Fixes: 912da2c384d5 ("ring-buffer: Do not have boot mapped buffers hook to CPU hotplug")
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
kernel/trace/ring_buffer.c

index 3ea4f7bb1837ce74fa44d95b07cd5f2f8acf02e8..5807116bcd0bf7d1310a6ecf7272a09315460eaa 100644 (file)
@@ -2337,12 +2337,9 @@ static struct trace_buffer *alloc_buffer(unsigned long size, unsigned flags,
        if (!buffer->buffers[cpu])
                goto fail_free_buffers;
 
-       /* If already mapped, do not hook to CPU hotplug */
-       if (!start) {
-               ret = cpuhp_state_add_instance(CPUHP_TRACE_RB_PREPARE, &buffer->node);
-               if (ret < 0)
-                       goto fail_free_buffers;
-       }
+       ret = cpuhp_state_add_instance(CPUHP_TRACE_RB_PREPARE, &buffer->node);
+       if (ret < 0)
+               goto fail_free_buffers;
 
        mutex_init(&buffer->mutex);