Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49b7f768 authored by Joe Thornber's avatar Joe Thornber Committed by Mike Snitzer
Browse files

dm cache: simplify the IDLE vs BUSY state calculation



Drop the MODERATE state since it wasn't buying us much.

Also, in check_migrations(), prepare for the next commit ("dm cache
policy smq: don't do any writebacks unless IDLE") by deferring to the
policy to make the final decision on whether writebacks can be
serviced.

Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 701e03e4
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -1718,7 +1718,6 @@ static int invalidate_start(struct cache *cache, dm_cblock_t cblock,

enum busy {
	IDLE,
	MODERATE,
	BUSY
};

@@ -1728,10 +1727,10 @@ static enum busy spare_migration_bandwidth(struct cache *cache)
	sector_t current_volume = (atomic_read(&cache->nr_io_migrations) + 1) *
		cache->sectors_per_block;

	if (current_volume <= cache->migration_threshold)
		return idle ? IDLE : MODERATE;
	if (idle && current_volume <= cache->migration_threshold)
		return IDLE;
	else
		return idle ? MODERATE : BUSY;
		return BUSY;
}

static void inc_hit_counter(struct cache *cache, struct bio *bio)
@@ -2047,8 +2046,6 @@ static void check_migrations(struct work_struct *ws)

	for (;;) {
		b = spare_migration_bandwidth(cache);
		if (b == BUSY)
			break;

		r = policy_get_background_work(cache->policy, b == IDLE, &op);
		if (r == -ENODATA)