better way to enable/disable PGO for release builds

RESOLVED WONTFIX

Status

RESOLVED WONTFIX
7 years ago
5 years ago

People

(Reporter: jhford, Unassigned)

Tracking

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: [pgo][cleanup])

Attachments

(1 attachment, 1 obsolete attachment)

Created attachment 565436 [details] [diff] [review]
control release PGO the same way we control nightly/4hr/perpush PGO builds

Bug 692646 tracks putting MOZ_PGO=1 back into mozconfigs for release builds.

After getting the 8.0b2bld2 respin started, I looked over buildbotcustom.process.release.py and realized that there is a better way to control PGO for release builds.  We can safely have MOZ_PGO=1 in the mozconfig while running this patch so we can make a safe transition to having a single way (MercurialBuildFactory's profiledBuild kwarg) for turning PGO on or off.

I have attached a version of my (as yet untested) idea.  This patch has some debugging print statements, and the relevant output for mozilla-beta is:

platform: linux has pgo on
['make', '-f', 'client.mk', 'build', <WithProperties@0x1036b71b8>, 'MOZ_PGO=1']
platform: linux64 has pgo on
['make', '-f', 'client.mk', 'build', <WithProperties@0x1036bcdd0>, 'MOZ_PGO=1']
platform: win32 has pgo on
['make', '-f', 'client.mk', 'build', <WithProperties@0x1036c2f80>, 'MOZ_PGO=1']
platform: macosx64 has pgo off
['make', '-f', 'client.mk', 'build', <WithProperties@0x1036c5ef0>]

This patch also allows the release config to override both of pgo_platforms and enable_pgo, if that's needed for whatever reason.
Assignee: nobody → jhford
Comment on attachment 565436 [details] [diff] [review]
control release PGO the same way we control nightly/4hr/perpush PGO builds

Review of attachment 565436 [details] [diff] [review]:
-----------------------------------------------------------------

::: process/release.py
@@ +790,4 @@
>                  'mozharness_config', {}).get('multilocaleOptions')
>              enableUpdatePackaging = bool(releaseConfig.get('verifyConfigs',
>                                                        {}).get(platform))
> +            if releaseConfig.get('enable_pgo', branchConfig['enable_pgo']) and \

This shouldn't be in the release config ever IMO. Releases should inherit their branch's build configuration where possible.
Attachment #565436 - Flags: review-
Created attachment 565546 [details] [diff] [review]
buildbotcustom v2

Same as before, but only look at the regular build config.
Attachment #565436 - Attachment is obsolete: true
Putting this bug back in the pool.  This bug can either be WONTFIXed or a version of the patch from comment 2 with the print removed could be landed conceivably.  I'd prefer to WONTFIX this and leave the mozconfig as the canonical source of configuration for release builds.
Assignee: jhford → nobody
Whiteboard: [triagefollowup]
Status: NEW → RESOLVED
Last Resolved: 6 years ago
Component: Release Engineering → Release Engineering: Automation (Release Automation)
QA Contact: release → bhearsum
Resolution: --- → WONTFIX
Whiteboard: [triagefollowup] → [pgo][cleanup]
(Assignee)

Updated

5 years ago
Product: mozilla.org → Release Engineering
You need to log in before you can comment on or make changes to this bug.