New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 696719 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Apr 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Feature



Sign in to add a comment

A chrome-pfq is needed for clang on R58

Project Member Reported by laszio@google.com, Feb 27 2017

Issue description

We are going to flip the compiler from gcc to clang. Since x86 stays with gcc, it will need a chrome-pfq for AFDO.

 

Comment 1 by laszio@chromium.org, Feb 27 2017

Cc: yunlian@chromium.org dgarr...@chromium.org llozano@chromium.org
Labels: -Pri-2 -Via-Wizard-Other Build-Toolchain Pri-1
Owner: laszio@chromium.org
Status: Started (was: Unconfirmed)
Summary: A chrome-pfq is needed for x86 on branches (was: A chrome-pfq is needed for x86)
Hi Don, do we have capacity for 2 or 3 more chell-pre-flight-branch in the branches? Specifically, they will be copies of:

  site_config.Add(
      'samus-pre-flight-branch',
      site_config.templates.pre_flight_branch,
      master=True,
      push_overlays=constants.BOTH_OVERLAYS,
      boards=['samus'],
      android_rev=constants.ANDROID_REV_LATEST,
      afdo_generate=True,
      afdo_update_ebuild=True,
      vm_tests=[],
      hw_tests=[hw_test_list.AFDORecordTest()],
      useflags=append_useflags(['-transparent_hugepage']),
  )

Capacity yes, but it won't work the way you want.

The branch PFQ builders aren't grouped together. You'd end up uprevving on the branch if either of them passed, not when the both passed. They wouldn't even be testing the exact same builds.

Switching from samus to chell would be easier.

If we really need multiple PFQ builders on branches, that's possible but would need some development. I don't know how much.
Will it work to just add 'chell' to the 'boards' field in samus-pre-flight-branch? I know this is ugly but we only need it for 6 weeks.
No, that class of builder requires exactly 1 board in the config.

Comment 5 by laszio@chromium.org, Mar 23 2017

Status: WontFix (was: Started)
Updates:
1. x86 won't be updated in R58 and later.
2. There are 4 boards currently built by clang in R58. However, there is no afdo pipleline for clang on R58. I'll trigger the trybots to generate .afdo files for them for 12 weeks:

$ cbuildbot --remote -b release-R58-9334.B --chrome_version=58.0.3029.?? --nochromesdk -g 457637 chell-chrome-pfq
Status: Started (was: WontFix)
Summary: A chrome-pfq is needed for clang on R58 (was: A chrome-pfq is needed for x86 on branches)
Although the above trick generates the profiles, it doesn't update the ebuild.

Don, can I run a trybot of samus-pre-flight-branch with a little patch to update the ebuild?
Cc: bhthompson@chromium.org
On the other hand, there seems to be no regression between 9334.0 and 9334.33 (branch point and branch top), in terms of crosbolt.

Another way may be updating the ebuild manually, but that would require lots of approvals...
If we are updating ebuilds like an automated system would do, there may not be that much in the way of approvals. 

I think you may be in a better opinion to say how risky this would be though.
Right now we run "samus-pre-flight-branch" as a single build PFQ on the branch.

What if we setup a full master/slave PFQ on that branch? I'm not sure if it will work, but if it does, it would allow multiple builds to be run with a coordinated ebuild uprev on success.

I believe that is the correct solution, but I'm not sure if our master/slave logic is clean enough for that to 'just work' without a lot of debugging/fixes.
Although a bit hacky, this should be the safest/easiest way to update the ebuild:
https://chromium-review.googlesource.com/c/469171/

The profiles are generated by this beforehand:
$ cbuildbot --remote -b release-R58-9334.B --chrome_version=58.0.3029.?? --nochromesdk -g 457637 chell-chrome-pfq

Project Member

Comment 12 by bugdroid1@chromium.org, Apr 7 2017

Labels: merge-merged-release-R58-9334.B
The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/70302813e2c77fc4f5c56298e34de037a25c6ee7

commit 70302813e2c77fc4f5c56298e34de037a25c6ee7
Author: Ting-Yuan Huang <laszio@chromium.org>
Date: Fri Apr 07 19:51:16 2017

R58: update afdo profile for clang in ebuild.

This is a R58-only workaround to update ebuilds for boards built with
clang.  It only updates ebuild with latest afdo profile for clang;
The clang profile must be generated beforehand.

BUG= chromium:696719 
TEST=none

Change-Id: I27812287b6b06fc8dfa72be52bf73ba1d2ff643f
Reviewed-on: https://chromium-review.googlesource.com/469171
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Ting-Yuan Huang <laszio@chromium.org>
Tested-by: Ting-Yuan Huang <laszio@chromium.org>
Trybot-Ready: Ting-Yuan Huang <laszio@chromium.org>

[modify] https://crrev.com/70302813e2c77fc4f5c56298e34de037a25c6ee7/cbuildbot/stages/afdo_stages.py

Project Member

Comment 13 by bugdroid1@chromium.org, Apr 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/70302813e2c77fc4f5c56298e34de037a25c6ee7

commit 70302813e2c77fc4f5c56298e34de037a25c6ee7
Author: Ting-Yuan Huang <laszio@chromium.org>
Date: Fri Apr 07 19:51:16 2017

R58: update afdo profile for clang in ebuild.

This is a R58-only workaround to update ebuilds for boards built with
clang.  It only updates ebuild with latest afdo profile for clang;
The clang profile must be generated beforehand.

BUG= chromium:696719 
TEST=none

Change-Id: I27812287b6b06fc8dfa72be52bf73ba1d2ff643f
Reviewed-on: https://chromium-review.googlesource.com/469171
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Commit-Queue: Ting-Yuan Huang <laszio@chromium.org>
Tested-by: Ting-Yuan Huang <laszio@chromium.org>
Trybot-Ready: Ting-Yuan Huang <laszio@chromium.org>

[modify] https://crrev.com/70302813e2c77fc4f5c56298e34de037a25c6ee7/cbuildbot/stages/afdo_stages.py

Status: Verified (was: Started)
Thank you for tolerating the hack. It's working as expected :)

https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/d6a876e79384a99e3f22e84bd11ec64e66d5cd37

Sign in to add a comment