implement async block discards and other ops via io_uring
Status from this message: Applied, thanks!
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
Earlier versions · 2
| Version | Posted | Patches | Replies | Status |
|---|---|---|---|---|
| v2 | 7 patches | 12 replies | Superseded | |
| v1 RFC | 5 patches | 20 replies | Superseded |
Patches in v5 Applied
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/8 | io_uring/cmd: expose iowq to cmdsinclude/ io_uring/ io_uring/ +1 more | +25 | 0 replies | |
| 2/8 | io_uring/cmd: give inline space in request to cmdsinclude/ | +9 | 0 replies | |
| 3/8 | filemap: introduce filemap_invalidate_pagesinclude/ mm/ | +14 | 0 replies | |
| 4/8 | block: introduce blk_validate_byte_range()block/ | +31 | 1 reply | |
| 5/8 | block: implement async io_uring discard cmdblock/ block/ block/ +1 more | +129 | 2 replies | |
| 6/8 | block: implement write zeroes io_uring cmdblock/ include/ | +67 | 6 replies | |
| 7/8 | block: add nowait flag for __blkdev_issue_zero_pagesblock/ include/ include/ | +23 | 0 replies | |
| 8/8 | block: implement write zero pages cmdblock/ include/ | +19 | 0 replies |
Reviews trailers per patch
1 of 8 patches has a Reviewed-by or Acked-by.
| Patch | Christoph Hellwig |
|---|---|
| 1/8 | |
| 2/8 | |
| 3/8 | |
| 4/8 | R-b |
| 5/8 | |
| 6/8 | Nacked-by |
| 7/8 | |
| 8/8 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v5 0/8] implement async block discards and other ops via io_uring
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
v5: add uapi/linux/blkdev.h
number block cmd opcodes starting from IOC seq 0
don't export bio_discard_limit(), return to v2 and put bio if nowait
can't proceed
minor comment and stylistics changes
v4: fix failing to pass nowait (unused opf) in patch 7
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 io_uring discard cmd
block: implement write zeroes io_uring cmd
block: add nowait flag for __blkdev_issue_zero_pages
block: implement write zero pages cmd
block/blk-lib.c | 22 +++- block/blk.h | 1 + block/fops.c | 2 + block/ioctl.c | 242 ++++++++++++++++++++++++++++++++--- include/linux/bio.h | 4 + include/linux/blkdev.h | 1 + include/linux/io_uring/cmd.h | 15 +++ include/linux/pagemap.h | 2 + include/uapi/linux/blkdev.h | 16 +++ 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, 314 insertions(+), 27 deletions(-) create mode 100644 include/uapi/linux/blkdev.h
Signature · 1 line
2.45.2