[PATCH v4 0/5] Write-placement hints and FDP
Kanchan Joshi
joshi.k at samsung.com
Mon Aug 26 10:06:01 PDT 2024
Current write-hint infrastructure supports 6 temperature-based data life
hints.
The series extends the infrastructure with a new temperature-agnostic
placement-type hint. New fcntl codes F_{SET/GET}_RW_HINT_EX allow to
send the hint type/value on file. See patch #3 commit description for
the details.
Overall this creates 128 placement hint values [*] that users can pass.
Patch #5 adds the ability to map these new hint values to nvme-specific
placement-identifiers.
Patch #4 restricts SCSI to use only life hint values.
Patch #1 and #2 are simple prep patches.
[*] While the user-interface can support more, this limit is due to the
in-kernel plumbing consideration of the inode size. Pahole showed 32-bit
hole in the inode, but the code had this comment too:
/* 32-bit hole reserved for expanding i_fsnotify_mask */
Not must, but it will be good to know if a byte (or two) can be used
here.
Changes since v3:
- 4 new patches to introduce write-placement hints
- Make nvme patch use the placement hints rather than write-life hints
Changes since v2:
- Base it on nvme-6.11 and resolve a merge conflict
Changes since v1:
- Reduce the fetched plids from 128 to 6 (Keith)
- Use struct_size for a calculation (Keith)
- Handle robot/sparse warning
Kanchan Joshi (4):
fs, block: refactor enum rw_hint
fcntl: rename rw_hint_* to rw_life_hint_*
fcntl: add F_{SET/GET}_RW_HINT_EX
nvme: enable FDP support
Nitesh Shetty (1):
sd: limit to use write life hints
drivers/nvme/host/core.c | 81 ++++++++++++++++++++++++++++++++++++++
drivers/nvme/host/nvme.h | 4 ++
drivers/scsi/sd.c | 7 ++--
fs/buffer.c | 4 +-
fs/f2fs/f2fs.h | 4 +-
fs/f2fs/segment.c | 4 +-
fs/fcntl.c | 79 ++++++++++++++++++++++++++++++++++---
include/linux/blk-mq.h | 2 +-
include/linux/blk_types.h | 2 +-
include/linux/fs.h | 2 +-
include/linux/nvme.h | 19 +++++++++
include/linux/rw_hint.h | 20 +++++++---
include/uapi/linux/fcntl.h | 14 +++++++
13 files changed, 218 insertions(+), 24 deletions(-)
--
2.25.1
More information about the Linux-nvme
mailing list