On 11/11/2024 3:59 PM, Christoph Hellwig wrote: > - there is a separate write_stream value now instead of overloading > the write hint. For now it is an 8-bit field for the internal > data structures so that we don't have to grow the bio, but all the > user interfaces are kept at 16 bits (or in case of statx reduced to > it). If this becomes now enough because we need to support devices > with multiple reclaim groups we'll have to find some space by using > unions or growing structures > - block/fops.c is the place to map the existing write hints into > the write streams instead of the driver Last time when I attempted this separation between temperature and placement hints, it required adding a new fcntl[*] too because per-inode/file hints continues to be useful even when they are treated as passthrough by FS. Applications are able to use temperature hints to group multiple files on device regardless of the logical placement made by FS. The same ability is useful for write-streams/placement-hints too. But these patches reduce the scope to only block device. IMO, passthrough propagation of hints/streams should continue to remain the default behavior as it applies on multiple filesystems. And more active placement by FS should rather be enabled by some opt in (e.g., mount option). Such opt in will anyway be needed for other reasons (like regression avoidance on a broken device). [*] https://lore.kernel.org/linux-nvme/20240910150200.6589-4-joshi.k@xxxxxxxxxxx/