This additionally adds the edge cases that were found in bug 1397322
and bug 1397765.
MozReview-Commit-ID: 7CFEgePpOK1
--HG--
extra : rebase_source : 386741b3de775c1eb61f406364180e222e9f3011
Not all of these probes are expiring in 58, but they are all (with the exception
of CONTENT_RESPONSE_DURATION) metrics that might be affected by WebRender, and
so are useful to continue measuring until WebRender is "done". The CONTENT_RESPONSE_DURATION
probe is indicating durations have dropped over the past few releases and it would be
useful to continue to measure this for a few more releases.
MozReview-Commit-ID: CTsOGuMS5f3
Since we don't atomically retrieve session and subsession snapshots, there's
a possibility that off-thread accumulations can happen in between the two
getPayload calls in test_checkSubsessionHistograms.
CYCLE_COLLECTOR_WORKER* are the obvious first choice.
MozReview-Commit-ID: 5lseRAJ1Rg6
--HG--
extra : rebase_source : 219ed38e526483627792ed4c177f49c1537c3f07
Since LinearHistogram and its descendants inherit ranges_ from
Histogram, and we wanted to replace the copying into a std::vec
for Histogram, the simplest approach seemed to just be to
precompute ranges for all histograms, exponential or otherwise.
This should have the added benefit of reducing the memory
footprint for those histograms, since they will benefit from the
deduplication work that the precomputing script already does.
MozReview-Commit-ID: JTV5Dej5ZIb
--HG--
extra : rebase_source : de942d54b3475be54c70d43d2fa8e772ee2e18c4
This is a fairly small optimization - since the indices for this
array never exceed the size of an int16_t, let's just use that
instead to save a little bit of space.
MozReview-Commit-ID: 8bRokjlvZ9p
--HG--
extra : rebase_source : b74bd0d6c36ecbb83db8ce6659f1484bfa3b885e
Since we already have the indices array, we can just point duplicate
ranges at the first occurrence's index.
MozReview-Commit-ID: 3f5os1xSp89
--HG--
extra : rebase_source : 68a859716aeafd3330b4b0b728f77c537a5020aa
Switch from static multi-dimensional arrays to dynamic one-dimensional arrays
that are only allocated in the parent process.
MozReview-Commit-ID: tyGEFhU2Fq
--HG--
extra : rebase_source : 0922e31c3234b59270ef9af7823439956377a984
Switch from static multi-dimensional arrays to dynamic one-dimensional arrays
that are only allocated in the parent process.
MozReview-Commit-ID: tyGEFhU2Fq
--HG--
extra : rebase_source : 9dd049af971a8333e50d70f99b28df9986185d74
Here, we calculate the recovery time from two different start points because that when GPU crashes, VideoDecoderChild::ActorDestory() is called, but VideoDecoderChild doesn't dispatch events to trigger decoder recreation immediately.
Instead, it waits until a new VideoDecoderManager has been recreated [1], and then rejects all pending promises to MFR with a NS_ERROR_DOM_MEDIA_NEED_NEW_DECODER, which triggers playback pipeline recreation.
These two probes help us to know the gap between "GPU crash" and "MFR is notified". We don't need to wait for VideoDecoderManager recreation if we're certain that we don't create remote video decoder anymore. And if the gap is large, it might be a significant optimization.
[1] http://searchfox.org/mozilla-central/rev/51b3d67a5ec1758bd2fe7d7b6e75ad6b6b5da223/dom/media/ipc/VideoDecoderChild.cpp#124-145
MozReview-Commit-ID: DcI2CwWORxZ
--HG--
extra : rebase_source : 2f69330b9721cd4d6895f93b3a3cbc740de54e8c