All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/8] implement async block discards and other ops via io_uring
@ 2024-09-04 14:17 Pavel Begunkov
  2024-09-04 14:18 ` [PATCH v3 1/8] io_uring/cmd: expose iowq to cmds Pavel Begunkov
                   ` (7 more replies)
  0 siblings, 8 replies; 12+ messages in thread
From: Pavel Begunkov @ 2024-09-04 14:17 UTC (permalink / raw)
  To: io-uring
  Cc: Jens Axboe, asml.silence, Conrad Meyer, linux-block, linux-mm,
	Christoph Hellwig

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.

Branch with tests and docs:
https://github.com/isilence/liburing.git discard-cmd

The man page specifically (need to shuffle it to some cmd section):
https://github.com/isilence/liburing/commit/a6fa2bc2400bf7fcb80496e322b5db4c8b3191f0

v3: use GFP_NOWAIT for non-blocking allocation
    fail oversized nowait discards in advance
    drop secure erase and add zero page writes
    renamed function name + other cosmetic changes
    use IOC / ioctl encoding for cmd opcodes

v2: move out of CONFIG_COMPAT
    add write zeroes & secure erase
    drop a note about interaction with page cache

Pavel Begunkov (8):
  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 discard as io_uring cmd
  block: implement async write zeroes command
  block: add nowait flag for __blkdev_issue_zero_pages
  block: implement async write zero pages command

 block/blk-lib.c              |  25 +++-
 block/blk.h                  |   1 +
 block/fops.c                 |   2 +
 block/ioctl.c                | 228 ++++++++++++++++++++++++++++++++---
 include/linux/bio.h          |   6 +
 include/linux/blkdev.h       |   1 +
 include/linux/io_uring/cmd.h |  15 +++
 include/linux/pagemap.h      |   2 +
 include/uapi/linux/fs.h      |   4 +
 io_uring/io_uring.c          |  11 ++
 io_uring/io_uring.h          |   1 +
 io_uring/uring_cmd.c         |   7 ++
 mm/filemap.c                 |  17 ++-
 13 files changed, 292 insertions(+), 28 deletions(-)

-- 
2.45.2


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2024-09-06 13:45 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-04 14:17 [PATCH v3 0/8] implement async block discards and other ops via io_uring Pavel Begunkov
2024-09-04 14:18 ` [PATCH v3 1/8] io_uring/cmd: expose iowq to cmds Pavel Begunkov
2024-09-04 14:18 ` [PATCH v3 2/8] io_uring/cmd: give inline space in request " Pavel Begunkov
2024-09-04 14:18 ` [PATCH v3 3/8] filemap: introduce filemap_invalidate_pages Pavel Begunkov
2024-09-04 14:18 ` [PATCH v3 4/8] block: introduce blk_validate_byte_range() Pavel Begunkov
2024-09-04 14:18 ` [PATCH v3 5/8] block: implement async discard as io_uring cmd Pavel Begunkov
2024-09-04 14:18 ` [PATCH v3 6/8] block: implement async write zeroes command Pavel Begunkov
2024-09-04 14:18 ` [PATCH v3 7/8] block: add nowait flag for __blkdev_issue_zero_pages Pavel Begunkov
2024-09-06  3:23   ` kernel test robot
2024-09-06 13:41   ` Jens Axboe
2024-09-06 13:46     ` Pavel Begunkov
2024-09-04 14:18 ` [PATCH v3 8/8] block: implement async write zero pages command Pavel Begunkov

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.