From: Keith Busch <kbusch@xxxxxxxxxx> Previous discussion threads: v12: https://lore.kernel.org/linux-nvme/20241206221801.790690-1-kbusch@xxxxxxxx/T/#u v11: https://lore.kernel.org/linux-nvme/20241206015308.3342386-1-kbusch@xxxxxxxx/T/#u Changes from v12: - Removed statx. We need additional time to consider the best way to expose these attributes. Until then, applications can fallback to the sysfs block attribute to query write stream settings. - More verbose logging on error. - Added reviews. - Explicitly clear the return value to 0 for unsupported or unrecognized FDP configs; while it's not technically needed (it's already 0 in these paths), it makes it clear that a non-error return wasn't an accidental oversight. - Fixed the compiler warnings from unitialized variable; switched the do-while to a more clear for-loop. - Fixed long-line wrapping - Memory leak when cleaning up the namespace head. - Don't rescan FDP configuration if we successfully set it up before. The namespaces' FDP configuration is static. - Better function name querying the size granularity of the FDP reclaim unit. 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: add FDP definitions Keith Busch (4): 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/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 | 186 ++++++++++++++++++++++++++- drivers/nvme/host/nvme.h | 7 +- include/linux/blk_types.h | 1 + include/linux/blkdev.h | 16 +++ include/linux/fs.h | 1 + include/linux/nvme.h | 77 +++++++++++ include/uapi/linux/io_uring.h | 4 + io_uring/io_uring.c | 2 + io_uring/rw.c | 1 + 16 files changed, 341 insertions(+), 6 deletions(-) -- 2.43.5