tracing/ring-buffer: Have polling block on watermark
Currently the way polling works on the ring buffer is broken. It will return immediately if there's any data in the ring buffer whereas a read will block until the watermark (defined by the tracefs buffer_percent file) is hit. That is, a select() or poll() will return as if there's data available, but then the following read will block. This is broken for the way select()s and poll()s are supposed to work. Have the polling on the ring buffer also block the same way reads and splice does on the ring buffer. Link: https://lkml.kernel.org/r/20221020231427.41be3f26@gandalf.local.home Cc: Linux Trace Kernel <linux-trace-kernel@vger.kernel.org> Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Primiano Tucci <primiano@google.com> Cc: stable@vger.kernel.org Fixes: 1e0d6714 ("ring-buffer: Do not wake up a splice waiter when page is not full") Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
parent
094226ad
-
mentioned in commit 5d4cc7bc
-
mentioned in commit 8b318f30
-
mentioned in commit e65ac2bd
-
mentioned in commit 3e46d910
-
mentioned in commit 70f37b31
-
mentioned in commit b7d5fa80
-
mentioned in commit 56ee3116
-
mentioned in commit 1e0cb399
-
mentioned in commit b5d00cd7
-
mentioned in commit f3ad8874
-
mentioned in commit fed9f0c0
-
mentioned in commit ef47f25e
-
mentioned in commit cf221a78
Please register or sign in to comment