New issue
Advanced search Search tips

Issue 912781 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Feature
Build-Toolchain

Blocking:
issue 912780



Sign in to add a comment

hot symbols not placed at the beginning of text section by default using lld

Project Member Reported by tcwang@chromium.org, Dec 7

Issue description

The problem with lld by default is that hot symbols marked by AFDO profiles is either mixed inside .text section, or put in a separate section (.text.hot) at the END of the .text, when using flag -z keep-text-section-prefix. Either way is not good for using huge pages for Chrome. Need to investigate to find out a way to place hot symbol first.
 
The solution could be either using linkerscript to order text sections (but need to make sure using minimal linkerscript as possible so that other sections are untouched), or changing lld source code to order .text.hot sections before .text.
Blocking: 912780
Project Member

Comment 3 by bugdroid1@chromium.org, Dec 18

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/b24528659b9430458640d23bb8383762fbd2395a

commit b24528659b9430458640d23bb8383762fbd2395a
Author: Tiancong Wang <tcwang@google.com>
Date: Tue Dec 18 16:27:10 2018

lld: Add a local lld patch to reorder .text.hot before .text for lld.

lld by default won't separate symbols marked as hot from text section.
By default, using -z keep-text-section-prefix will group symbols with prefix and order them
as .text, .text.hot, .text.startup, .text.exit, .text.unlikely.

The lld patch re-orders the .text.hot section before .text, matching the ordering in gold:
text.hot, .text, .text.startup, .text.exit, .text.unlikely.

The lld patch also includes a test.

Change the lld emerge file to uprev and build a new lld with the patch

TEST=lld unit test and tested on Caroline-board.
BUG=chromium:912781, chromium:912780

Change-Id: I4ac5af51c46893ee4cfe2ef8e388d104e6bad5b2
Reviewed-on: https://chromium-review.googlesource.com/1378594
Commit-Ready: Luis Lozano <llozano@chromium.org>
Tested-by: Luis Lozano <llozano@chromium.org>
Reviewed-by: Luis Lozano <llozano@chromium.org>

[add] https://crrev.com/b24528659b9430458640d23bb8383762fbd2395a/sys-devel/lld/files/lld-8.0-reorder-hotsection.patch
[modify] https://crrev.com/b24528659b9430458640d23bb8383762fbd2395a/sys-devel/lld/lld-8.0_pre339409.ebuild
[modify] https://crrev.com/b24528659b9430458640d23bb8383762fbd2395a/chromeos-base/chromeos-chrome/chromeos-chrome-9999.ebuild
[rename] https://crrev.com/b24528659b9430458640d23bb8383762fbd2395a/sys-devel/lld/lld-8.0_pre339409-r3.ebuild

Sign in to add a comment