xfs: prevent gc from picking the same zone twice
When we are picking a zone for gc it might already be in the pipeline which can lead to us moving the same data twice resulting in in write amplification and a very unfortunate case where we keep on garbage collecting the zone we just filled with migrated data stopping all forward progress. Fix this by introducing a count of on-going GC operations on a zone, and skip any zone with ongoing GC when picking a new victim. Fixes: 080d01c4 ("xfs: implement zoned garbage collection") Signed-off-by:Hans Holmberg <hans.holmberg@wdc.com> Co-developed-by:
Hans Holmberg <hans.holmberg@wdc.com> Signed-off-by:
Christoph Hellwig <hch@lst.de> Reviewed-by:
Damien Le Moal <dlemoal@kernel.org> Reviewed-by:
Carlos Maiolino <cmaiolino@redhat.com> Reviewed-by:
Darrick J. Wong <djwong@kernel.org> Tested-by:
Damien Le Moal <dlemoal@kernel.org> Signed-off-by:
Carlos Maiolino <cem@kernel.org>
Loading
Please sign in to comment