From: Jens Axboe <axboe@kernel.dk>
To: Pavel Begunkov <asml.silence@gmail.com>, io-uring@vger.kernel.org
Cc: Conrad Meyer <conradmeyer@meta.com>,
linux-block@vger.kernel.org, linux-mm@kvack.org,
Christoph Hellwig <hch@infradead.org>
Subject: Re: [PATCH v4 0/8] implement async block discards and other ops via io_uring
Date: Mon, 9 Sep 2024 09:33:47 -0600 [thread overview]
Message-ID: <14a6ec2f-dbb8-4372-bccd-8e91c9527ea3@kernel.dk> (raw)
In-Reply-To: <29245c2e-d536-4a98-88ed-d1757795b3cd@kernel.dk>
On 9/9/24 8:51 AM, Jens Axboe wrote:
> On 9/6/24 4:57 PM, Pavel Begunkov wrote:
>> There is an interest in having asynchronous block operations like
>> discard and write zeroes. The series implements that as io_uring commands,
>> which is an io_uring request type allowing to implement custom file
>> specific operations.
>>
>> First 4 are preparation patches. Patch 5 introduces the main chunk of
>> cmd infrastructure and discard commands. Patches 6-8 implement
>> write zeroes variants.
>
> Sitting in for-6.12/io_uring-discard for now, as there's a hidden
> dependency with the end/len patch in for-6.12/block.
>
> Ran a quick test - have 64 4k discards inflight. Here's the current
> performance, with 64 threads with sync discard:
>
> qd64 sync discard: 21K IOPS, lat avg 3 msec (max 21 msec)
>
> and using io_uring with async discard, otherwise same test case:
>
> qd64 async discard: 76K IOPS, lat avg 845 usec (max 2.2 msec)
>
> If we switch to doing 1M discards, then we get:
>
> qd64 sync discard: 14K IOPS, lat avg 5 msec (max 25 msec)
>
> and using io_uring with async discard, otherwise same test case:
>
> qd64 async discard: 56K IOPS, lat avg 1153 usec (max 3.6 msec)
>
> This is on a:
>
> Samsung Electronics Co Ltd NVMe SSD Controller PM174X
>
> nvme device. It doesn't have the fastest discard, but still nicely shows
> the improvement over a purely sync discard.
Did some basic testing with null_blk just to get a better idea of what
it'd look like on a faster devices. Same test cases as above (qd=64, 4k
and 1M random trims):
Type Trim size IOPS Lat avg (usec) Lat Max (usec)
==============================================================
sync 4k 144K 444 20314
async 4k 1353K 47 595
sync 1M 56K 1136 21031
async 1M 94K 680 760
--
Jens Axboe
next prev parent reply other threads:[~2024-09-09 15:33 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-06 22:57 [PATCH v4 0/8] implement async block discards and other ops via io_uring Pavel Begunkov
2024-09-06 22:57 ` [PATCH v4 1/8] io_uring/cmd: expose iowq to cmds Pavel Begunkov
2024-09-06 22:57 ` [PATCH v4 2/8] io_uring/cmd: give inline space in request " Pavel Begunkov
2024-09-06 22:57 ` [PATCH v4 3/8] filemap: introduce filemap_invalidate_pages Pavel Begunkov
2024-09-06 22:57 ` [PATCH v4 4/8] block: introduce blk_validate_byte_range() Pavel Begunkov
2024-09-10 7:55 ` Christoph Hellwig
2024-09-06 22:57 ` [PATCH v4 5/8] block: implement async discard as io_uring cmd Pavel Begunkov
2024-09-10 8:01 ` Christoph Hellwig
2024-09-10 10:58 ` Pavel Begunkov
2024-09-10 14:17 ` Christoph Hellwig
2024-09-10 20:22 ` Pavel Begunkov
2024-09-12 9:28 ` Christoph Hellwig
2024-09-06 22:57 ` [PATCH v4 6/8] block: implement async write zeroes command Pavel Begunkov
2024-09-06 22:57 ` [PATCH v4 7/8] block: add nowait flag for __blkdev_issue_zero_pages Pavel Begunkov
2024-09-06 22:57 ` [PATCH v4 8/8] block: implement async write zero pages command Pavel Begunkov
2024-09-10 8:02 ` Christoph Hellwig
2024-09-10 12:17 ` Pavel Begunkov
2024-09-10 14:20 ` Christoph Hellwig
2024-09-10 20:10 ` Pavel Begunkov
2024-09-12 9:26 ` Christoph Hellwig
2024-09-12 16:38 ` Pavel Begunkov
2024-09-08 22:25 ` [PATCH v4 0/8] implement async block discards and other ops via io_uring Jens Axboe
2024-09-09 14:51 ` Jens Axboe
2024-09-09 15:33 ` Jens Axboe [this message]
2024-09-09 15:09 ` 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=14a6ec2f-dbb8-4372-bccd-8e91c9527ea3@kernel.dk \
--to=axboe@kernel.dk \
--cc=asml.silence@gmail.com \
--cc=conradmeyer@meta.com \
--cc=hch@infradead.org \
--cc=io-uring@vger.kernel.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-mm@kvack.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.