* Borislav Petkov <b...@alien8.de> wrote:

> +/* issue num suppressed message on exit */
> +#define RATELIMIT_MSG_ON_RELEASE     BIT(0)

So this flag says that we should issue a ratelimit message when it occurs.

> +static inline void ratelimit_state_exit(struct ratelimit_state *rs)
> +{
> +     if (!(rs->flags & RATELIMIT_MSG_ON_RELEASE))
> +             return;
> +
> +     if (rs->missed)
> +             printk(KERN_WARNING "%s: %d callbacks suppressed\n",
> +                    current->comm, rs->missed);

... here we print the message if the RATELIMIT_MSG_ON_RELEASE bit is set.

> +++ b/lib/ratelimit.c
> @@ -46,12 +46,14 @@ int ___ratelimit(struct ratelimit_state *rs, const char 
> *func)
>               rs->begin = jiffies;
>  
>       if (time_is_before_jiffies(rs->begin + rs->interval)) {
> -             if (rs->missed)
> +             if (rs->missed && !(rs->flags & RATELIMIT_MSG_ON_RELEASE))
>                       printk(KERN_WARNING "%s: %d callbacks suppressed\n",
>                               func, rs->missed);

But here we print the message if the RATELIMIT_MSG_ON_RELEASE bit is zero.
Is that intentional?

Also, while we are changing it, I'd like to suggest a different message - it's 
talking about 'callbacks' but there's no callback here - we are skipping kernel 
log messages. So how about:

        pr_warn("%s: %d kernel log lines skipped, due to rate-limiting.\n"

Thanks,

        Ingo

Reply via email to