diff options
author | Rik van Riel <riel@surriel.com> | 2024-10-10 11:36:51 -0400 |
---|---|---|
committer | Christian Brauner <brauner@kernel.org> | 2024-10-22 11:16:58 +0200 |
commit | 0dfcb72d33c767bbe63f4a6872108515594154d9 (patch) | |
tree | fc0e50854337cda8e30088ea701af88464006bf9 | |
parent | 98f3ac9ba0ec35ff276e6c64ac9f173efa27df78 (diff) |
coredump: add cond_resched() to dump_user_range
The loop between elf_core_dump() and dump_user_range() can run for
so long that the system shows softlockup messages, with side effects
like workqueues and RCU getting stuck on the core dumping CPU.
Add a cond_resched() in dump_user_range() to avoid that softlockup.
Signed-off-by: Rik van Riel <riel@surriel.com>
Link: https://lore.kernel.org/r/20241010113651.50cb0366@imladris.surriel.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r-- | fs/coredump.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/coredump.c b/fs/coredump.c index 45737b43dda5..d48edb37bc35 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -951,6 +951,7 @@ int dump_user_range(struct coredump_params *cprm, unsigned long start, } else { dump_skip(cprm, PAGE_SIZE); } + cond_resched(); } dump_page_free(dump_page); return 1; |