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

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

dm cache policy smq: only demote entries in bottom half of the clean multiqueue



Heavy IO load may mean there are very few clean blocks in the cache, and
we risk demoting entries that get hit a lot.

Signed-off-by: default avatarJoe Thornber <ejt@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 072792dc
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -1190,7 +1190,7 @@ static void queue_demotion(struct smq_policy *mq)
	if (unlikely(WARN_ON_ONCE(!mq->migrations_allowed)))
	if (unlikely(WARN_ON_ONCE(!mq->migrations_allowed)))
		return;
		return;


	e = q_peek(&mq->clean, mq->clean.nr_levels, true);
	e = q_peek(&mq->clean, mq->clean.nr_levels / 2, true);
	if (!e) {
	if (!e) {
		if (!clean_target_met(mq, false))
		if (!clean_target_met(mq, false))
			queue_writeback(mq);
			queue_writeback(mq);