• Naohiro Ooiwa's avatar
    signal: Print warning message when dropping signals · f84d49b2
    Naohiro Ooiwa authored
    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: default avatarNaohiro 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: default avatarIngo Molnar <mingo@elte.hu>
    f84d49b2
signal.c 67.6 KB