> -----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/

Reply via email to