lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sat, 6 Apr 2013 21:45:43 -0400
From:	John David Anglin <dave.anglin@...l.net>
To:	James Bottomley <James.bottomley@...senPartnership.com>
CC:	Rusty Russell <rusty@...tcorp.com.au>,
	Sebastian Wankerl <sisewank@....cs.fau.de>,
	linux-kernel@...r.kernel.org,
	Philip Kranz <philip.kranz@...glemail.com>,
	i4passt@...ts.informatik.uni-erlangen.de,
	linux-parisc@...r.kernel.org, corbet@....net
Subject: Re: [PATCH] Add non-zero module sections to sysfs

On 6-Apr-13, at 9:22 PM, James Bottomley wrote:

>
>
> John David Anglin <dave.anglin@...l.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.


No, it works on pa1.1 but the calls are more efficient on pa2.  On  
linux with a flat space, they should be
about the same in terms of instruction count.  On HP-UX, an additional  
space register load is needed.
For calls within the same space, the be instruction is pretty  
efficient but we never implemented linker
support for it in binutils.  If I recall correctly, it works if the  
call is local to a module but not for global calls.
It does work in HP-UX.

Dave
--
John David Anglin	dave.anglin@...l.net



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

Powered by blists - more mailing lists