# \[PATCH v8 15/21\] tracing/remotes: Use ring\_buffer\_capacity() in trace\_remote\_has\_cpu()

- From: Vincent Donnefort \<vdonnefort@google.com\>
- Date: 2026-11-06 18:08:02 
- List: linux-trace-kernel
- Page: https://ratatoskr.run/linux-trace-kernel/2026/11/17880573
- Thread: https://ratatoskr.run/linux-trace-kernel/2026/11/17880557/t.md

```text
trace_remote_has_cpu() calls ring_buffer_poll_remote() only to check if
a CPU is in the trace_buffer cpumask, needlessly polling the meta-page
and waking up readers. Use ring_buffer_capacity() instead to check CPU
membership without taking reader_lock or triggering wakeups.

Signed-off-by: Vincent Donnefort <vdonnefort@google.com>
---
 kernel/trace/trace_remote.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/trace/trace_remote.c b/kernel/trace/trace_remote.c
index 3dbb4912dbd6..276bf94e837b 100644
--- a/kernel/trace/trace_remote.c
+++ b/kernel/trace/trace_remote.c
@@ -351,7 +351,7 @@ static bool trace_remote_has_cpu(struct trace_remote *remote, int cpu)
 	if (cpu == RING_BUFFER_ALL_CPUS)
 		return true;
 
-	return ring_buffer_poll_remote(remote->trace_buffer, cpu) == 0;
+	return ring_buffer_capacity(remote->trace_buffer, cpu) > 0;
 }
 
 static void __free_ring_buffer_iter(struct trace_remote_iterator *iter, int cpu)
-- 
2.56.0.455.g6c5a503b38-goog

```
