dm thin: add cond_resched() to various workqueue loops
authorMike Snitzer <snitzer@kernel.org>
Thu, 16 Feb 2023 20:29:44 +0000 (15:29 -0500)
committerMike Snitzer <snitzer@kernel.org>
Fri, 17 Feb 2023 19:46:27 +0000 (14:46 -0500)
Otherwise on resource constrained systems these workqueues may be too
greedy.

Signed-off-by: Mike Snitzer <snitzer@kernel.org>
drivers/md/dm-thin.c

index affd91a..6cd105c 100644 (file)
@@ -2209,6 +2209,7 @@ static void process_thin_deferred_bios(struct thin_c *tc)
                        throttle_work_update(&pool->throttle);
                        dm_pool_issue_prefetches(pool->pmd);
                }
+               cond_resched();
        }
        blk_finish_plug(&plug);
 }
@@ -2291,6 +2292,7 @@ static void process_thin_deferred_cells(struct thin_c *tc)
                        else
                                pool->process_cell(tc, cell);
                }
+               cond_resched();
        } while (!list_empty(&cells));
 }