From: Jens Axboe <[email protected]>
To: Linus Torvalds <[email protected]>
Cc: io-uring <[email protected]>,
"[email protected]" <[email protected]>
Subject: [GIT PULL] io_uring async discard support
Date: Fri, 13 Sep 2024 11:02:24 -0600 [thread overview]
Message-ID: <[email protected]> (raw)
Hi Linus,
As mentioned, and sitting on top of both the 6.12 block and io_uring
core branches, here's support for async discard through io_uring. This
allows applications to issue async discards, rather than rely on the
blocking sync ioctl discards we already have. The sync support is
difficult to use outside of idle/cleanup periods. On a real (but slow)
device, testing shows the following results when compared to sync
discard:
qd64 sync discard: 21K IOPS, lat avg 3 msec (max 21 msec)
qd64 async discard: 76K IOPS, lat avg 845 usec (max 2.2 msec)
qd64 sync discard: 14K IOPS, lat avg 5 msec (max 25 msec)
qd64 async discard: 56K IOPS, lat avg 1153 usec (max 3.6 msec)
and synthetic null_blk testing with the same queue depth and block size
settings as above shows:
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
Please pull!
The following changes since commit 84eacf177faa605853c58e5b1c0d9544b88c16fd:
io_uring/io-wq: inherit cpuset of cgroup in io worker (2024-09-11 07:27:56 -0600)
are available in the Git repository at:
git://git.kernel.dk/linux.git tags/for-6.12/io_uring-discard-20240913
for you to fetch changes up to 50c52250e2d74b098465841163c18f4b4e9ad430:
block: implement async io_uring discard cmd (2024-09-11 10:45:28 -0600)
----------------------------------------------------------------
for-6.12/io_uring-discard-20240913
----------------------------------------------------------------
Jens Axboe (2):
Merge branch 'for-6.12/block' into for-6.12/io_uring-discard
Merge branch 'for-6.12/io_uring' into for-6.12/io_uring-discard
Pavel Begunkov (5):
io_uring/cmd: expose iowq to cmds
io_uring/cmd: give inline space in request to cmds
filemap: introduce filemap_invalidate_pages
block: introduce blk_validate_byte_range()
block: implement async io_uring discard cmd
block/blk.h | 1 +
block/fops.c | 2 +
block/ioctl.c | 163 +++++++++++++++++++++++++++++++----
include/linux/io_uring/cmd.h | 15 ++++
include/linux/pagemap.h | 2 +
include/uapi/linux/blkdev.h | 14 +++
io_uring/io_uring.c | 11 +++
io_uring/io_uring.h | 1 +
io_uring/uring_cmd.c | 7 ++
mm/filemap.c | 17 ++--
10 files changed, 209 insertions(+), 24 deletions(-)
--
Jens Axboe
next reply other threads:[~2024-09-13 17:02 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-13 17:02 Jens Axboe [this message]
2024-09-16 11:59 ` [GIT PULL] io_uring async discard support pr-tracker-bot
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 \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
[email protected] \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox