> -----Original Message----- > From: Manfred Spraul [mailto:manf...@colorfullife.com] > Sent: Friday, April 18, 2014 2:19 AM > To: Andrew Morton; Davidlohr Bueso > Cc: LKML; KAMEZAWA Hiroyuki; Motohiro Kosaki JP; gthe...@google.com; > as...@hp.com; linux...@kvack.org; Manfred Spraul; > mtk.manpa...@gmail.com > Subject: [PATCH] ipc/shm: Increase the defaults for SHMALL, SHMMAX to infinity > > System V shared memory > > a) can be abused to trigger out-of-memory conditions and the standard > measures against out-of-memory do not work: > > - it is not possible to use setrlimit to limit the size of shm segments. > > - segments can exist without association with any processes, thus > the oom-killer is unable to free that memory. > > b) is typically used for shared information - today often multiple GB. > (e.g. database shared buffers) > > The current default is a maximum segment size of 32 MB and a maximum total > size of 8 GB. This is often too much for a) and not > enough for b), which means that lots of users must change the defaults. > > This patch increases the default limits to ULONG_MAX, which is perfect for > case b). The defaults are used after boot and as the initial > value for each new namespace. > > Admins/distros that need a protection against a) should reduce the limits > and/or enable shm_rmid_forced. > > Further notes: > - The patch only changes the boot time default, overrides behave as before: > # sysctl kernel/shmall=33554432 > would recreate the previous limit for SHMMAX (for the current namespace). > > - Disabling sysv shm allocation is possible with: > # sysctl kernel.shmall=0 > (not a new feature, also per-namespace) > > - ULONG_MAX is not really infinity, but 18 Exabyte segment size and > 75 Zettabyte total size. This should be enough for the next few weeks. > (assuming a 64-bit system with 4k pages) > > Risks: > - The patch breaks installations that use "take current value and increase > it a bit". [seems to exist, http://marc.info/?l=linux-mm&m=139638334330127] > After a: > # CUR=`sysctl -n kernel.shmmax` > # NEW=`echo $CUR+1 | bc -l` > # sysctl -n kernel.shmmax=$NEW > shmmax ends up as 0, which disables shm allocations. > > - There is no wrap-around protection for ns->shm_ctlall, i.e. the 75 ZB > limit is not enforced. > > Signed-off-by: Manfred Spraul <manf...@colorfullife.com> > Reported-by: Davidlohr Bueso <davidl...@hp.com> > Cc: mtk.manpa...@gmail.com
I'm ok either ULONG_MAX or 0 (special value of infinity). Acked-by: KOSAKI Motohiro <kosaki.motoh...@jp.fujitsu.com> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/