xfs: cache open zone in inode->i_private
The MRU cache for open zones is unfortunately still not ideal, as it can time out pretty easily when doing heavy I/O to hard disks using up most or all open zones. One option would be to just increase the timeout, but while looking into that I realized we're just better off caching it indefinitely as there is no real downside to that once we don't hold a reference to the cache open zone. So switch the open zone to RCU freeing, and then stash the last used open zone into inode->i_private. This helps to significantly reduce fragmentation by keeping I/O localized to zones for workloads that write using many open files to HDD. Fixes: 4e4d5207 ("xfs: add the zoned space allocator") Signed-off-by:Christoph Hellwig <hch@lst.de> Reviewed-by:
Hans Holmberg <hans.holmberg@wdc.com> Reviewed-by:
Damien Le Moal <dlemoal@kernel.org> Tested-by:
Damien Le Moal <dlemoal@kernel.org> Signed-off-by:
Carlos Maiolino <cem@kernel.org>
Loading
Please sign in to comment