On 2021-01-25, Peter Zijlstra <pet...@infradead.org> wrote: > On Sat, Jan 23, 2021 at 11:37:40PM +0000, Qais Yousef wrote: >> To allow users in code where printk is not allowed. >> >> Signed-off-by: Qais Yousef <qais.you...@arm.com> >> --- >> include/linux/printk.h | 24 ++++++++++++++++++++++++ >> 1 file changed, 24 insertions(+) >> >> diff --git a/include/linux/printk.h b/include/linux/printk.h >> index fe7eb2351610..92c0978c7b44 100644 >> --- a/include/linux/printk.h >> +++ b/include/linux/printk.h >> @@ -480,21 +480,45 @@ extern int kptr_restrict; >> printk_once(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) >> /* no pr_cont_once, don't do that... */ >> >> +#define pr_emerg_deferred_once(fmt, ...) \ >> + printk_deferred_once(KERN_EMERG pr_fmt(fmt), ##__VA_ARGS__) >> +#define pr_alert_deferred_once(fmt, ...) \ >> + printk_deferred_once(KERN_ALERT pr_fmt(fmt), ##__VA_ARGS__) >> +#define pr_crit_deferred_once(fmt, ...) >> \ >> + printk_deferred_once(KERN_CRIT pr_fmt(fmt), ##__VA_ARGS__) >> +#define pr_err_deferred_once(fmt, ...) >> \ >> + printk_deferred_once(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) >> +#define pr_warn_deferred_once(fmt, ...) >> \ >> + printk_deferred_once(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__) >> +#define pr_notice_deferred_once(fmt, ...) \ >> + printk_deferred_once(KERN_NOTICE pr_fmt(fmt), ##__VA_ARGS__) >> +#define pr_info_deferred_once(fmt, ...) >> \ >> + printk_deferred_once(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) >> +/* no pr_cont_deferred_once, don't do that... */ > > I absolutely detest this.. the whole _deferred thing is an > abomination.
And it will disappear at some point. > We should be very close to printk not needing this anymore, printk > people? It will disappear once console printing threads are introduced. We probably still have a few kernel releases until we see that. First we need to finish merging full lockless access, remove the safe buffers, and merge the atomic consoles. John Ogness