Bug 1380964 - Get and upload useful sccache logs. r=gps
authorMike Hommey <mh+mozilla@glandium.org>
Fri, 14 Jul 2017 09:46:38 +0900
changeset 420137 680aef712819344c32f536d980d60146cf3c4cf9
parent 420136 de8c698222c88ca39fcdc5c4878c18b156fd3c11
child 420138 23327a999975e93db1eb849e490e3cbc187f1052
push id1517
push userjlorenzo@mozilla.com
push dateThu, 14 Sep 2017 16:50:54 +0000
treeherdermozilla-release@3b41fd564418 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersgps
bugs1380964, 1005495
milestone56.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1380964 - Get and upload useful sccache logs. r=gps When investigating why a particular build got a particularly high number of cache misses, it is useful to know exactly *what* had cache misses, and you can't get the missing information after the fact. We used to have some stats stored in a log file uploaded as artifact with the old python sccache per bug 1005495 (and before that inline in the build log), and we actually still have remains of that in the form of a EXTRA_UPLOAD_FILES in build/mozconfig.cache. Let's reuse that, and get some useful logs from sccache. Ideally sccache would give better logs, but those are sufficient for now. We'll figure things out eventually. https://github.com/mozilla/sccache/issues/151
Makefile.in
build/sccache.mk
--- a/Makefile.in
+++ b/Makefile.in
@@ -243,16 +243,19 @@ default all::
 include $(topsrcdir)/config/rules.mk
 
 ifdef SCCACHE_VERBOSE_STATS
 default::
 	-$(CCACHE) --show-stats --stats-format=json > sccache-stats.json
 	@echo "===SCCACHE STATS==="
 	-$(CCACHE) --show-stats
 	@echo "==================="
+# Ideally we'd do that in the same file as we set the sccache.log location for
+# sccache, but it's too late in the build.
+	-gzip -9 $(DIST)/sccache.log
 endif
 
 distclean::
 	$(RM) $(DIST_GARBAGE)
 
 ifdef MOZ_CRASHREPORTER
 include $(topsrcdir)/toolkit/mozapps/installer/package-name.mk
 
--- a/build/sccache.mk
+++ b/build/sccache.mk
@@ -10,13 +10,13 @@ BASE_DIR = $(MOZ_OBJDIR)/$(firstword $(M
 endif
 
 preflight_all:
 	# Terminate any sccache server that might still be around
 	-$(TOPSRCDIR)/sccache2/sccache --stop-server > /dev/null 2>&1
 	# Start a new server, ensuring it gets the jobserver file descriptors
 	# from make (but don't use the + prefix when make -n is used, so that
 	# the command doesn't run in that case)
-	$(if $(findstring n,$(filter-out --%, $(MAKEFLAGS))),,+)$(TOPSRCDIR)/sccache2/sccache --start-server
+	$(if $(findstring n,$(filter-out --%, $(MAKEFLAGS))),,+)env RUST_LOG=sccache::compiler=debug SCCACHE_ERROR_LOG=$(OBJDIR)/dist/sccache.log $(TOPSRCDIR)/sccache2/sccache --start-server
 
 postflight_all:
 	# Terminate sccache server. This prints sccache stats.
 	-$(TOPSRCDIR)/sccache2/sccache --stop-server