From 2502829abc1a02a08cc1934538c3d30e6f4f6fae Mon Sep 17 00:00:00 2001 From: Thomas Deutschmann Date: Mon, 6 Apr 2020 20:27:06 +0200 Subject: [PATCH 19/30] bmo#1516081: Disable watchdog during PGO builds Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1516081 Signed-off-by: Thomas Deutschmann --- build/moz.configure/lto-pgo.configure | 4 ++-- toolkit/components/terminator/nsTerminator.cpp | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/build/moz.configure/lto-pgo.configure b/build/moz.configure/lto-pgo.configure index e5a4e6f913..567ccf0ba4 100644 --- a/build/moz.configure/lto-pgo.configure +++ b/build/moz.configure/lto-pgo.configure @@ -84,7 +84,7 @@ set_config("PGO_PROFILE_PATH", pgo_profile_path) def pgo_flags(compiler, profdata, target_is_windows): if compiler.type == "gcc": return namespace( - gen_cflags=["-fprofile-generate"], + gen_cflags=["-fprofile-generate", "-DMOZ_PROFILE_INSTRUMENTATION"], gen_ldflags=["-fprofile-generate"], use_cflags=["-fprofile-use", "-fprofile-correction", "-Wcoverage-mismatch"], use_ldflags=["-fprofile-use"], @@ -98,7 +98,7 @@ def pgo_flags(compiler, profdata, target_is_windows): else: gen_ldflags = ["-fprofile-generate"] - gen_cflags = [prefix + "-fprofile-generate"] + gen_cflags = [prefix + "-fprofile-generate", "-DMOZ_PROFILE_INSTRUMENTATION"] if target_is_windows: # native llvm-profdata.exe on Windows can't read profile data # if name compression is enabled (which cross-compiling enables diff --git a/toolkit/components/terminator/nsTerminator.cpp b/toolkit/components/terminator/nsTerminator.cpp index 194bb36e2d..c960d44137 100644 --- a/toolkit/components/terminator/nsTerminator.cpp +++ b/toolkit/components/terminator/nsTerminator.cpp @@ -466,6 +466,13 @@ void nsTerminator::StartWatchdog() { } #endif + // Disable watchdog for PGO train builds - writting profile information at + // exit may take time and it is better to make build hang rather than + // silently produce poorly performing binary. +#ifdef MOZ_PROFILE_INSTRUMENTATION + crashAfterMS = INT32_MAX; +#endif + UniquePtr options(new Options()); const PRIntervalTime ticksDuration = PR_MillisecondsToInterval(HEARTBEAT_INTERVAL_MS); -- 2.34.1