Re: [RESEND] proc, coredump: add CoreDumping flag to /proc/pid/status
From: Andrew Morton
Date: Wed Sep 27 2017 - 19:31:11 EST
On Wed, 20 Sep 2017 16:06:34 -0700 Roman Gushchin <guro@xxxxxx> wrote:
> Right now there is no convenient way to check if a process is being
> coredumped at the moment.
>
> It might be necessary to recognize such state to prevent killing
> the process and getting a broken coredump.
> Writing a large core might take significant time, and the process
> is unresponsive during it, so it might be killed by timeout,
> if another process is monitoring and killing/restarting
> hanging tasks.
>
> To provide an ability to detect if a process is in the state of
> being coreduped, we can expose a boolean CoreDumping flag
> in /proc/pid/status.
>
> Example:
> $ cat core.sh
> #!/bin/sh
>
> echo "|/usr/bin/sleep 10" > /proc/sys/kernel/core_pattern
> sleep 1000 &
> PID=$!
>
> cat /proc/$PID/status | grep CoreDumping
> kill -ABRT $PID
> sleep 1
> cat /proc/$PID/status | grep CoreDumping
>
> $ ./core.sh
> CoreDumping: 0
> CoreDumping: 1
I assume you have some real-world use case which benefits from this.
> fs/proc/array.c | 6 ++++++
> 1 file changed, 6 insertions(+)
A Documentation/ would be appropriate? Include a brief mention of
*why* someone might want to use this...