From: Greg Kroah-Hartman Date: Wed, 13 May 2026 15:32:09 +0000 (+0200) Subject: 6.6-stable patches X-Git-Tag: v6.12.88~7 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e83bba3ba1831c0cf221d0ccf85972ada3667a53;p=thirdparty%2Fkernel%2Fstable-queue.git 6.6-stable patches added patches: exit-sleep-at-task_idle-when-waiting-for-application-core-dump.patch --- diff --git a/queue-6.6/exit-sleep-at-task_idle-when-waiting-for-application-core-dump.patch b/queue-6.6/exit-sleep-at-task_idle-when-waiting-for-application-core-dump.patch new file mode 100644 index 0000000000..4144a0dd60 --- /dev/null +++ b/queue-6.6/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 +@@ -430,7 +430,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.6/series b/queue-6.6/series index 2ca7ccbfc5..5dbc1a56b6 100644 --- a/queue-6.6/series +++ b/queue-6.6/series @@ -294,3 +294,4 @@ kvm-arm64-fix-initialisation-order-in-__pkvm_init_finalise.patch loongarch-fix-potential-ade-in-loongson_gpu_fixup_dma_hang.patch loongarch-use-per-root-bridge-pcih-flag-to-skip-mem-resource-fixup.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