lkml.org 
[lkml]   [2019]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [RFC PATCH 04/10] pipe: Use head and tail pointers for the ring, not cursor and length [ver #2]
    This still has signs of that earlier series:

    On Wed, Oct 23, 2019 at 4:17 PM David Howells <dhowells@redhat.com> wrote:
    >
    > if (rem >= ibuf->len) {
    > *obuf = *ibuf;
    > ibuf->ops = NULL;
    > - pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
    > - pipe->nrbufs--;
    > + tail++;
    > + pipe_commit_read(pipe, tail);
    > } else {
    > if (!pipe_buf_get(pipe, ibuf))
    > goto out_free;

    with those odd "pipe_commit_read/write()" helpers.

    They make no sense, and they don't make things more legible.

    It's shorter and more obvious to just write

    pipe->head = head;

    than it is to write

    pipe_commit_write(pipe, head);

    Even when the addition of the notifications, it's all under the
    pipe->wait.lock, so it's all just regular assignments.

    Now, if at some point it starts doing fancy lockless things, at _that_
    point the updates might become more complex, but that's a potential
    future thing that wouldn't be relevant for a while, and isn't a reason
    to make the code more obscure now.

    Hmm?

    Linus

    \
     
     \ /
      Last update: 2019-10-27 15:05    [W:4.109 / U:0.076 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site