From: Pavel Begunkov <asml.silence@gmail.com>
To: Jens Axboe <axboe@kernel.dk>,
io-uring@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH RFC 0/9] nxt propagation + locking optimisation
Date: Sun, 1 Mar 2020 19:41:27 +0300 [thread overview]
Message-ID: <101bed21-670c-4ade-e513-b15848ef1361@gmail.com> (raw)
In-Reply-To: <fe4cb05b-2fd0-25dd-e120-9a9d57659008@gmail.com>
On 01/03/2020 19:23, Pavel Begunkov wrote:
> On 01/03/2020 19:18, Pavel Begunkov wrote:
>> There are several independent parts in the patchset, but bundled
>> to make a point.
>> 1-2: random stuff, that implicitly used later.
>> 3-5: restore @nxt propagation
>> 6-8: optimise locking in io_worker_handle_work()
>> 9: optimise io_uring refcounting
>>
>> The next propagation bits are done similarly as it was before, but
>> - nxt stealing is now at top-level, but not hidden in handlers
>> - ensure there is no with REQ_F_DONT_STEAL_NEXT
>>
>> [6-8] is the reason to dismiss the previous @nxt propagation appoach,
>> I didn't found a good way to do the same. Even though it looked
>> clearer and without new flag.
>>
>> Performance tested it with link-of-nops + IOSQE_ASYNC:
>>
>> link size: 100
>> orig: 501 (ns per nop)
>> 0-8: 446
>> 0-9: 416
>>
>> link size: 10
>> orig: 826
>> 0-8: 776
>> 0-9: 756
>
> BTW, that's basically QD1, and with contention for wqe->lock the gap should be
> even wider.
And another notice: "orig" actually includes [1-5], so @nxt propagation was
working there.
>>
>> Pavel Begunkov (9):
>> io_uring: clean up io_close
>> io-wq: fix IO_WQ_WORK_NO_CANCEL cancellation
>> io_uring: make submission ref putting consistent
>> io_uring: remove @nxt from handlers
>> io_uring: get next req on subm ref drop
>> io-wq: shuffle io_worker_handle_work() code
>> io-wq: io_worker_handle_work() optimise locking
>> io-wq: optimise double lock for io_get_next_work()
>> io_uring: pass submission ref to async
>>
>> fs/io-wq.c | 162 ++++++++++++----------
>> fs/io_uring.c | 366 ++++++++++++++++++++++----------------------------
>> 2 files changed, 258 insertions(+), 270 deletions(-)
>>
>
--
Pavel Begunkov
next prev parent reply other threads:[~2020-03-01 16:42 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-01 16:18 [PATCH RFC 0/9] nxt propagation + locking optimisation Pavel Begunkov
2020-03-01 16:18 ` [PATCH 1/9] io_uring: clean up io_close Pavel Begunkov
2020-03-01 16:18 ` [PATCH 2/9] io-wq: fix IO_WQ_WORK_NO_CANCEL cancellation Pavel Begunkov
2020-03-02 14:24 ` Jens Axboe
2020-03-01 16:18 ` [PATCH 3/9] io_uring: make submission ref putting consistent Pavel Begunkov
2020-03-01 16:18 ` [PATCH 4/9] io_uring: remove @nxt from handlers Pavel Begunkov
2020-03-01 16:18 ` [PATCH 5/9] io_uring: get next req on subm ref drop Pavel Begunkov
2020-03-01 21:31 ` Pavel Begunkov
2020-03-01 16:18 ` [PATCH 6/9] io-wq: shuffle io_worker_handle_work() code Pavel Begunkov
2020-03-01 16:18 ` [PATCH 7/9] io-wq: io_worker_handle_work() optimise locking Pavel Begunkov
2020-03-01 16:18 ` [PATCH 8/9] io-wq: optimise double lock for io_get_next_work() Pavel Begunkov
2020-03-01 16:18 ` [PATCH 9/9] io_uring: pass submission ref to async Pavel Begunkov
2020-03-01 21:39 ` Pavel Begunkov
2020-03-02 15:08 ` Pavel Begunkov
2020-03-02 15:12 ` Jens Axboe
2020-03-02 15:26 ` Pavel Begunkov
2020-03-01 16:23 ` [PATCH RFC 0/9] nxt propagation + locking optimisation Pavel Begunkov
2020-03-01 16:41 ` Pavel Begunkov [this message]
2020-03-01 19:14 ` Jens Axboe
2020-03-01 20:33 ` Pavel Begunkov
2020-03-02 14:39 ` Jens Axboe
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=101bed21-670c-4ade-e513-b15848ef1361@gmail.com \
--to=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.