Re: [alsa-devel] [PATCH 0/8] Rework KERN_<LEVEL>

On Tue, 05 Jun 2012 17:07:27 -0700 Joe Perches joe@perches.com wrote:
On Tue, 2012-06-05 at 16:58 -0700, Andrew Morton wrote:
echo "\0014Hello Joe" > /dev/kmsg
# echo -e "\x014Hello Me" > /dev/kmsg gives: 12,778,4057982669;Hello Me
That's changed behavior.
On Wed, 6 Jun 2012 02:28:39 +0200 Kay Sievers kay@vrfy.org wrote:
Yeah, but printk_emit() will not try to parse it? I did not check, but with your change, the prefix parsing in printk_emit() is still skipped if a level is given as a parameter to printk_emit(), right?
printk_emit() does parse the leading \0014, and then skips over it, removing it from the output stream. printk_emit() then throws away the resulting level because devkmsg_writev() did not pass in level==-1.

On Tue, 2012-06-05 at 17:37 -0700, Andrew Morton wrote:
On Tue, 05 Jun 2012 17:07:27 -0700 Joe Perches joe@perches.com wrote:
On Tue, 2012-06-05 at 16:58 -0700, Andrew Morton wrote:
echo "\0014Hello Joe" > /dev/kmsg
# echo -e "\x014Hello Me" > /dev/kmsg gives: 12,778,4057982669;Hello Me
That's changed behavior.
Which is an improvement too. I very much doubt a single app will change because of this.
printk_emit() does parse the leading \0014, and then skips over it, removing it from the output stream. printk_emit() then throws away the resulting level because devkmsg_writev() did not pass in level==-1.
I'm glad you know how it works now.
cheers, Joe

On Tue, 05 Jun 2012 17:40:05 -0700 Joe Perches joe@perches.com wrote:
On Tue, 2012-06-05 at 17:37 -0700, Andrew Morton wrote:
On Tue, 05 Jun 2012 17:07:27 -0700 Joe Perches joe@perches.com wrote:
On Tue, 2012-06-05 at 16:58 -0700, Andrew Morton wrote:
echo "\0014Hello Joe" > /dev/kmsg
# echo -e "\x014Hello Me" > /dev/kmsg gives: 12,778,4057982669;Hello Me
That's changed behavior.
Which is an improvement too.
No it isn't. It exposes internal kernel implementation details in random weird inexplicable ways. It doesn't seem at all important though.
I very much doubt a single app will change because of this.
I doubt it as well.
printk_emit() does parse the leading \0014, and then skips over it, removing it from the output stream. printk_emit() then throws away the resulting level because devkmsg_writev() did not pass in level==-1.
I'm glad you know how it works now.
It's nice to see you learning about it as well.
participants (2)
-
Andrew Morton
-
Joe Perches