On (20/04/23 22:28), Tetsuo Handa wrote: [..] > +/* Annotation for "don't print to consoles". */ > +#define KERN_NO_CONSOLES KERN_SOH "S" > + > /* integer equivalents of KERN_<LEVEL> */ > #define LOGLEVEL_SCHED -2 /* Deferred messages from sched code > * are set to this special level */ > diff --git a/include/linux/printk.h b/include/linux/printk.h > index e061635e0409..da338b81c2e1 100644 > --- a/include/linux/printk.h > +++ b/include/linux/printk.h > @@ -19,6 +19,7 @@ static inline int printk_get_level(const char *buffer) > switch (buffer[1]) { > case '0' ... '7': > case 'c': /* KERN_CONT */ > + case 'S': /* KERN_NO_CONSOLES */ > return buffer[1]; > } > } > diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c > index 9a9b6156270b..ed51641af087 100644 > --- a/kernel/printk/printk.c > +++ b/kernel/printk/printk.c > @@ -361,6 +361,7 @@ static int console_msg_format = MSG_FORMAT_DEFAULT; > */ > > enum log_flags { > + LOG_NO_CONSOLES = 1, /* don't print to consoles */ > LOG_NEWLINE = 2, /* text ended with a newline */ > LOG_CONT = 8, /* text is a fragment of a continuation line */ > }; > @@ -1959,6 +1960,9 @@ int vprintk_store(int facility, int level, > break; > case 'c': /* KERN_CONT */ > lflags |= LOG_CONT; > + break; > + case 'S': /* KERN_NO_CONSOLES */ > + lflags |= LOG_NO_CONSOLES; > } [..] Hmm. Any chance that those NO_CONSOLE messages overflow logbuf so then we start losing pending YES_CONSOLE messages? -ss