From: Linus Torvalds <torvalds@linux-foundation.org>
To: Vegard Nossum <vegard.nossum@gmail.com>
Cc: Jan Engelhardt <jengelh@medozas.de>,
Andrew Morton <akpm@linux-foundation.org>,
Matthew Wilcox <matthew@wil.cx>, Peter Anvin <hpa@zytor.com>,
"David S. Miller" <davem@davemloft.net>,
linux-ia64@vger.kernel.org, linuxppc-dev@ozlabs.org,
linux-kernel@vger.kernel.org
Subject: Re: the printk problem
Date: Sat, 5 Jul 2008 10:56:54 -0700 (PDT) [thread overview]
Message-ID: <alpine.LFD.1.10.0807051045520.2815@woody.linux-foundation.org> (raw)
In-Reply-To: <20080705125230.GA20166@damson.getinternet.no>
On Sat, 5 Jul 2008, Vegard Nossum wrote:
> On Sat, Jul 5, 2008 at 1:33 PM, Jan Engelhardt <jengelh@medozas.de> wrote:
> >
> > On Saturday 2008-07-05 00:01, Andrew Morton wrote:
> >>
> >>We don't know how much interest there would be in churning NIPQUAD from
> >>the net guys. Interestingly, there's also %C (wint_t) which is a
> >>32-bit quantity. So we could just go and say "%C prints an ipv4
> >>address" and be done with it. But there's no way of doing that for
> >>ipv6 addresses so things would become asymmetrical there.
> >
> > struct in6_addr src;
> > printk("Source address: %p{ipv6}\n", &src);
> >
> > How about %p{feature}?
No.
I _expressly_ chose '%p[alphanumeric]*' because it's basically
totally insane to have that in a *real* printk() string: the end result
would be totally unreadable.
In contrast, '%p[specialchar]' is not unreadable, and in fact we have lots
of those already in the kernel. In fact, there are 40 occurrences of '%p{'
in the kernel, just grep for it (especially the AFS code seems to be very
happy to use that kind of printout in its debug statements).
So it makes perfect sense to have a _real_ printk string that says
"BUG: Dentry %p{i=%lx,n=%s}"
where we have that '%p{...' sequence: the end result is easily parseable.
In contrast, anybody who uses '%pS' or something like that and expects a
pointer name to be immediately followed by teh letter 'S' is simply
insane, because the end result is an unreadable mess.
> (It's hard on the stack, yes, I know. We should fix kallsyms.)
Not just that, but it's broken when KALLSYMS is disabled. Look at what
sprint_symbol() becomes.
The patch I already sent out is about a million times better, because it
avoids all these issues, and knows about subtle issues like the difference
between a direct pointer and a pointer to a function descriptor.
Linus
next prev parent reply other threads:[~2008-07-05 17:58 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-25 13:11 [PATCH] handle failure of irqchip->set_type in setup_irq Uwe Kleine-König
2008-07-02 9:17 ` Uwe Kleine-König
2008-07-02 9:49 ` Andrew Morton
2008-07-02 10:09 ` Uwe Kleine-König
2008-07-04 10:46 ` [PATCH v2] " Uwe Kleine-König
2008-07-04 17:17 ` Andrew Morton
2008-07-04 18:43 ` Uwe Kleine-König
2008-07-04 19:08 ` Andrew Morton
2008-07-09 13:13 ` Uwe Kleine-König
2008-07-09 21:52 ` Andrew Morton
2008-07-10 8:23 ` Uwe Kleine-König
2008-07-10 8:28 ` Andrew Morton
[not found] ` <20080704111540.ddffd241.akpm@linux-foundation.org>
[not found] ` <alpine.LFD.1.10.0807041147450.2815@woody.linux-foundation.org>
[not found] ` <alpine.LFD.1.10.0807041250220.2815@woody.linux-foundation.org>
[not found] ` <20080704132716.f1e12554.akpm@linux-foundation.org>
[not found] ` <20080704204252.GM14894@parisc-linux.org>
2008-07-04 22:01 ` the printk problem Andrew Morton
2008-07-05 2:03 ` Matthew Wilcox
2008-07-22 10:05 ` [PATCH] Make u64 long long on all architectures (was: the printk problem) Andrew Morton
2008-07-22 10:36 ` Michael Ellerman
2008-07-22 10:53 ` Andrew Morton
2008-07-22 11:36 ` Benjamin Herrenschmidt
2008-07-22 11:35 ` Benjamin Herrenschmidt
2008-07-05 10:20 ` the printk problem Denys Vlasenko
2008-07-05 11:33 ` Jan Engelhardt
2008-07-05 12:52 ` Vegard Nossum
2008-07-05 13:24 ` Jan Engelhardt
2008-07-05 13:50 ` Vegard Nossum
2008-07-05 14:07 ` Jan Engelhardt
2008-07-05 17:56 ` Linus Torvalds [this message]
2008-07-05 18:40 ` Jan Engelhardt
2008-07-05 18:44 ` Linus Torvalds
2008-07-05 18:41 ` Vegard Nossum
2008-07-05 18:52 ` Matthew Wilcox
2008-07-06 0:02 ` Pekka Enberg
2008-07-06 5:17 ` Randy Dunlap
[not found] ` <1215212420.8970.8.camel@pasglop>
[not found] ` <alpine.LFD.1.10.0807041622270.2815@woody.linux-foundation.org>
[not found] ` <alpine.LFD.1.10.0807051523180.2847@woody.linux-foundation.org>
[not found] ` <20080706052741.GA18928@elte.hu>
2008-07-06 5:37 ` Linus Torvalds
2008-07-06 5:53 ` Ingo Molnar
2008-07-06 6:13 ` Ingo Molnar
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=alpine.LFD.1.10.0807051045520.2815@woody.linux-foundation.org \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=davem@davemloft.net \
--cc=hpa@zytor.com \
--cc=jengelh@medozas.de \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@ozlabs.org \
--cc=matthew@wil.cx \
--cc=vegard.nossum@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®