lkml.org 
[lkml]   [2022]   [Oct]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 6.0 153/862] ring-buffer: Have the shortest_full queue be the shortest not longest
    Date
    From: Steven Rostedt (Google) <rostedt@goodmis.org>

    commit 3b19d614b61b93a131f463817e08219c9ce1fee3 upstream.

    The logic to know when the shortest waiters on the ring buffer should be
    woken up or not has uses a less than instead of a greater than compare,
    which causes the shortest_full to actually be the longest.

    Link: https://lkml.kernel.org/r/20220927231823.718039222@goodmis.org

    Cc: stable@vger.kernel.org
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Fixes: 2c2b0a78b3739 ("ring-buffer: Add percentage of ring buffer full to wake up reader")
    Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    kernel/trace/ring_buffer.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/kernel/trace/ring_buffer.c
    +++ b/kernel/trace/ring_buffer.c
    @@ -1011,7 +1011,7 @@ int ring_buffer_wait(struct trace_buffer
    nr_pages = cpu_buffer->nr_pages;
    dirty = ring_buffer_nr_dirty_pages(buffer, cpu);
    if (!cpu_buffer->shortest_full ||
    - cpu_buffer->shortest_full < full)
    + cpu_buffer->shortest_full > full)
    cpu_buffer->shortest_full = full;
    raw_spin_unlock_irqrestore(&cpu_buffer->reader_lock, flags);
    if (!pagebusy &&

    \
     
     \ /
      Last update: 2022-10-19 10:51    [W:2.954 / U:0.792 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site