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


Ping. Cary, is this alright to commit?

* options.h (-z,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.
* testsuite/text_unlikely_segment.cc: New test source.
* testsuite/text_unlikely_segment.sh: New test script.
* testsuite/Makefile.am (text_unlikely_segment): New test.

On Tue, Oct 10, 2017 at 2:52 PM, Sriraman Tallam <tmsriram@google.com> wrote:
> Ping. Cary, is this alright to commit?
>
> * options.h (-z,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.
> * testsuite/text_unlikely_segment.cc: New test source.
> * testsuite/text_unlikely_segment.sh: New test script.
> * testsuite/Makefile.am (text_unlikely_segment): New test.
>
>
>
>
> On Thu, Oct 5, 2017 at 4:41 PM, Sriraman Tallam <tmsriram@google.com> wrote:
>> 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.

Attachment: segment_split.txt
Description: Text document


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