Re: [PATCH] Add non-zero module sections to sysfs

James Bottomley
2013-04-07T01:22:21Z

John David Anglin <dave.anglin@bell.net> wrote:

>On 6-Apr-13, at 6:52 AM, James Bottomley wrote:
>
>> On Sat, 2013-04-06 at 15:22 +1030, Rusty Russell wrote:
>>>> The problem is our assumption that section names be unique. This
>>>> assumption is wrong. The ELF spec says (version 1.1 page 1-15):
>"An
>>>> object file may have more than one section with the same name."
>>>> We need
>>>> to fix the kernel not to rely on a bogus assumption ... but we had
>
>>>> no
>>>> idea how to do that in a way that preserved the backwards
>>>> compatibility
>>>> of sections subdirectory.
>>>>
>>>> I admit that 35dead4235e2b67da7275b4122fed37099c2f462 is a hack,
>>>> but now
>>>> the problem has got attention, can we fix it properly?
>>>
>>> Yep. The original patch didn't go through me, or we would have had
>
>>> this
>>> discussion back then...
>>>
>>> The use of section names in sysfs goes back to one Mr. Corbet. Why
>
>>> did
>>> he do it that way? Because gdb's add-symbol-file makes the same
>>> assumption. So if we fixed the sysfs somehow, it still wouldn't be
>>> useful, since there's no way to tell gdb :(
>>>
>>> The real answer don't use -ffunction-sections on modules: probably
>>> not
>>> as important as the rest of the kernel. And the new shiny is
>>> -flto anyway.
>>>
>>> And that leaves us with a PA-RISC specific issue, for which we
>should
>>> move the fix to PA-RISC.
>>>
>>> Thoughts?
>>
>> Well, we don't have much of a choice. Our ELF stub jump on 32 bits
>> is a
>> PCREL17. That means once a module size is over 128k there's a
>> chance we
>> might not be able to link it because the jump is too big for the
>> instruction. IPV6 is one such big module today, but I'm sure there
>> are
>> others. The only way I know to fix this is to allow the linker to
>> insert stubs between functions, so we only fail at linking if a
>single
>> function is >128k big. The way to do this is -ffunction-sections,
>> unless there's something else we could do (all we really need is a
>way
>> to ensure we can insert ELF stubs every 128k).
>
>There is now a config work around for this. See:
>http://www.spinics.net/lists/linux-parisc/msg04521.html

The longcalls config option only works on pa2 doesn't it? Although we could just deprecate pa1.

James
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity and top posting.