Re: [PATCH] ttyprintk: make the printk log level configurable

From: Peter Korsgaard
Date: Fri Sep 07 2018 - 04:11:34 EST


>>>>> "Joe" == Joe Perches <joe@xxxxxxxxxxx> writes:

> On Fri, 2018-09-07 at 09:50 +0200, Peter Korsgaard wrote:
>> On Tue, Aug 21, 2018 at 7:28 PM Peter Korsgaard <peter@xxxxxxxxxxxxx> wrote:
>> >
>> > For some use cases it is handy to use a different printk log level than the
>> > default (info) for the messages written to ttyprintk, so add a Kconfig
>> > option similar to what we have for default console loglevel.
>>
>> Ping? Feedback, comments?

> I think it is moving "[U]" into TPK_LEVEL is an
> unnecessary and a tad obfuscating change.

It is arguably part of the prefix, but OK - I have no problem leaving it
in the printk line.

> This also adds a leading space for unknown reasons
> after the KERN_SOH <level>.

True. I'll fix that and send a v2 - Thanks.

>> > diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
>> > index ce277ee0a28a..14a7f023f20b 100644
>> > --- a/drivers/char/Kconfig
>> > +++ b/drivers/char/Kconfig
>> > @@ -66,6 +66,14 @@ config TTY_PRINTK
>> >
>> > If unsure, say N.
>> >
>> > +config TTY_PRINTK_LEVEL
>> > + depends on TTY_PRINTK
>> > + int "ttyprintk log level (1-7)"
>> > + range 1 7
>> > + default "6"
>> > + help
>> > + Printk log level to use for ttyprintk messages.
>> > +
>> > config PRINTER
>> > tristate "Parallel printer support"
>> > depends on PARPORT
>> > diff --git a/drivers/char/ttyprintk.c b/drivers/char/ttyprintk.c
>> > index 67549ce88cc9..22fbd483b5dc 100644
>> > --- a/drivers/char/ttyprintk.c
>> > +++ b/drivers/char/ttyprintk.c
>> > @@ -37,6 +37,8 @@ static struct ttyprintk_port tpk_port;
>> > */
>> > #define TPK_STR_SIZE 508 /* should be bigger then max expected line length */
>> > #define TPK_MAX_ROOM 4096 /* we could assume 4K for instance */
>> > +#define TPK_PREFIX KERN_SOH __stringify(CONFIG_TTY_PRINTK_LEVEL) " [U]"

> I think this should be

> #define TPK_PREFIX KERN_SOH __stringify(CONFIG_TTY_PRINTK_LEVEL)

>> > +
>> > static int tpk_curr;
>> >
>> > static char tpk_buffer[TPK_STR_SIZE + 4];
>> > @@ -45,7 +47,7 @@ static void tpk_flush(void)
>> > {
>> > if (tpk_curr > 0) {
>> > tpk_buffer[tpk_curr] = '\0';
>> > - pr_info("[U] %s\n", tpk_buffer);
>> > + printk(TPK_PREFIX " %s\n", tpk_buffer);

> and this

> printk(TPK_PREFIX "[U] %s\n", tpk_buffer);

>> > tpk_curr = 0;
>> > }
>> > }
>> > --
>> > 2.11.0
>> >
>>
>>

--
Bye, Peter Korsgaard