This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Gold linker patch to split unlikely text into a separate segment


On Thu, Oct 5, 2017 at 4:41 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On 10/5/17, Sriraman Tallam <tmsriram@google.com> wrote:
>> On Wed, Oct 4, 2017 at 5:12 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On 10/4/17, Sriraman Tallam <tmsriram@google.com> wrote:
>>>> Hi,
>>>>
>>>>      This patch adds an option to gold to create a new ELF segment for
>>>> code determined unlikely by the compiler.  Currently, this can be done
>>>> with a linker plugin but I was wondering if it is fine to have this
>>>> support in gold with an option for ease of use.
>>>>
>>>>      The advantages of doing this are:
>>>>
>>>> * We could only map the hot segment to huge pages to keep iTLB misses
>>>> low
>>>> * We could munlock the unlikely segment
>>>>
>>>> Is this alright?
>>>>
>>>> ChangeLog entry:
>>>>
>>>> * options.h (text_unlikely_segment): New option.
>>>> * layout.cc (Layout::layout): Create new output section
>>>> for .text.unlikely sections with the new option.
>>>> (Layout::segment_precedes): Check for the new option
>>>> when segment flags match.
>>>>
>>>> Patch attached.
>>>>
>>>
>>> This is an interesting approach.  Do you have some performace
>>> numbers?
>>
>> With function re-ordering of hot code, segment splitting and mapping
>> only hot code to huge pages, we see a reduction in iTLB misses
>> translating to performance improvements of 0.5 to 1% on some of our
>> benchmarks.
>
> Please include this info in your commit log.
>
>>>
>>> 2 Comments:
>>>
>>> 1.  I'd prefer "-z text-unlikely-segment" with '-', instead of '_'.
>>> 2.  Need a testcase.
>>
>> Done and patch attached.
>>
>
> LGTM.  But I can't approve it.

Np, thanks!

Sri

>
> Thanks.
>
> --
> H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]