限制printk的打印数量 -- pr_emerg_ratelimited

/*
 * ratelimited messages with local ratelimit_state,
 * no local ratelimit_state used in the !PRINTK case
 */
#ifdef CONFIG_PRINTK
#define printk_ratelimited(fmt, ...)					\
({
      
      									\
	static DEFINE_RATELIMIT_STATE(_rs,				\
				      DEFAULT_RATELIMIT_INTERVAL,	\
				      DEFAULT_RATELIMIT_BURST);		\
									\
	if (__ratelimit(&_rs))						\
		printk(fmt, ##__VA_ARGS__);				\
})
#else
#define printk_ratelimited(fmt, ...)					\
	no_printk(fmt, ##__VA_ARGS__)
#endif

限制条件可动态修改,在 /proc 目录下的两个文件:

/proc/sys/kernel/printk_ratelimit
/proc/sys/kernel/printk_ratelimit_burst

printk_ratelimit 表示时间间隔
printk_ratelimit_burst 表示频次间隔
默认情况下 printk_ratelimit 的值是 5 ,printk_ratelimit_burst 的值是 10。
即指定的打印在每5秒的时间里最多只能打印10次。

参考文档:
https://www.cnblogs.com/chorm590/p/12782251.html

猜你喜欢

转载自blog.csdn.net/furongwei123/article/details/122192540
今日推荐