lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 29 Feb 2016 14:26:53 +0100 From: Michal Hocko <mhocko@...nel.org> To: LKML <linux-kernel@...r.kernel.org> Cc: Andrew Morton <akpm@...ux-foundation.org>, <linux-mm@...ck.org>, Alex Deucher <alexander.deucher@....com>, Alex Thorlton <athorlton@....com>, Andrea Arcangeli <aarcange@...hat.com>, Andy Lutomirski <luto@...capital.net>, Benjamin LaHaise <bcrl@...ck.org>, Christian König <christian.koenig@....com>, Daniel Vetter <daniel.vetter@...el.com>, Dave Hansen <dave.hansen@...ux.intel.com>, David Airlie <airlied@...ux.ie>, Davidlohr Bueso <dave@...olabs.net>, David Rientjes <rientjes@...gle.com>, "H . Peter Anvin" <hpa@...or.com>, Hugh Dickins <hughd@...gle.com>, Ingo Molnar <mingo@...nel.org>, Johannes Weiner <hannes@...xchg.org>, "Kirill A . Shutemov" <kirill.shutemov@...ux.intel.com>, Konstantin Khlebnikov <koct9i@...il.com>, linux-arch@...r.kernel.org, Mel Gorman <mgorman@...e.de>, Oleg Nesterov <oleg@...hat.com>, Peter Zijlstra <peterz@...radead.org>, Petr Cermak <petrcermak@...omium.org>, Thomas Gleixner <tglx@...utronix.de>, Michal Hocko <mhocko@...e.com> Subject: [PATCH 14/18] prctl: make PR_SET_THP_DISABLE wait for mmap_sem killable From: Michal Hocko <mhocko@...e.com> PR_SET_THP_DISABLE requires mmap_sem for write. If the waiting task gets killed by the oom killer it would block oom_reaper from asynchronous address space reclaim and reduce the chances of timely OOM resolving. Wait for the lock in the killable mode and return with EINTR if the task got killed while waiting. Cc: Alex Thorlton <athorlton@....com> Signed-off-by: Michal Hocko <mhocko@...e.com> --- kernel/sys.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/sys.c b/kernel/sys.c index cf8ba545c7d3..89d5be418157 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -2246,7 +2246,8 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3, case PR_SET_THP_DISABLE: if (arg3 || arg4 || arg5) return -EINVAL; - down_write(&me->mm->mmap_sem); + if (down_write_killable(&me->mm->mmap_sem)) + return -EINTR; if (arg2) me->mm->def_flags |= VM_NOHUGEPAGE; else -- 2.7.0
Powered by blists - more mailing lists