This commit adds the memory address of the allocation and the thread id
of the allocation to the payload. These both are required for properly
processing the balanced allocations on the front-end. All of the native
allocation payloads are now stored on the main thread, and so are
disassociated from the thread where they were generated.
Differential Revision: https://phabricator.services.mozilla.com/D51938
--HG--
extra : moz-landing-system : lando
This change makes it so that all allocations (from any thread in a
process) are stored on the main thread in the profile. This way it's
easy to balance allocations with frees. Memory happens more in a
per-process model, than a per-thread model. The front-end can then
process the information and display it in more interesting ways.
Before allocations and deallocations were only stored on the
thread where they were being generated. It was easy to miss
deallocations with the old model.
Differential Revision: https://phabricator.services.mozilla.com/D51937
--HG--
extra : moz-landing-system : lando
This file adds coverage for the balanced native allocations feature from the
previous commit. It asserts that a de-allocation will have a matching allocation.
Differential Revision: https://phabricator.services.mozilla.com/D51936
--HG--
extra : moz-landing-system : lando
This patch creates a HashSet that tracks the allocations that are tracked by the profiler.
This way, we only collect markers for deallocations that have a matching allocation. A
following commit makes it so that all of the markers are collected on the main thread, but
for now this is still done on a per-thread basis.
Differential Revision: https://phabricator.services.mozilla.com/D51935
--HG--
extra : moz-landing-system : lando
The bloat log was not compatible with the native allocations, and is always on
for debug builds of mochitests. We had no native allocation coverage on debug
builds because of it.
This commit rewrites the test as an xpcshell test which is both faster and simpler.
I don't think we need the added complexity of running the test in the full browser
environment. An xpcshell test fully excercises the code in a simpler fashion.
Differential Revision: https://phabricator.services.mozilla.com/D51934
--HG--
extra : moz-landing-system : lando
The tests for xpcshell and mochitests were pretty similar, and need to
do similar things. This commit creates a shread-head.js file where those
functions can be shared. This patch also renames a few shared functions
to give them more clarity in their current usage.
Differential Revision: https://phabricator.services.mozilla.com/D51933
--HG--
rename : tools/profiler/tests/xpcshell/head_profiler.js => tools/profiler/tests/xpcshell/head.js
extra : moz-landing-system : lando
We want the profiler UI to be able to know if the data can be used for
reconstructing the event delays, since it measures something different
from the old 16ms event injection.
Differential Revision: https://phabricator.services.mozilla.com/D52534
--HG--
extra : moz-landing-system : lando
This gives developers the ability to request analysis from the Pernosco
service. When this flag is set, Pernosco will examine the push for relevant
failures, analyze them and then send a link to the generated report.
Previously developers needed to request access to a whitelist whereupon all
their try pushes were analyzed. Developers currently on this whitelist who
would like to opt-out can run |mach try --no-persnosco| to do so.
Differential Revision: https://phabricator.services.mozilla.com/D52419
--HG--
extra : moz-landing-system : lando
This commit adds the memory address of the allocation and the thread id
of the allocation to the payload. These both are required for properly
processing the balanced allocations on the front-end. All of the native
allocation payloads are now stored on the main thread, and so are
disassociated from the thread where they were generated.
Differential Revision: https://phabricator.services.mozilla.com/D51938
--HG--
extra : moz-landing-system : lando
This change makes it so that all allocations (from any thread in a
process) are stored on the main thread in the profile. This way it's
easy to balance allocations with frees. Memory happens more in a
per-process model, than a per-thread model. The front-end can then
process the information and display it in more interesting ways.
Before allocations and deallocations were only stored on the
thread where they were being generated. It was easy to miss
deallocations with the old model.
Differential Revision: https://phabricator.services.mozilla.com/D51937
--HG--
extra : moz-landing-system : lando
This file adds coverage for the balanced native allocations feature from the
previous commit. It asserts that a de-allocation will have a matching allocation.
Differential Revision: https://phabricator.services.mozilla.com/D51936
--HG--
extra : moz-landing-system : lando
This patch creates a HashSet that tracks the allocations that are tracked by the profiler.
This way, we only collect markers for deallocations that have a matching allocation. A
following commit makes it so that all of the markers are collected on the main thread, but
for now this is still done on a per-thread basis.
Differential Revision: https://phabricator.services.mozilla.com/D51935
--HG--
extra : moz-landing-system : lando
The bloat log was not compatible with the native allocations, and is always on
for debug builds of mochitests. We had no native allocation coverage on debug
builds because of it.
This commit rewrites the test as an xpcshell test which is both faster and simpler.
I don't think we need the added complexity of running the test in the full browser
environment. An xpcshell test fully excercises the code in a simpler fashion.
Differential Revision: https://phabricator.services.mozilla.com/D51934
--HG--
extra : moz-landing-system : lando
The tests for xpcshell and mochitests were pretty similar, and need to
do similar things. This commit creates a shread-head.js file where those
functions can be shared. This patch also renames a few shared functions
to give them more clarity in their current usage.
Differential Revision: https://phabricator.services.mozilla.com/D51933
--HG--
rename : tools/profiler/tests/xpcshell/head_profiler.js => tools/profiler/tests/xpcshell/head.js
extra : moz-landing-system : lando
This task cannot succeed on try, because it doesn't have the permissions
to upload the generated docs. Let's just disallow people from selecting it.
Differential Revision: https://phabricator.services.mozilla.com/D51919
--HG--
extra : moz-landing-system : lando
Avoids deadlocks on Windows due to Now() taking a lock; if done while we've
paused a thread that holds the lock we will deadlock.
Differential Revision: https://phabricator.services.mozilla.com/D52392
--HG--
extra : moz-landing-system : lando
This also moves the 'mach' docs from /python/mach to /mach. The reason being
that 'mach' doesn't really have anything to do with Python other than its
implemented in it.
Differential Revision: https://phabricator.services.mozilla.com/D52253
--HG--
extra : moz-landing-system : lando