Re: [PATCH] show message when exceeded rlimit of pending signals

From: Hiroshi Shimamoto
Date: Tue Oct 27 2009 - 00:38:20 EST


Naohiro Ooiwa wrote:
> Hi Ingo,
>
>> Here's a slightly improved version of the text:
>
> Thank you for your review and collect my English.
>
>>> +int print_fatal_signals;
>> i'd suggest __read_mostly.
>
>> Plus please move variables to the top of the file. (i know this comes
>> from the previous code but we can improve it while we are touching it)
>
> Of course. You're right, if we found one like it,
> I want to improve the code little by little too.
>
> How is the following patch.

If you can provide a test case, it's helpful to confirm this improve.
And nitpicks below.

>
> Signed-off-by: Naohiro Ooiwa <nooiwa@xxxxxxxxxxxxxxxx>
> Acked-by: Ingo Molnar <mingo@xxxxxxx>
> ---
> Documentation/kernel-parameters.txt | 13 ++++++++++---
> kernel/signal.c | 16 +++++++++++++---
> 2 files changed, 23 insertions(+), 6 deletions(-)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 9107b38..8492ad3 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -2032,9 +2032,16 @@ and is between 256 and 4096 characters. It is defined in the file
>
> print-fatal-signals=
> [KNL] debug: print fatal signals
> - print-fatal-signals=1: print segfault info to
> - the kernel console.
> - default: off.
> +
> + If enabled, warn about various signal handling
> + related application anomalies: too many signals,
> + too many POSIX.1 timers, fatal signals causing a
> + coredump - etc.
> +
> + If you hit the warning due to signal overflow,
> + you might want to try "ulimit -i unlimited".
> +
> + default: off.

there are white spaces before tabs.

>
> printk.time= Show timing data prefixed to each printk message line
> Format: <bool> (1/Y/y=enable, 0/N/n=disable)
> diff --git a/kernel/signal.c b/kernel/signal.c
> index 6705320..c913eb7 100644
> --- a/kernel/signal.c
> +++ b/kernel/signal.c
> @@ -41,6 +41,8 @@
>
> static struct kmem_cache *sigqueue_cachep;
>
> +int print_fatal_signals __read_mostly;
> +
> static void __user *sig_handler(struct task_struct *t, int sig)
> {
> return t->sighand->action[sig - 1].sa.sa_handler;
> @@ -188,6 +190,12 @@ int next_signal(struct sigpending *pending, sigset_t *mask)
> return sig;
> }
>
> +static void show_reach_rlimit_sigpending(void)
> +{
> + if (printk_ratelimit())
> + printk(KERN_WARNING "%s/%d: reached the limit of pending signals.\n", current->comm, current->pid);

this line over 80 characters.

thanks,
Hiroshi
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/