Patch "coredump: fix unfreezable coredumping task" has been added to the 4.8-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
coredump: fix unfreezable coredumping task
to the 4.8-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
coredump-fix-unfreezable-coredumping-task.patch
and it can be found in the queue-4.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
70d78fe7c8b640b5acfad56ad341985b3810998aMon Sep 17 00:00:00 2001
From: Andrey Ryabinin <[email protected]>
Date: Thu, 10 Nov 2016 10:46:38 -0800
Subject: coredump: fix unfreezable coredumping task
From: Andrey Ryabinin <[email protected]>
commit 70d78fe7c8b640b5acfad56ad341985b3810998a upstream.
It could be not possible to freeze coredumping task when it waits for 'core_state->startup' completion, because threads are frozen in get_signal() before they got a chance to complete 'core_state->startup'.
Inability to freeze a task during suspend will cause suspend to fail. Also CRIU uses cgroup freezer during dump operation. So with an unfreezable task the CRIU dump will fail because it waits for a transition from 'FREEZING' to 'FROZEN' state which will never happen.
Use freezer_do_not_count() to tell freezer to ignore coredumping task while it waits for core_state->startup completion.
--- fs/coredump.c | 3 +++ 1 file changed, 3 insertions(+)
fs/coredump.c +3 -0
@@ -1,6 +1,7 @@#include <linux/slab.h> #include <linux/file.h> #include <linux/fdtable.h> +#include <linux/freezer.h> #include <linux/mm.h> #include <linux/stat.h> #include <linux/fcntl.h>
@@ -423,7 +424,9 @@ static int coredump_wait(int exit_code,if (core_waiters >0 ) {struct core_thread *ptr; +freezer_do_not_count ();wait_for_completion (&core_state->startup); +freezer_count ();/* * Wait for all the threads to become inactive, so that * all the thread context (extended register state, like
Patches currently in stable-queue which might be from [email protected] are
queue-4.8/coredump-fix-unfreezable-coredumping-task.patch