From: Greg Kroah-Hartman Date: Wed, 13 May 2026 15:31:59 +0000 (+0200) Subject: 6.1-stable patches X-Git-Tag: v6.12.88~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1bb20a6cbfa899e05f76d439ecd5295f162a8e41;p=thirdparty%2Fkernel%2Fstable-queue.git 6.1-stable patches added patches: exit-sleep-at-task_idle-when-waiting-for-application-core-dump.patch --- diff --git a/queue-6.1/exit-sleep-at-task_idle-when-waiting-for-application-core-dump.patch b/queue-6.1/exit-sleep-at-task_idle-when-waiting-for-application-core-dump.patch new file mode 100644 index 0000000000..8c1c80e9b7 --- /dev/null +++ b/queue-6.1/exit-sleep-at-task_idle-when-waiting-for-application-core-dump.patch @@ -0,0 +1,53 @@ +From b8e753128ed074fcb48e9ceded940752f6b1c19f Mon Sep 17 00:00:00 2001 +From: "Paul E. McKenney" +Date: Wed, 24 Jul 2024 16:51:52 -0700 +Subject: exit: Sleep at TASK_IDLE when waiting for application core dump + +From: Paul E. McKenney + +commit b8e753128ed074fcb48e9ceded940752f6b1c19f upstream. + +Currently, the coredump_task_exit() function sets the task state +to TASK_UNINTERRUPTIBLE|TASK_FREEZABLE, which usually works well. +But a combination of large memory and slow (and/or highly contended) +mass storage can cause application core dumps to take more than +two minutes, which can cause check_hung_task(), which is invoked by +check_hung_uninterruptible_tasks(), to produce task-blocked splats. +There does not seem to be any reasonable benefit to getting these splats. + +Furthermore, as Oleg Nesterov points out, TASK_UNINTERRUPTIBLE could +be misleading because the task sleeping in coredump_task_exit() really +is killable, albeit indirectly. See the check of signal->core_state +in prepare_signal() and the check of fatal_signal_pending() +in dump_interrupted(), which bypass the normal unkillability of +TASK_UNINTERRUPTIBLE, resulting in coredump_finish() invoking +wake_up_process() on any threads sleeping in coredump_task_exit(). + +Therefore, change that TASK_UNINTERRUPTIBLE to TASK_IDLE. + +Reported-by: Anhad Jai Singh +Signed-off-by: Paul E. McKenney +Acked-by: Oleg Nesterov +Cc: Jens Axboe +Cc: Christian Brauner +Cc: Andrew Morton +Cc: "Matthew Wilcox (Oracle)" +Cc: Chris Mason +Cc: Rik van Riel +Cc: Paul Menzel +Signed-off-by: Greg Kroah-Hartman +--- + kernel/exit.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/kernel/exit.c ++++ b/kernel/exit.c +@@ -426,7 +426,7 @@ static void coredump_task_exit(struct ta + complete(&core_state->startup); + + for (;;) { +- set_current_state(TASK_UNINTERRUPTIBLE|TASK_FREEZABLE); ++ set_current_state(TASK_IDLE|TASK_FREEZABLE); + if (!self.task) /* see coredump_finish() */ + break; + schedule(); diff --git a/queue-6.1/series b/queue-6.1/series index 35f06038f8..210925011c 100644 --- a/queue-6.1/series +++ b/queue-6.1/series @@ -386,3 +386,4 @@ loongarch-use-per-root-bridge-pcih-flag-to-skip-mem-resource-fixup.patch f2fs-compress-change-the-first-parameter-of-page_arr.patch f2fs-compress-fix-uaf-of-f2fs_inode_info-in-f2fs_fre.patch x86-cpu-amd-prevent-improper-isolation-of-shared-resources-in-zen2-s-op-cache.patch +exit-sleep-at-task_idle-when-waiting-for-application-core-dump.patch