Re: [PATCH 1/3] Add ratelimited printk for different alert levels

From: Joe Perches
Date: Tue Sep 11 2012 - 23:22:32 EST


On Wed, 2012-09-12 at 03:43 +0530, raghu.prabhu13@xxxxxxxxx wrote:
> Ratelimited printk will be useful in printing xfs messages which are otherwise
> not required to be printed always due to their high rate (to prevent kernel ring
> buffer from overflowing), while at the same time required to be printed.
[]
> diff --git a/fs/xfs/xfs_message.h b/fs/xfs/xfs_message.h
[]
> @@ -30,6 +32,32 @@ void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...)
> }
> #endif
>
> +#define xfs_printk_ratelimited(xfs_printk, dev, fmt, ...) \
> +do { \
> + static DEFINE_RATELIMIT_STATE(_rs, \
> + DEFAULT_RATELIMIT_INTERVAL, \
> + DEFAULT_RATELIMIT_BURST); \
> + if (__ratelimit(&_rs)) \
> + xfs_printk(dev, fmt, ##__VA_ARGS__); \
> +} while (0)

It might be better to use an xfs singleton RATELIMIT_STATE

DEFINE_RATELIMIT_STATE(xfs_rs);
...
#define xfs_printk_ratelimited(xfs_printk, dev, fmt, ...) \
do { \
if (__ratelimit(&xfs_rs)) \
xfs_printk(dev, fmt, ##__VA_ARGS__); \
} while (0)


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