linux-bl808/Documentation/filesystems
Roman Gushchin c643401218 proc, coredump: add CoreDumping flag to /proc/pid/status
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.

We're getting a significant number of corrupted coredump files on
machines in our fleet, just because processes are being killed by
timeout in the middle of the core writing process.

We do have a process health check, and some agent is responsible for
restarting processes which are not responding for health check requests.
Writing a large coredump to the disk can easily exceed the reasonable
timeout (especially on an overloaded machine).

This flag will allow the agent to distinguish processes which are being
coredumped, extend the timeout for them, and let them produce a full
coredump file.

To provide an ability to detect if a process is in the state of being
coredumped, 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

[guro@fb.com: document CoreDumping flag in /proc/<pid>/status]
  Link: http://lkml.kernel.org/r/20170928135357.GA8470@castle.DHCP.thefacebook.com
Link: http://lkml.kernel.org/r/20170920230634.31572-1-guro@fb.com
Signed-off-by: Roman Gushchin <guro@fb.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Konstantin Khlebnikov <koct9i@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2017-11-17 16:10:00 -08:00
..
caching fscache: remove unused ->now_uncached callback 2017-09-06 17:27:26 -07:00
cifs CIFS/SMB3: Update documentation to reflect SMB3 and various changes 2017-09-17 10:48:00 -05:00
configfs
nfs doc: ReSTify keys-request-key.txt 2017-05-18 10:33:51 -06:00
pohmelfs
00-INDEX
9p.txt
adfs.txt
affs.txt
afs.txt afs: Fix documentation on # vs % prefix in mount source specification 2017-11-13 15:38:19 +00:00
autofs4-mount-control.txt autofs: update ioctl documentation regarding struct autofs_dev_ioctl 2017-02-27 18:43:45 -08:00
autofs4.txt Fix up over-eager 'wait_queue_t' renaming 2017-07-10 11:40:19 -07:00
automount-support.txt
befs.txt
bfs.txt Tigran has moved 2017-05-12 15:57:15 -07:00
btrfs.txt
ceph.txt
coda.txt
conf.py docs-rst: convert filesystems book to ReST 2017-05-16 08:44:08 -03:00
cramfs.txt
dax.txt dax: use common 4k zero page for dax mmap reads 2017-09-06 17:27:24 -07:00
debugfs.txt
devpts.txt
directory-locking
dlmfs.txt
dnotify.txt Documentation: fix selftests related file refs 2017-10-19 12:58:21 -06:00
ecryptfs.txt
efivarfs.txt
exofs.txt
ext2.txt
ext3.txt
ext4.txt Documentation: fix little inconsistencies 2017-09-26 14:30:48 -06:00
f2fs.txt f2fs: support journalled quota 2017-08-21 15:54:48 -07:00
fiemap.txt
files.txt
fscrypt.rst fscrypt: add a documentation file for filesystem-level encryption 2017-10-31 13:49:24 -04:00
fuse.txt
gfs2-glocks.txt
gfs2-uevents.txt
gfs2.txt
hfs.txt
hfsplus.txt
hpfs.txt
index.rst fscrypt: add a documentation file for filesystem-level encryption 2017-10-31 13:49:24 -04:00
inotify.txt
isofs.txt
jfs.txt
Locking vfs: add flags to d_real() 2017-09-04 21:42:22 +02:00
locks.txt
mandatory-locking.txt
ncpfs.txt
nilfs2.txt
ntfs.txt
ocfs2-online-filecheck.txt
ocfs2.txt
omfs.txt
orangefs.txt orangefs: documentation clean up 2017-09-14 14:54:39 -04:00
overlayfs.txt ovl: fix regression caused by exclusive upper/work dir protection 2017-10-05 15:53:18 +02:00
path-lookup.md locking/atomics, doc/filesystems: Convert ACCESS_ONCE() references 2017-10-25 11:01:05 +02:00
path-lookup.txt
porting VFS: Differentiate mount flags (MS_*) from internal superblock flags 2017-07-17 08:45:35 +01:00
proc.txt proc, coredump: add CoreDumping flag to /proc/pid/status 2017-11-17 16:10:00 -08:00
qnx6.txt
quota.txt scripts/spelling.txt: add "an user" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
ramfs-rootfs-initramfs.txt
relay.txt
romfs.txt
seq_file.txt
sharedsubtree.txt
spufs.txt
squashfs.txt
sysfs-pci.txt PCI: Add pci_mmap_resource_range() and use it for ARM64 2017-04-20 08:47:47 -05:00
sysfs-tagging.txt
sysfs.txt driver core: remove DRIVER_ATTR 2017-09-19 09:20:33 +02:00
sysv-fs.txt
tmpfs.txt
ubifs.txt
udf.txt udf: Remove some outdate references from documentation 2017-10-16 11:55:52 +02:00
ufs.txt
vfat.txt
vfs.txt Merge branch 'overlayfs-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs 2017-09-13 09:11:44 -07:00
xfs-delayed-logging-design.txt
xfs-self-describing-metadata.txt
xfs.txt