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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 8 Mar 2016 11:15:50 -0800
From:	Davidlohr Bueso <dave@...olabs.net>
To:	Michal Hocko <mhocko@...nel.org>
Cc:	LKML <linux-kernel@...r.kernel.org>,
	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>,
	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: Re: [PATCH 09/18] ipc, shm: make shmem attach/detach wait for
 mmap_sem killable

On Mon, 29 Feb 2016, Michal Hocko wrote:

>From: Michal Hocko <mhocko@...e.com>
>
>shmat and shmdt rely on 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: Davidlohr Bueso <dave@...olabs.net>
>Cc: Hugh Dickins <hughd@...gle.com>
>Signed-off-by: Michal Hocko <mhocko@...e.com>

I have no objection to this perse, just one comment below.

Acked-by: Davidlohr Bueso <dave@...olabs.net>

>---
> ipc/shm.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
>diff --git a/ipc/shm.c b/ipc/shm.c
>index 331fc1b0b3c7..b8cfa05940d2 100644
>--- a/ipc/shm.c
>+++ b/ipc/shm.c
>@@ -1200,7 +1200,11 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
> 	if (err)
> 		goto out_fput;
>
>-	down_write(&current->mm->mmap_sem);
>+	if (down_write_killable(&current->mm->mmap_sem)) {
>+		err = -EINVAL;
>+		goto out_fput;
>+	}

This should be EINTR, no?

Thanks,
Davidlohr

>+
> 	if (addr && !(shmflg & SHM_REMAP)) {
> 		err = -EINVAL;
> 		if (addr + size < addr)
>@@ -1271,7 +1275,8 @@ SYSCALL_DEFINE1(shmdt, char __user *, shmaddr)
> 	if (addr & ~PAGE_MASK)
> 		return retval;
>
>-	down_write(&mm->mmap_sem);
>+	if (down_write_killable(&mm->mmap_sem))
>+		return -EINTR;
>
> 	/*
> 	 * This function tries to be smart and unmap shm segments that
>-- 
>2.7.0
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ