On (08/29/19 11:01), shuah wrote: [..] > Hi Sergey, > > What are the guidelines for using printk(). I recall some discussion > about not using printk(). I am seeing the following from checkpatch > script: Hello, > WARNING: Prefer [subsystem eg: netdev]_level([subsystem]dev, ... then > dev_level(dev, ... then pr_level(... to printk(KERN_LEVEL ... > #105: FILE: include/kunit/test.h:343: > + printk(KERN_LEVEL "\t# %s: " fmt, (test)->name, ##__VA_ARGS__) > Oh, right. So we sort of want people to use pr_err()/pr_info()/pr_"level"() because, otherwise, when people use plain printk(), they tend to forget to add KERN_LEVEL. In kunit case everything looks fine. KERN_LEVEL is there so I'm fine with the patch. You still can switch to pr_info()/pr_err()/pr_etc, just to make checkpatch happier, but that's up to you. > Is there supposed to be pr_level() - I can find dev_level() No, not really. pr_level() stands for pr_"debug"()/pr_"info"()/etc. E.g. #define pr_emerg(fmt, ...) \ printk(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__) #define pr_alert(fmt, ...) \ printk(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) #define pr_crit(fmt, ...) \ printk(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__) #define pr_err(fmt, ...) \ printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) #define pr_warning(fmt, ...) \ printk(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) #define pr_warn pr_warning #define pr_notice(fmt, ...) \ printk(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__) #define pr_info(fmt, ...) \ printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) -ss