Messages in this thread | | | From | Johannes Weiner <> | Subject | Re: [RFC] Sectionized printk data | Date | Mon, 04 Feb 2008 21:23:29 +0100 |
| |
Hi Sam,
Sam Ravnborg <sam@ravnborg.org> writes:
> On Mon, Feb 04, 2008 at 04:48:34PM +0100, Johannes Weiner wrote: >> Hi, >> >> current approaches to have printk format strings in the corresponding >> data section to the function they appear in look like the following (at >> least what I have seen so far): >> >> int __init some_function(void) >> { >> static char errmsg[] __initdata = "failure %s in %s\n"; >> >> [...] >> printk(errmsg); >> [...] >> } >> >> The attached patch allows something along the lines: >> >> int __init some_function(void) >> { >> [...] >> pr_init(KERN_WARNING "failure %s in %s\n", ...); >> [...] >> } >> >> Another idea I had was to make printk a macro that figures out the >> section of the surrounding function and then moves the data >> automatically when it is a literal, but I couldn't find mechanisms that >> allow this. Anyone of you got an idea? >> >> What do you think in general? > > What is the rationale behind this? > In other words why should we investigate time looking into the matter? > > If you say "saving memory" then please let us know with specific examples > in what area these savings will really pay off.
I was not claiming anything. The thing is that I have seen people using code as schematized in the first code example. And the point of this patch is to make the placing of string literals in disposable sections - which is already done - more convenient.
Using code as in the first example is just ugly. My approach is to make it less ugly. But after all, it was not my idea to move the string literals.
drivers/net/3c505.c does it, grep for notfound_msg for an in-tree example.
You were asking me my own question. I placed an `RFC' in the Subject: because I am interested in your (and others) view on this topic.
I will convert some of the code to use the macros I introduced and look if it gains some significant size improvements on a common desktop configuration as I have it on my laptop.
Hannes
| |