[PATCHv12 00/12] block write streams with nvme fdp

Keith Busch
2024-12-06T22:24:09Z

From: Keith Busch <kbusch@kernel.org>

changes from v11:

- Place the write hint in an unused io_uring SQE field
- Obviates the need to modify the external "attributes" stuff that
support PI
- Make it a u8 to match the type the block layer supports
- And it's just easier to use for the user

- Fix the sparse warnings from FDP definitions
- Just use the patches that Christoph posted a few weeks ago since
it already defined it in a way that makes sparse happy; I just made
some minor changes to field names to match what the spec calls them

- Actually include the first patch in this series

Christoph Hellwig (7):
fs: add a write stream field to the kiocb
block: add a bi_write_stream field
block: introduce a write_stream_granularity queue limit
block: expose write streams for block device nodes
nvme: add a nvme_get_log_lsi helper
nvme: pass a void pointer to nvme_get/set_features for the result
nvme.h: add FDP definitions

Keith Busch (5):
fs: add write stream information to statx
block: introduce max_write_streams queue limit
io_uring: enable per-io write streams
nvme: register fdp parameters with the block layer
nvme: use fdp streams if write stream is provided

Documentation/ABI/stable/sysfs-block | 15 +++
block/bdev.c | 6 +
block/bio.c | 2 +
block/blk-crypto-fallback.c | 1 +
block/blk-merge.c | 4 +
block/blk-sysfs.c | 6 +
block/bounce.c | 1 +
block/fops.c | 23 ++++
drivers/nvme/host/core.c | 160 ++++++++++++++++++++++++++-
drivers/nvme/host/nvme.h | 9 +-
fs/stat.c | 2 +
include/linux/blk_types.h | 1 +
include/linux/blkdev.h | 16 +++
include/linux/fs.h | 1 +
include/linux/nvme.h | 77 +++++++++++++
include/linux/stat.h | 2 +
include/uapi/linux/io_uring.h | 4 +
include/uapi/linux/stat.h | 7 +-
io_uring/io_uring.c | 2 +
io_uring/rw.c | 1 +
20 files changed, 332 insertions(+), 8 deletions(-)

--
2.43.5