printk只打印一次

     今天无意中在kernel发现一个宏定义:

#define printk_once(x...) ({   \
 static bool __print_once;  \
      \
 if (!__print_once) {   \
  __print_once = true;  \
  printk(x);   \
 }     \
})


     这样的话,有的信息就只会打印一次,非常实用。

     随便举个栗子:

static ssize_t show_sampling_rate_max(struct kobject *kobj,
				      struct attribute *attr, char *buf)
{
	printk_once(KERN_INFO "CPUFREQ: conservative sampling_rate_max "
		    "sysfs file is deprecated - used by: %s\n", current->comm);
	return sprintf(buf, "%u\n", -1U);
}


 

你可能感兴趣的:(linux)