https://github.com/torvalds/linux
Revision 4e018b450ad34b0edc865e91ec5e957d677e2c4e authored by Naoya Horiguchi on 12 June 2020, 00:34:45 UTC, committed by Linus Torvalds on 12 June 2020, 01:17:47 UTC
Patch series "hwpoison: fixes signaling on memory error"

This is a small patchset to solve issues in memory error handler to send
SIGBUS to proper process/thread as expected in configuration.  Please
see descriptions in individual patches for more details.

This patch (of 2):

Early-kill policy is controlled from two types of settings, one is
per-process setting prctl(PR_MCE_KILL) and the other is system-wide
setting vm.memory_failure_early_kill.  Users expect per-process setting
to override system-wide setting as many other settings do, but
early-kill setting doesn't work as such.

For example, if a system configures vm.memory_failure_early_kill to 1
(enabled), a process receives SIGBUS even if it's configured to
explicitly disable PF_MCE_KILL by prctl().  That's not desirable for
applications with their own policies.

This patch is suggesting to change the priority of these two types of
settings, by checking sysctl_memory_failure_early_kill only when a given
process has the default kill policy.

Note that this patch is solving a thread choice issue too.

Originally, collect_procs() always chooses the main thread when
vm.memory_failure_early_kill is 1, even if the process has a dedicated
thread for memory error handling.  SIGBUS should be sent to the
dedicated thread if early-kill is enabled via
vm.memory_failure_early_kill as we are doing for PR_MCE_KILL_EARLY
processes.

Signed-off-by: Naoya Horiguchi <naoya.horiguchi@nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Link: http://lkml.kernel.org/r/1591321039-22141-1-git-send-email-naoya.horiguchi@nec.com
Link: http://lkml.kernel.org/r/1591321039-22141-2-git-send-email-naoya.horiguchi@nec.com
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 623f6dc
History
Tip revision: 4e018b450ad34b0edc865e91ec5e957d677e2c4e authored by Naoya Horiguchi on 12 June 2020, 00:34:45 UTC
mm/memory-failure: prioritize prctl(PR_MCE_KILL) over vm.memory_failure_early_kill
Tip revision: 4e018b4
File Mode Size
9p
adfs
affs
afs
autofs
befs
bfs
btrfs
cachefiles
ceph
cifs
coda
configfs
cramfs
crypto
debugfs
devpts
dlm
ecryptfs
efivarfs
efs
erofs
exfat
exportfs
ext2
ext4
f2fs
fat
freevxfs
fscache
fuse
gfs2
hfs
hfsplus
hostfs
hpfs
hugetlbfs
iomap
isofs
jbd2
jffs2
jfs
kernfs
lockd
minix
nfs
nfs_common
nfsd
nilfs2
nls
notify
ntfs
ocfs2
omfs
openpromfs
orangefs
overlayfs
proc
pstore
qnx4
qnx6
quota
ramfs
reiserfs
romfs
squashfs
sysfs
sysv
tracefs
ubifs
udf
ufs
unicode
vboxsf
verity
xfs
zonefs
Kconfig -rw-r--r-- 7.7 KB
Kconfig.binfmt -rw-r--r-- 7.6 KB
Makefile -rw-r--r-- 4.5 KB
aio.c -rw-r--r-- 56.5 KB
anon_inodes.c -rw-r--r-- 4.6 KB
attr.c -rw-r--r-- 9.7 KB
bad_inode.c -rw-r--r-- 5.3 KB
binfmt_aout.c -rw-r--r-- 8.3 KB
binfmt_elf.c -rw-r--r-- 65.6 KB
binfmt_elf_fdpic.c -rw-r--r-- 47.2 KB
binfmt_em86.c -rw-r--r-- 2.7 KB
binfmt_flat.c -rw-r--r-- 28.1 KB
binfmt_misc.c -rw-r--r-- 17.3 KB
binfmt_script.c -rw-r--r-- 4.2 KB
block_dev.c -rw-r--r-- 56.7 KB
buffer.c -rw-r--r-- 89.6 KB
char_dev.c -rw-r--r-- 16.5 KB
compat.c -rw-r--r-- 3.2 KB
compat_binfmt_elf.c -rw-r--r-- 3.5 KB
coredump.c -rw-r--r-- 22.3 KB
d_path.c -rw-r--r-- 11.3 KB
dax.c -rw-r--r-- 45.7 KB
dcache.c -rw-r--r-- 84.4 KB
dcookies.c -rw-r--r-- 7.1 KB
direct-io.c -rw-r--r-- 39.7 KB
drop_caches.c -rw-r--r-- 1.8 KB
eventfd.c -rw-r--r-- 12.0 KB
eventpoll.c -rw-r--r-- 66.0 KB
exec.c -rw-r--r-- 49.2 KB
fcntl.c -rw-r--r-- 23.3 KB
fhandle.c -rw-r--r-- 6.8 KB
file.c -rw-r--r-- 24.7 KB
file_table.c -rw-r--r-- 10.2 KB
filesystems.c -rw-r--r-- 6.4 KB
fs-writeback.c -rw-r--r-- 74.6 KB
fs_context.c -rw-r--r-- 17.3 KB
fs_parser.c -rw-r--r-- 10.1 KB
fs_pin.c -rw-r--r-- 1.9 KB
fs_struct.c -rw-r--r-- 3.3 KB
fs_types.c -rw-r--r-- 2.5 KB
fsopen.c -rw-r--r-- 11.0 KB
inode.c -rw-r--r-- 63.0 KB
internal.h -rw-r--r-- 4.9 KB
io-wq.c -rw-r--r-- 26.8 KB
io-wq.h -rw-r--r-- 3.7 KB
io_uring.c -rw-r--r-- 192.0 KB
ioctl.c -rw-r--r-- 21.0 KB
libfs.c -rw-r--r-- 34.7 KB
locks.c -rw-r--r-- 79.8 KB
mbcache.c -rw-r--r-- 12.0 KB
mount.h -rw-r--r-- 4.2 KB
mpage.c -rw-r--r-- 20.5 KB
namei.c -rw-r--r-- 119.7 KB
namespace.c -rw-r--r-- 98.2 KB
no-block.c -rw-r--r-- 478 bytes
nsfs.c -rw-r--r-- 6.6 KB
open.c -rw-r--r-- 32.8 KB
pipe.c -rw-r--r-- 31.1 KB
pnode.c -rw-r--r-- 15.1 KB
pnode.h -rw-r--r-- 1.9 KB
posix_acl.c -rw-r--r-- 21.5 KB
proc_namespace.c -rw-r--r-- 7.9 KB
read_write.c -rw-r--r-- 52.7 KB
readdir.c -rw-r--r-- 13.9 KB
select.c -rw-r--r-- 34.5 KB
seq_file.c -rw-r--r-- 23.9 KB
signalfd.c -rw-r--r-- 9.0 KB
splice.c -rw-r--r-- 40.5 KB
stack.c -rw-r--r-- 2.5 KB
stat.c -rw-r--r-- 20.2 KB
statfs.c -rw-r--r-- 9.6 KB
super.c -rw-r--r-- 47.9 KB
sync.c -rw-r--r-- 10.5 KB
timerfd.c -rw-r--r-- 13.6 KB
userfaultfd.c -rw-r--r-- 52.6 KB
utimes.c -rw-r--r-- 7.4 KB
xattr.c -rw-r--r-- 23.7 KB

back to top