Commit 76227f6d authored by Mike Snitzer's avatar Mike Snitzer

dm cache: add cond_resched() to various workqueue loops

Otherwise on resource constrained systems these workqueues may be too
greedy.
Signed-off-by: default avatarMike Snitzer <snitzer@kernel.org>
parent e4f80303
...@@ -1829,6 +1829,7 @@ static void process_deferred_bios(struct work_struct *ws) ...@@ -1829,6 +1829,7 @@ static void process_deferred_bios(struct work_struct *ws)
else else
commit_needed = process_bio(cache, bio) || commit_needed; commit_needed = process_bio(cache, bio) || commit_needed;
cond_resched();
} }
if (commit_needed) if (commit_needed)
...@@ -1852,6 +1853,7 @@ static void requeue_deferred_bios(struct cache *cache) ...@@ -1852,6 +1853,7 @@ static void requeue_deferred_bios(struct cache *cache)
while ((bio = bio_list_pop(&bios))) { while ((bio = bio_list_pop(&bios))) {
bio->bi_status = BLK_STS_DM_REQUEUE; bio->bi_status = BLK_STS_DM_REQUEUE;
bio_endio(bio); bio_endio(bio);
cond_resched();
} }
} }
...@@ -1892,6 +1894,8 @@ static void check_migrations(struct work_struct *ws) ...@@ -1892,6 +1894,8 @@ static void check_migrations(struct work_struct *ws)
r = mg_start(cache, op, NULL); r = mg_start(cache, op, NULL);
if (r) if (r)
break; break;
cond_resched();
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment