Commit 9bd8b264 authored by Kozlowski Mateusz's avatar Kozlowski Mateusz Committed by Tomasz Zawadzki
Browse files

lib/ftl: Update GC band selection mechanism



Don't let the invalidity value continuously drop in degenerate scenarios -
previously could have happened if band_cmp picked based on other value, when invalidity is similar.

Signed-off-by: default avatarKozlowski Mateusz <mateusz.kozlowski@intel.com>
Signed-off-by: default avatarMariusz Barczak <mariusz.barczak@intel.com>
Change-Id: I33166501e832cd7f359b3acef1e614cf9b1288d5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/16215


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
parent 723b1c50
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -610,9 +610,12 @@ ftl_band_search_next_to_reloc(struct spdk_ftl_dev *dev)
			if (phys_id == FTL_BAND_PHYS_ID_INVALID ||
			    band_cmp(invalidity, wr_cnt, max_invalidity, max_wr_cnt,
				     band->phys_id, phys_id)) {
				max_invalidity = invalidity;
				max_wr_cnt = wr_cnt;
				phys_id = band->phys_id;

				if (invalidity > max_invalidity) {
					max_invalidity = invalidity;
				}
			}
		}
	}