All of lore.kernel.org
 help / color / mirror / Atom feed
From: Olivier Langlois <olivier@trillion01.com>
To: Pavel Begunkov <asml.silence@gmail.com>,
	Jens Axboe <axboe@kernel.dk>,
	io-uring@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v4] io_uring: reduce latency by reissueing the operation
Date: Tue, 22 Jun 2021 15:05:55 -0400	[thread overview]
Message-ID: <32495917a028e9c70b75357029a87ca593378dde.camel@trillion01.com> (raw)
In-Reply-To: <7c47078a-9e2d-badf-a47d-1ca78e1a3253@gmail.com>

On Tue, 2021-06-22 at 19:01 +0100, Pavel Begunkov wrote:
> On 6/22/21 6:54 PM, Pavel Begunkov wrote:
> > On 6/22/21 1:17 PM, Olivier Langlois wrote:
> > > 
> > 
> > >  static bool __io_poll_remove_one(struct io_kiocb *req,
> > > @@ -6437,6 +6445,7 @@ static void __io_queue_sqe(struct io_kiocb
> > > *req)
> > >         struct io_kiocb *linked_timeout =
> > > io_prep_linked_timeout(req);
> > >         int ret;
> > >  
> > > +issue_sqe:
> > >         ret = io_issue_sqe(req,
> > > IO_URING_F_NONBLOCK|IO_URING_F_COMPLETE_DEFER);
> > >  
> > >         /*
> > > @@ -6456,12 +6465,16 @@ static void __io_queue_sqe(struct
> > > io_kiocb *req)
> > >                         io_put_req(req);
> > >                 }
> > >         } else if (ret == -EAGAIN && !(req->flags &
> > > REQ_F_NOWAIT)) {
> > > -               if (!io_arm_poll_handler(req)) {
> > > +               switch (io_arm_poll_handler(req)) {
> > > +               case IO_APOLL_READY:
> > > +                       goto issue_sqe;
> > > +               case IO_APOLL_ABORTED:
> > >                         /*
> > >                          * Queued up for async execution, worker
> > > will release
> > >                          * submit reference when the iocb is
> > > actually submitted.
> > >                          */
> > >                         io_queue_async_work(req);
> > > +                       break;
> > 
> > Hmm, why there is a new break here? It will miscount
> > @linked_timeout
> > if you do that. Every io_prep_linked_timeout() should be matched
> > with
> > io_queue_linked_timeout().
> 
> Never mind, I said some nonsense and apparently need some coffee

but this is a pertinant question, imho. I guess that you could get away
without it since it is the last case of the switch statement... I am
not sure what kernel coding standard says about that.

However, I can tell you that there was also a break statement at the
end of the case for IO_APOLL_READY and checkpatch.pl did complain about
it saying that it was useless since it was following a goto statement.
Therefore, I did remove that one.

checkpatch.pl did remain silent about the other remaining break. Hence
this is why I left it there.

Greetings,



  reply	other threads:[~2021-06-22 19:05 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-22 12:17 [PATCH v4] io_uring: reduce latency by reissueing the operation Olivier Langlois
2021-06-22 17:54 ` Pavel Begunkov
2021-06-22 18:01   ` Pavel Begunkov
2021-06-22 19:05     ` Olivier Langlois [this message]
2021-06-22 20:51       ` Pavel Begunkov
2021-06-22 20:52 ` Pavel Begunkov
2021-06-25  0:45 ` Jens Axboe
2021-06-25  8:15   ` David Laight
2021-06-28  6:42     ` Olivier Langlois

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=32495917a028e9c70b75357029a87ca593378dde.camel@trillion01.com \
    --to=olivier@trillion01.com \
    --cc=asml.silence@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=io-uring@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.