From: u.kleine-koenig@pengutronix.de (Uwe Kleine-König)
To: linux-arm-kernel@lists.infradead.org
Subject: About multi-line printk and the need (not) to repeat loglevel markers [Was: Re: [PATCH] ARM: mx3/pcm037: properly allocate memory for mx3-camera]
Date: Wed, 24 Nov 2010 09:17:48 +0100 [thread overview]
Message-ID: <20101124081748.GV4693@pengutronix.de> (raw)
In-Reply-To: <AANLkTinmky17XZZPh7QvcY_r=66f_PwzRYFPUSvhiJGK@mail.gmail.com>
Hello Linus,
On Wed, Nov 24, 2010 at 07:16:06AM +0900, Linus Torvalds wrote:
> 10/11/23 Uwe Kleine-K?nig <u.kleine-koenig@pengutronix.de>:
> >
> > BTW, I just noticed that Linus wrote:
> >
> > ? ? ? ?Additionally, if no newline existed, one is added (unless the
> > ? ? ? ?log-level is the explicit KERN_CONT marker, to explicitly show
> > ? ? ? ?that it's a continuation of a previous line).
> >
> > This seems to be unimplemented, otherwise the output of
> >
> > ? ? ? ?printk(KERN_ERR "foo bar baz ");
> > ? ? ? ?printk("buz\n" KERN_WARNING "fiz\n");
> >
> > should be
> >
> > ? ? ? ?"foo bar baz \n" at error level
> > ? ? ? ?"buz\n<4>fiz\n" at default level
>
> No. The KERN_WARNING in the middle of a string is always totally
> bogus. There is no "should be". It's just wrong.
>
> The "\n" is added automatically iff there is a log-level marker at the
> beginning of the string (with LOG_CONT being the exception).
So
printk("anything that doesn't look like a loglevel marker");
always behaves like
printk(KERN_CONT "anything that doesn't look like a loglevel marker");
so unless someone wants to print a literal kernel marker we can just do
-#define KERN_CONT "<c>"
+#define KERN_CONT ""
without any harm.
I wonder why you implemented "iff there is a log-level marker at the
beginning ot the string (with KERN_CONT being the exception)." and not
"unless there is a KERN_CONT marker".
> So
>
> printk("foo bar baz ");
> printk(KERN_WARNING "fiz\n");
>
> should output two lines ("foo bar baz" with the default loglevel, and
> "fiz" with KERN_WARNING). Even though there is no explicit "\n" there
> for the first one.
>
> But KERN_XYZ anywhere but in the beginning of the string do not
> matter. Adding newlines changes none of that. It doesn't make the
> marker beginning of the string, it just makes it beginning of the
> line.
I see one reason to interpret markers after a newline. In case
recursion_bug is true, printk_buf is initialized with recursion_bug_msg
and my message gets appended. So currently the marker I pass with my
message is ignored.
Maybe wanting to fix that is just my addiction to overengineering :-)
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-K?nig |
Industrial Linux Solutions | http://www.pengutronix.de/ |
WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Russell King - ARM Linux <linux@arm.linux.org.uk>,
linux-arm-kernel@lists.infradead.org, kernel@pengutronix.de,
linux-kernel@vger.kernel.org,
Arjan van de Ven <arjan@infradead.org>
Subject: Re: About multi-line printk and the need (not) to repeat loglevel markers [Was: Re: [PATCH] ARM: mx3/pcm037: properly allocate memory for mx3-camera]
Date: Wed, 24 Nov 2010 09:17:48 +0100 [thread overview]
Message-ID: <20101124081748.GV4693@pengutronix.de> (raw)
In-Reply-To: <AANLkTinmky17XZZPh7QvcY_r=66f_PwzRYFPUSvhiJGK@mail.gmail.com>
Hello Linus,
On Wed, Nov 24, 2010 at 07:16:06AM +0900, Linus Torvalds wrote:
> 10/11/23 Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
> >
> > BTW, I just noticed that Linus wrote:
> >
> > Additionally, if no newline existed, one is added (unless the
> > log-level is the explicit KERN_CONT marker, to explicitly show
> > that it's a continuation of a previous line).
> >
> > This seems to be unimplemented, otherwise the output of
> >
> > printk(KERN_ERR "foo bar baz ");
> > printk("buz\n" KERN_WARNING "fiz\n");
> >
> > should be
> >
> > "foo bar baz \n" at error level
> > "buz\n<4>fiz\n" at default level
>
> No. The KERN_WARNING in the middle of a string is always totally
> bogus. There is no "should be". It's just wrong.
>
> The "\n" is added automatically iff there is a log-level marker at the
> beginning of the string (with LOG_CONT being the exception).
So
printk("anything that doesn't look like a loglevel marker");
always behaves like
printk(KERN_CONT "anything that doesn't look like a loglevel marker");
so unless someone wants to print a literal kernel marker we can just do
-#define KERN_CONT "<c>"
+#define KERN_CONT ""
without any harm.
I wonder why you implemented "iff there is a log-level marker at the
beginning ot the string (with KERN_CONT being the exception)." and not
"unless there is a KERN_CONT marker".
> So
>
> printk("foo bar baz ");
> printk(KERN_WARNING "fiz\n");
>
> should output two lines ("foo bar baz" with the default loglevel, and
> "fiz" with KERN_WARNING). Even though there is no explicit "\n" there
> for the first one.
>
> But KERN_XYZ anywhere but in the beginning of the string do not
> matter. Adding newlines changes none of that. It doesn't make the
> marker beginning of the string, it just makes it beginning of the
> line.
I see one reason to interpret markers after a newline. In case
recursion_bug is true, printk_buf is initialized with recursion_bug_msg
and my message gets appended. So currently the marker I pass with my
message is ignored.
Maybe wanting to fix that is just my addiction to overengineering :-)
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
next prev parent reply other threads:[~2010-11-24 8:17 UTC|newest]
Thread overview: 209+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-07 9:44 [PATCH] ARM: allow, but warn, when issuing ioremap() on RAM Felipe Contreras
2010-10-07 9:44 ` Felipe Contreras
2010-10-07 11:51 ` Baruch Siach
2010-10-07 11:51 ` Baruch Siach
2010-10-07 12:29 ` [PATCH v2] " Felipe Contreras
2010-10-07 12:29 ` Felipe Contreras
2010-10-07 18:00 ` Uwe Kleine-König
2010-10-07 18:00 ` Uwe Kleine-König
2010-10-07 19:22 ` [PATCH] " Russell King - ARM Linux
2010-10-07 19:22 ` Russell King - ARM Linux
2010-10-08 9:32 ` Felipe Contreras
2010-10-08 9:32 ` Felipe Contreras
2010-10-08 17:53 ` Russell King - ARM Linux
2010-10-08 17:53 ` Russell King - ARM Linux
2010-10-08 19:37 ` Felipe Contreras
2010-10-08 19:37 ` Felipe Contreras
2010-10-08 23:04 ` Russell King - ARM Linux
2010-10-08 23:04 ` Russell King - ARM Linux
2010-10-08 23:25 ` Greg KH
2010-10-08 23:25 ` Greg KH
2010-10-08 23:44 ` Russell King - ARM Linux
2010-10-08 23:44 ` Russell King - ARM Linux
2010-10-09 0:00 ` Greg KH
2010-10-09 0:00 ` Greg KH
2010-10-09 0:25 ` Russell King - ARM Linux
2010-10-09 0:25 ` Russell King - ARM Linux
2010-10-09 0:54 ` Greg KH
2010-10-09 0:54 ` Greg KH
2010-10-09 2:41 ` Nicolas Pitre
2010-10-09 2:41 ` Nicolas Pitre
2010-10-09 3:04 ` Greg KH
2010-10-09 3:04 ` Greg KH
2010-10-09 9:32 ` Felipe Contreras
2010-10-09 9:32 ` Felipe Contreras
2010-10-11 10:05 ` Catalin Marinas
2010-10-11 10:05 ` Catalin Marinas
2010-10-11 10:39 ` Felipe Contreras
2010-10-11 10:39 ` Felipe Contreras
2010-10-11 10:52 ` Russell King - ARM Linux
2010-10-11 10:52 ` Russell King - ARM Linux
2010-10-11 11:23 ` Catalin Marinas
2010-10-11 11:23 ` Catalin Marinas
2010-10-11 12:03 ` Felipe Contreras
2010-10-11 12:03 ` Felipe Contreras
2010-10-11 12:30 ` Catalin Marinas
2010-10-11 12:30 ` Catalin Marinas
2010-10-11 22:53 ` Nicolas Pitre
2010-10-11 22:53 ` Nicolas Pitre
2010-10-14 15:02 ` Felipe Contreras
2010-10-14 15:02 ` Felipe Contreras
2010-10-14 17:18 ` Catalin Marinas
2010-10-14 17:18 ` Catalin Marinas
2010-10-14 17:44 ` Felipe Contreras
2010-10-14 17:44 ` Felipe Contreras
2010-10-11 11:01 ` Pawel Moll
2010-10-11 11:01 ` Pawel Moll
2010-10-11 11:03 ` Catalin Marinas
2010-10-11 11:03 ` Catalin Marinas
2010-10-16 2:39 ` Benjamin Herrenschmidt
2010-10-16 2:39 ` Benjamin Herrenschmidt
2010-10-16 9:43 ` Felipe Contreras
2010-10-16 9:43 ` Felipe Contreras
2010-10-09 0:10 ` Russell King - ARM Linux
2010-10-09 0:10 ` Russell King - ARM Linux
2010-10-09 0:56 ` Felipe Contreras
2010-10-09 0:56 ` Felipe Contreras
2010-10-09 9:21 ` Russell King - ARM Linux
2010-10-09 9:21 ` Russell King - ARM Linux
2010-10-09 10:28 ` Felipe Contreras
2010-10-09 10:28 ` Felipe Contreras
2010-10-09 11:11 ` Arnd Bergmann
2010-10-09 11:11 ` Arnd Bergmann
2010-10-09 11:43 ` Dave Airlie
2010-10-09 11:43 ` Dave Airlie
2010-10-09 11:55 ` Christoph Hellwig
2010-10-09 11:55 ` Christoph Hellwig
2010-10-09 12:17 ` Felipe Contreras
2010-10-09 12:17 ` Felipe Contreras
2010-10-09 12:10 ` Felipe Contreras
2010-10-09 12:10 ` Felipe Contreras
2010-10-09 14:37 ` Russell King - ARM Linux
2010-10-09 14:37 ` Russell King - ARM Linux
2010-10-09 16:18 ` Felipe Contreras
2010-10-09 16:18 ` Felipe Contreras
2010-10-09 11:44 ` Uwe Kleine-König
2010-10-09 11:44 ` Uwe Kleine-König
2010-10-09 12:05 ` Russell King - ARM Linux
2010-10-09 12:05 ` Russell King - ARM Linux
2010-10-09 11:59 ` Felipe Contreras
2010-10-09 11:59 ` Felipe Contreras
2010-10-09 14:43 ` Arnd Bergmann
2010-10-09 14:43 ` Arnd Bergmann
2010-10-09 18:59 ` Guennadi Liakhovetski
2010-10-09 18:59 ` Guennadi Liakhovetski
2010-10-10 1:52 ` Felipe Contreras
2010-10-10 1:52 ` Felipe Contreras
2010-10-11 8:35 ` Uwe Kleine-König
2010-10-11 8:35 ` Uwe Kleine-König
2010-10-11 9:02 ` Russell King - ARM Linux
2010-10-11 9:02 ` Russell King - ARM Linux
2010-10-11 9:24 ` Uwe Kleine-König
2010-10-11 9:24 ` Uwe Kleine-König
2010-10-11 10:08 ` Felipe Contreras
2010-10-11 10:08 ` Felipe Contreras
2010-10-11 10:15 ` Russell King - ARM Linux
2010-10-11 10:15 ` Russell King - ARM Linux
2010-10-11 15:25 ` Russell King - ARM Linux
2010-10-11 15:25 ` Russell King - ARM Linux
2010-10-14 14:47 ` Felipe Contreras
2010-10-14 14:47 ` Felipe Contreras
2010-10-19 8:13 ` Colin Cross
2010-10-19 8:13 ` Colin Cross
2010-10-19 18:12 ` Russell King - ARM Linux
2010-10-19 18:12 ` Russell King - ARM Linux
2010-10-19 19:21 ` Russell King - ARM Linux
2010-10-19 19:21 ` Russell King - ARM Linux
2010-11-23 9:43 ` [PATCH] ARM: mx3/pcm037: properly allocate memory for mx3-camera Uwe Kleine-König
2010-11-23 10:12 ` Russell King - ARM Linux
2010-11-23 10:26 ` Uwe Kleine-König
2010-11-23 14:08 ` Alberto Panizzo
2010-11-23 14:17 ` Uwe Kleine-König
2010-11-24 8:02 ` Uwe Kleine-König
2010-12-06 8:33 ` Uwe Kleine-König
2010-12-06 10:14 ` Alberto Panizzo
2010-12-06 10:26 ` Russell King - ARM Linux
2010-12-06 11:37 ` Alberto Panizzo
2010-12-06 11:46 ` Russell King - ARM Linux
2010-12-06 14:09 ` Alberto Panizzo
2010-12-06 14:34 ` Russell King - ARM Linux
2010-12-06 14:54 ` Alberto Panizzo
2010-12-06 16:54 ` Alberto Panizzo
2010-11-23 10:39 ` About multi-line printk and the need (not) to repeat loglevel markers [Was: Re: [PATCH] ARM: mx3/pcm037: properly allocate memory for mx3-camera] Uwe Kleine-König
2010-11-23 10:39 ` Uwe Kleine-König
2010-11-23 10:58 ` Uwe Kleine-König
2010-11-23 10:58 ` Uwe Kleine-König
2010-11-23 22:16 ` Linus Torvalds
2010-11-23 22:16 ` Linus Torvalds
2010-11-23 22:33 ` Russell King - ARM Linux
2010-11-23 22:33 ` Russell King - ARM Linux
2010-11-23 23:23 ` Joe Perches
2010-11-23 23:23 ` Joe Perches
2010-11-24 0:57 ` [PATCH] md: Fix single printks with multiple KERN_<level>s Joe Perches
2010-11-24 5:16 ` Neil Brown
2010-11-24 8:17 ` Uwe Kleine-König [this message]
2010-11-24 8:17 ` About multi-line printk and the need (not) to repeat loglevel markers [Was: Re: [PATCH] ARM: mx3/pcm037: properly allocate memory for mx3-camera] Uwe Kleine-König
2010-11-24 8:56 ` [PATCH 0/6] add some KERN_CONT markers to continuation lines Uwe Kleine-König
2010-11-24 8:57 ` [PATCH 1/6] ARM: " Uwe Kleine-König
2010-11-24 8:57 ` Uwe Kleine-König
2010-11-24 8:57 ` [PATCH 2/6] block: " Uwe Kleine-König
2010-11-24 8:57 ` [PATCH 3/6] net: " Uwe Kleine-König
2010-11-28 18:48 ` David Miller
2010-11-24 8:57 ` [PATCH 4/6] init: " Uwe Kleine-König
2010-11-24 8:57 ` [PATCH 5/6] mm: " Uwe Kleine-König
2010-11-24 8:57 ` Uwe Kleine-König
2011-02-28 15:17 ` Uwe Kleine-König
2011-02-28 15:17 ` Uwe Kleine-König
2011-03-01 21:46 ` Linus Torvalds
2011-03-01 21:46 ` Linus Torvalds
2011-03-02 5:28 ` Joe Perches
2011-03-02 5:28 ` Joe Perches
2010-11-24 8:57 ` [PATCH 6/6] tty/vt: " Uwe Kleine-König
2011-02-28 15:16 ` Uwe Kleine-König
2011-02-28 15:39 ` Greg KH
2011-02-28 15:50 ` Uwe Kleine-König
2011-02-28 16:04 ` Greg KH
2011-03-01 3:18 ` Greg KH
2010-11-24 9:09 ` About multi-line printk and the need (not) to repeat loglevel markers [Was: Re: [PATCH] ARM: mx3/pcm037: properly allocate memory for mx3-camera] Michał Mirosław
2010-11-24 9:09 ` Michał Mirosław
2010-11-23 22:54 ` [PATCH] ARM: mx3/pcm037: properly allocate memory for mx3-camera Guennadi Liakhovetski
2010-10-09 0:45 ` [PATCH] ARM: allow, but warn, when issuing ioremap() on RAM Felipe Contreras
2010-10-09 0:45 ` Felipe Contreras
2010-10-09 8:56 ` Russell King - ARM Linux
2010-10-09 8:56 ` Russell King - ARM Linux
2010-10-08 23:19 ` Greg KH
2010-10-08 23:19 ` Greg KH
2010-10-09 3:36 ` Nicolas Pitre
2010-10-09 3:36 ` Nicolas Pitre
2010-10-09 10:00 ` Felipe Contreras
2010-10-09 10:00 ` Felipe Contreras
2010-10-09 17:38 ` Nicolas Pitre
2010-10-09 17:38 ` Nicolas Pitre
2010-10-09 20:16 ` Felipe Contreras
2010-10-09 20:16 ` Felipe Contreras
2010-10-13 16:17 ` Woodruff, Richard
2010-10-13 16:17 ` Woodruff, Richard
2010-10-14 13:48 ` Felipe Contreras
2010-10-14 13:48 ` Felipe Contreras
2010-10-14 15:29 ` Woodruff, Richard
2010-10-14 15:29 ` Woodruff, Richard
2010-10-16 2:36 ` Benjamin Herrenschmidt
2010-10-16 2:36 ` Benjamin Herrenschmidt
2010-10-17 13:05 ` Woodruff, Richard
2010-10-17 13:05 ` Woodruff, Richard
2010-10-17 23:17 ` Benjamin Herrenschmidt
2010-10-17 23:17 ` Benjamin Herrenschmidt
2010-10-08 19:58 ` Andrew Morton
2010-10-08 19:58 ` Andrew Morton
2010-10-09 13:52 ` Russell King - ARM Linux
2010-10-09 13:52 ` Russell King - ARM Linux
2010-10-09 16:07 ` Felipe Contreras
2010-10-09 16:07 ` Felipe Contreras
2010-10-09 16:45 ` Russell King - ARM Linux
2010-10-09 16:45 ` Russell King - ARM Linux
2010-10-09 19:25 ` Felipe Contreras
2010-10-09 19:25 ` Felipe Contreras
2010-10-10 14:23 ` Pedanekar, Hemant
2010-10-10 14:23 ` Pedanekar, Hemant
2010-10-11 9:26 ` Catalin Marinas
2010-10-11 9:26 ` Catalin Marinas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101124081748.GV4693@pengutronix.de \
--to=u.kleine-koenig@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.