Re: [RFC PATCH 0/3] Mark literal strings in __init / __exit code

From: Mathias Krause
Date: Tue Jun 24 2014 - 16:41:39 EST


On 24 June 2014 22:30, Joe Perches <joe@xxxxxxxxxxx> wrote:
> On Tue, 2014-06-24 at 22:10 +0200, Mathias Krause wrote:
>> I would like to handle the easy ones, too. E.g. strings used in
>> parameter parsing, i.e. strcmp()s.
>
> Sure, but that change is separable from printk conversions.

Yes. Those need to be marked manually, based on auditing the code for
reuses of those strings in non-init code.

>
> Any idea how much would be changed treewide and whether
> or not those strings are not already in rodata?

No, sorry. I haven't looked for those specifically yet. There is even
more to look for: calls to panic() in __init code, or the name of
kmem_cache_create() -- it get's copied. So there is more to optimize
if one is patient enough ;)
And all of those strings should be in the .rodata section, now. But
why you're asking?

>
> Looking at it, I see generic strings like "on", "off",
> "device", "high", "low". All these are likely to be
> duplications of strings in rodata.

Yes. My vanilla vmlinux build has quite a lot of copies of "off" in
it. But I doubt any linker would merge those. Does LTO do so?

Mathias
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/