From: Pavel Begunkov <asml.silence@gmail.com>
To: Hao Xu <hao.xu@linux.dev>, io-uring@vger.kernel.org
Cc: Jens Axboe <axboe@kernel.dk>,
linux-fsdevel@vger.kernel.org,
Alexander Viro <viro@zeniv.linux.org.uk>,
Andrew Morton <akpm@linux-foundation.org>,
Luis Chamberlain <mcgrof@kernel.org>,
Kuniyuki Iwashima <kuniyu@amazon.co.jp>
Subject: Re: [RFC 0/5] support nonblock submission for splice pipe to pipe
Date: Tue, 7 Jun 2022 10:27:20 +0100 [thread overview]
Message-ID: <d350c35e-1d73-b2c8-5ae4-e6ead92aebba@gmail.com> (raw)
In-Reply-To: <20220607080619.513187-1-hao.xu@linux.dev>
On 6/7/22 09:06, Hao Xu wrote:
> From: Hao Xu <howeyxu@tencent.com>
>
> splice from pipe to pipe is a trivial case, and we can support nonblock
> try for it easily. splice depends on iowq at all which is slow. Let's
> build a fast submission path for it by supporting nonblock.
fwiw,
https://www.spinics.net/lists/kernel/msg3652757.html
> Wrote a simple test to test time spent of splicing from pipe to pipe:
>
>
> Did 50 times test for each, ignore the highest and lowest number,
> calculate the average number:
>
> before patchset: 119.85 usec
> with patchset: 29.5 usec
>
> ----------------
> I'm not sure if we should use a io_uring specific flag rather than
> SPLICE_F_NONBLOCK since from mutex_lock_nest to mutex_trylock changes
> the behavior under debug environment I guess. Or maybe there is another
> better option than mutex_trylock?
>
>
> Hao Xu (5):
> io_uring: move sp->len check up for splice and tee
> pipe: add trylock helpers for pipe lock
> splice: support nonblock for splice from pipe to pipe
> io_uring: support nonblock try for splicing from pipe to pipe
> io_uring: add file_in in io_splice{} to avoid duplicate calculation
>
> fs/pipe.c | 29 +++++++++++++++++++++
> fs/splice.c | 21 +++++++++++++---
> include/linux/pipe_fs_i.h | 2 ++
> io_uring/splice.c | 53 +++++++++++++++++++++++++++++----------
> 4 files changed, 89 insertions(+), 16 deletions(-)
>
>
> base-commit: d8271bf021438f468dab3cd84fe5279b5bbcead8
--
Pavel Begunkov
next prev parent reply other threads:[~2022-06-07 9:27 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-07 8:06 [RFC 0/5] support nonblock submission for splice pipe to pipe Hao Xu
2022-06-07 8:06 ` [PATCH 1/5] io_uring: move sp->len check up for splice and tee Hao Xu
2022-06-07 8:06 ` [PATCH 2/5] pipe: add trylock helpers for pipe lock Hao Xu
2022-06-07 8:06 ` [PATCH 3/5] splice: support nonblock for splice from pipe to pipe Hao Xu
2022-06-07 8:06 ` [PATCH 4/5] io_uring: support nonblock try for splicing " Hao Xu
2022-06-07 21:38 ` kernel test robot
2022-06-08 14:18 ` kernel test robot
2022-06-09 2:24 ` kernel test robot
2022-06-07 8:06 ` [PATCH 5/5] io_uring: add file_in in io_splice{} to avoid duplicate calculation Hao Xu
2022-06-07 8:13 ` [RFC 0/5] support nonblock submission for splice pipe to pipe Hao Xu
2022-06-07 9:27 ` Pavel Begunkov [this message]
2022-06-08 4:19 ` Hao Xu
2022-06-08 4:31 ` Jens Axboe
2022-06-08 11:33 ` Pavel Begunkov
2022-06-14 13:23 ` Hao Xu
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=d350c35e-1d73-b2c8-5ae4-e6ead92aebba@gmail.com \
--to=asml.silence@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=hao.xu@linux.dev \
--cc=io-uring@vger.kernel.org \
--cc=kuniyu@amazon.co.jp \
--cc=linux-fsdevel@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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.