]> git.baikalelectronics.ru Git - kernel.git/commit
signal: Print warning message when dropping signals
authorNaohiro Ooiwa <nooiwa@miraclelinux.com>
Sun, 8 Nov 2009 15:46:42 +0000 (00:46 +0900)
committerIngo Molnar <mingo@elte.hu>
Mon, 9 Nov 2009 08:44:26 +0000 (09:44 +0100)
commitf9c22406a6622b6f96ddc36dc1099df2d92767ac
treed62ed0c15152c1a0a78fb75feac649dafc05b041
parent182d16c15d33aedfd317a4b2b78cc00430b275e4
signal: Print warning message when dropping signals

When the system has too many timers or too many aggregate
queued signals, the EAGAIN error is returned to application
from kernel, including timer_create() [POSIX.1b].

It means that the app exceeded the limit of pending signals,
but in general application writers do not expect this
outcome and the current silent failure can cause rare app
failures under very high load.

This patch adds a new message when we reach the limit
and if print_fatal_signals is enabled:

    task/1234: reached RLIMIT_SIGPENDING, dropping signal

If you see this message and your system behaved unexpectedly,
you can run following command to lift the limit:

   # ulimit -i unlimited

With help from Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>.

Signed-off-by: Naohiro Ooiwa <nooiwa@miraclelinux.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Hiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Cc: Roland McGrath <roland@redhat.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: oleg@redhat.com
LKML-Reference: <4AF6E7E2.9080406@miraclelinux.com>
[ Modified a few small details, gave surrounding code some love. ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Documentation/kernel-parameters.txt
kernel/signal.c