On 4/22/13 12:54 PM, Kartikaya Gupta wrote:
> I looked at all the build.json files [4] from the 6th of April to the
> 17th of April and pulled out all the jobs that corresponding to the
> "push" changesets in my range above. For this set of 553 changesets,
> there were 500 (exactly!) distinct "builders". 111 of these had "-pgo"
> or "_pgo" in the name, and I excluded them. I created a 553x389 matrix
> with the remaining builders and filled in how much time was spent on
> each changeset for each builder (in case of multiple jobs, I added the
> times).
> 
> Then I assumed that any empty field in the 553x389 matrix was a result
> of coalescing. This is a grossly simplifying assumption that I would
> like to revisit - I know for Android changes we can detect that in some
> cases and only run the relevant tests; my assumption means the rest of
> the platforms are considered "coalesced" for these changes. I filled in
> these fields in the matrix with the average time spent on all the other
> builds for that builder in the matrix.
> 
> * A total of 228717299 seconds were spent on the 128777 entries in the
> matrix
> * After de-coalescing, a total of 373751505 seconds would have been
> spent on the 215117 entries in the matrix (an increase of 63%)
> * With coalescing, but removing all the backout pushes and pushes that
> were completely backed out, a total of 173027517 seconds were spent on
> 97623 entries (down 24% from actual usage)
> * With de-coalescing AND stripping backouts, a total of 292634211
> seconds would have been spent on the 168437 entries (an increase of 27%
> over actual usage)

Too many iffy things to say that those percentages are anything other
than numbers between 1 and 100, I'm afraid.

Not only do Android-only pushes only build Android, b2g-only pushes only
build b2g, and browser/-only pushes only build desktop, and jobs with
spidermonkey in the name are only built for pushes that touch js/src/.
You can tell the difference between coalescing and intentionally only
building one product by looking at self-serve, where a push that only
intended to build Android will only list the Android builds, while a
push that intended to build everything but had everything but Android
coalesced away will still show all the other builds, even though they
actually ran on a different push, so I presume there's a way to query
buildapi to find out whether a missing build was coalesced or just not
triggered at all.

Your range, April 6 - April 17, includes two full weekends (when
coalescing barely exists) but only a week and a half of weekdays, when
coalescing actually happens. It also includes the travel weekend before,
and a half week of a b2g workweek when b2g patches were first not
landing at all, and then landing on birch instead of inbound, dropping
coalescing, but because birch granted itself the second-highest possible
priority, coalescing could also have be more extreme on inbound while
birch was starving it of slaves.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to