Граф коммитов

361 Коммитов

Автор SHA1 Сообщение Дата
Greg Tatum bb7857b872 Bug 1559486 - Remove scriptFilename from RecordAllocationInfo; r=jimb
Differential Revision: https://phabricator.services.mozilla.com/D36651

--HG--
extra : moz-landing-system : lando
2019-07-04 05:19:58 +00:00
Greg Tatum bbec67e8f2 Bug 1545582 - Integrate JavaScript memory allocation tracking to the profiler; r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D34543

--HG--
extra : moz-landing-system : lando
2019-07-01 21:53:11 +00:00
Gerald Squelart b13eeec2e9 Bug 1552063 - Use PowerOfTwo and PowerOfTwoMask in profilers - r=gregtatum
PowerOfTwo makes for a cleaner and more expressive interface, showing that the
profiler will use a power-of-2 storage size.

Using PowerOfTwoMask in ProfilerBuffer also makes it more obvious that we want
cheap modulo operations.
And we don't need to keep the original capacity, as it's only used once and can
easily be recomputed from the mask.

Differential Revision: https://phabricator.services.mozilla.com/D36027

--HG--
extra : moz-landing-system : lando
2019-06-28 07:12:57 +00:00
Andreea Pavel 4d16b0896b Backed out 2 changesets (bug 1552063) for mingw build bustages on a CLOSED TREE
Backed out changeset 2975f3f76576 (bug 1552063)
Backed out changeset 6284bcd7304e (bug 1552063)
2019-06-28 02:09:41 +03:00
Gerald Squelart 475dbeee0a Bug 1552063 - Use PowerOfTwo and PowerOfTwoMask in profilers - r=gregtatum
PowerOfTwo makes for a cleaner and more expressive interface, showing that the
profiler will use a power-of-2 storage size.

Using PowerOfTwoMask in ProfilerBuffer also makes it more obvious that we want
cheap modulo operations.
And we don't need to keep the original capacity, as it's only used once and can
easily be recomputed from the mask.

Differential Revision: https://phabricator.services.mozilla.com/D36027

--HG--
extra : moz-landing-system : lando
2019-06-27 14:23:17 +00:00
Ciure Andrei 217ab9d060 Backed out 4 changesets (bug 1545582) for causing spidermonkey bustages CLOSED TREE
Backed out changeset c53f9e22d5f7 (bug 1545582)
Backed out changeset 6640b7f3d7e0 (bug 1545582)
Backed out changeset c65de5ec10da (bug 1545582)
Backed out changeset 3224107774b1 (bug 1545582)
2019-06-20 19:39:54 +03:00
Greg Tatum 8bc06cf8cd Bug 1545582 - Integrate JavaScript memory allocation tracking to the profiler; r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D34543

--HG--
extra : moz-landing-system : lando
2019-06-19 21:30:48 +00:00
Mihai Alexandru Michis cff1990963 Backed out 4 changesets (bug 1545582) for causing build bustages in SavedStacks.cpp CLOSED TREE
Backed out changeset a47c4a44bae0 (bug 1545582)
Backed out changeset c05a5d68d9a8 (bug 1545582)
Backed out changeset 699de45940b1 (bug 1545582)
Backed out changeset 285673afaa99 (bug 1545582)
2019-06-15 02:19:08 +03:00
Greg Tatum bf2db1bc5e Bug 1545582 - Integrate JavaScript memory allocation tracking to the profiler; r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D34543

--HG--
extra : moz-landing-system : lando
2019-06-13 20:57:11 +00:00
Denis Palmeiro c32ed0ea49 Bug 1551355 - Use TimeStamp::NowUnfuzzed() instead of TimeStamp::Now() during gecko profiling r=mstange
The profiler will require non-fuzzed timers for accuracy.  Making the switch early will avoid surprises when FuzzyFox is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D31010

--HG--
extra : moz-landing-system : lando
2019-06-10 17:35:42 +00:00
Nika Layzell 95e8f0306b Bug 1540731 - Part 2: Move toplevel actors to override ActorDestroy, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D28573

--HG--
extra : moz-landing-system : lando
2019-05-21 17:04:21 +00:00
Gerald Squelart c369aec152 Bug 1551625 - Lower profiler max startup entries - r=florian
Now starting with a maximum of `1u << 22`, i.e. 4,194,304 entries, or 36MB per
process. (Using powers of two, because that's what we round up to anyway.)

Also giving more information in MOZ_PROFILER_HELP:
- Reminding this is a number of entries *per process*.
- Bytes per entry, and resulting total buffer sizes per process.

Differential Revision: https://phabricator.services.mozilla.com/D31389

--HG--
extra : moz-landing-system : lando
2019-05-16 07:40:54 +00:00
Gerald Squelart 56631f2ced Bug 1549232 - Only use profiler_current_{process,thread}_id in the Gecko Profiler instead of alternatives - r=mstange
There were many inconsistent ways to retrieve process/thread ids in the
profiler. Now we have only one platform-dependent implementation each:
profiler_current_process_id() and profiler_current_thread_id().

Note that this removes the need for the small `class Thread` in platform.h.
However memory_hooks.cpp still needs to be built non-unified, because of the
required order of #includes (replace_malloc.h before replace_malloc_bridge.h),
which could be disturbed by other cpp's.

Differential Revision: https://phabricator.services.mozilla.com/D29977

--HG--
extra : moz-landing-system : lando
2019-05-09 18:26:15 +00:00
Nazım Can Altınova 9411dd7ebb Bug 1543632 - Part 2: Add ClearAllPages function to idl and implement it for pre-test cleanup r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D27678

--HG--
extra : moz-landing-system : lando
2019-04-30 09:58:14 +00:00
Gerald Squelart 3278932a1f Bug 1540114 - Use bigger buffer when MOZ_PROFILER_STARTUP is set - r=mstange
Startup-profiling usually needs to capture more data, especially on slower
systems, so the default is changed to 10 million entries when
MOZ_PROFILER_STARTUP is set.

Also:
- Changed #define into `static constexpr` with the same type as expected by
`profiler_start()`.
- Better validity check of MOZ_PROFILER_STARTUP_ENTRIES.
- Defaults are shown in MOZ_PROFILER_HELP.

Differential Revision: https://phabricator.services.mozilla.com/D25689

--HG--
extra : moz-landing-system : lando
2019-04-30 01:41:39 +00:00
Gerald Squelart 6f6c076612 Bug 1540114 - Display features in MOZ_PROFILER_HELP - r=mstange
Show the list of MOZ_PROFILER_STARTUP_FEATURES with their value, name,
description, and whether they are default and/or available on this platform.

Feature descriptions are now provided in PROFILER_FOR_EACH_FEATURE.
Available features and defaults are now defined in one place, for easier
maintenance.

Differential Revision: https://phabricator.services.mozilla.com/D25530

--HG--
extra : moz-landing-system : lando
2019-04-30 01:40:34 +00:00
Gerald Squelart 6b4596ee89 Bug 1545351 - Add some missing namespaces in macros - r=mstange
Some macros would not work if they were used in a context where `namespace
mozilla` is not directly accessible. Fixed by added appropriate `mozilla::`
specifiers.

Differential Revision: https://phabricator.services.mozilla.com/D28028

--HG--
extra : moz-landing-system : lando
2019-04-29 06:33:26 +00:00
Philipp Kewisch 52aa5b978e Bug 1507709 - Move WebExtensions geckoProfiler API to toolkit. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D12100

--HG--
rename : browser/components/extensions/ProfilerGetSymbols-worker.js => toolkit/components/extensions/ProfilerGetSymbols-worker.js
rename : browser/components/extensions/ProfilerGetSymbols.jsm => toolkit/components/extensions/ProfilerGetSymbols.jsm
rename : browser/components/extensions/parent/ext-geckoProfiler.js => toolkit/components/extensions/parent/ext-geckoProfiler.js
rename : browser/components/extensions/profiler_get_symbols.js => toolkit/components/extensions/profiler_get_symbols.js
rename : browser/components/extensions/schemas/geckoProfiler.json => toolkit/components/extensions/schemas/geckoProfiler.json
rename : browser/components/extensions/test/xpcshell/test_ext_geckoProfiler_control.js => toolkit/components/extensions/test/xpcshell/test_ext_geckoProfiler_control.js
rename : browser/components/extensions/test/xpcshell/test_ext_geckoProfiler_schema.js => toolkit/components/extensions/test/xpcshell/test_ext_geckoProfiler_schema.js
extra : moz-landing-system : lando
2019-03-22 13:18:01 +00:00
Greg Tatum 7e0ec04242 Bug 1529386 - Rename DiskIO marker payloads to FileIO in profiler; r=canaltinova
Differential Revision: https://phabricator.services.mozilla.com/D20572

--HG--
extra : moz-landing-system : lando
2019-02-21 15:32:07 +00:00
Csoregi Natalia 952908fda0 Merge mozilla-central to mozilla-inbound. CLOSED TREE 2019-02-17 00:14:07 +02:00
Sylvestre Ledru e0c61dafa5 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
Summary: # ignore-this-changeset

Reviewers: Ehsan

Reviewed By: Ehsan

Subscribers: emilio, jandem, bbouvier, jya

Bug #: 1519636

Differential Revision: https://phabricator.services.mozilla.com/D20062
2019-02-16 20:20:37 +01:00
Markus Stange 99df373110 Bug 1500692 - Add an AUTO_PROFILER_LABEL_CATEGORY_PAIR macro. r=njn
This is similar to AUTO_PROFILER_LABEL, but with only one argument: a category pair.
This reduces duplication for label frames that want just the subcategory name as
their label: Instead of AUTO_PROFILER_LABEL("Layer building", GRAPHICS_LayerBuilding),
you can now just write AUTO_PROFILER_LABEL_CATEGORY_PAIR(GRAPHICS_LayerBuilding) and
the string will automatically be taken from the subcategory.

Differential Revision: https://phabricator.services.mozilla.com/D11339

--HG--
extra : moz-landing-system : lando
2019-02-16 17:37:58 +00:00
Markus Stange 0b151b8c2b Bug 1500692 - Centralize profiling category definition and add infrastructure for subcategories. r=njn
The actual subcategories will be added in later patches, so that there are no
unused categories.

Differential Revision: https://phabricator.services.mozilla.com/D11334

--HG--
extra : moz-landing-system : lando
2019-02-16 17:37:43 +00:00
Gerald Squelart 349d4a5381 Bug 1527564 - Child forwards its process name to the profiler - r=mstange
Profiler was previously fetching process name at the time of shutdown
serialization, at which point that name could have already been destroyed.

Now the child process just forwards the name as soon as it is given, so
the profiler can store it for later.

Differential Revision: https://phabricator.services.mozilla.com/D19732

--HG--
extra : moz-landing-system : lando
2019-02-14 21:19:42 +00:00
Florian Quèze 5de09797c0 Bug 1526508 - add profiler markers for importing a JS module, loading a JS XPCOM component or a subscript r=mstange
Bug 1526508 - add profiler markers for importing a JS module, loading a JS XPCOM component or a subscript

Differential Revision: https://phabricator.services.mozilla.com/D19228

--HG--
extra : moz-landing-system : lando
2019-02-11 17:53:22 +00:00
Markus Stange 2121a26024 Bug 1515209 - Add profiler_add_text_marker and AUTO_PROFILER_TEXT_MARKER_DOCSHELL for convenience, and add the ability to specify cause stacks. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D19188

--HG--
extra : moz-landing-system : lando
2019-02-14 05:25:45 +00:00
Gerald Squelart 0af4548b10 Bug 1520103 - Fixed non-unified Profiler build - r=mstange
Found issues by forcing a local non-unified build.

Also sorted #includes by logical groups (from most local to most global), and
alphabetically within groups.

Depends on D18621

Differential Revision: https://phabricator.services.mozilla.com/D18622

--HG--
extra : moz-landing-system : lando
2019-02-07 17:35:37 +00:00
Greg Tatum cfa7eff1dc Bug 1525409 - Rework the IOMarkerPayload structure to include better information; r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D18743

--HG--
extra : moz-landing-system : lando
2019-02-06 14:45:29 +00:00
Sylvestre Ledru 755a1a7c2f Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D17063

--HG--
extra : moz-landing-system : lando
2019-01-21 14:49:22 +00:00
Cosmin Sabou 7ccc9d8b0b Merge mozilla-inbound to mozilla-central. a=merge 2019-01-19 11:57:49 +02:00
Greg Tatum 7042c8f1c3 Bug 1520526 - Add categories to all profiler markers; r=mstange
This commit adds categories to all markers. This way the profiler's
marker categories and frame label categories agree. There are a few
duplicate category properties on some of the marker payloads, but
this could be cleaned up in a follow-up if needed.

Differential Revision: https://phabricator.services.mozilla.com/D16864

--HG--
extra : moz-landing-system : lando
2019-01-18 15:40:15 +00:00
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Randell Jesup f75205467e Bug 1518030: add keyword to mirror LOG messages into Profiler LogMarkers r=mstange,froyd 2019-01-15 12:49:03 -05:00
Randell Jesup a3b990d95a Bug 1508837: Add TextMarker payloads for simple Profiler Markers r=mstange 2018-12-14 16:01:19 -05:00
Jed Davis 3fe8a630c1 Bug 1487287 - Set profiler env vars in child processes without side-effecting the parent process. r=mstange
We can directly set environment variables for the child process on
all platforms now, instead of changing the parent's environment and
inheriting the changes.  This simplifies memory management, but more
importantly it's necessary for thread safety to allow launching
processes from a thread pool.

Depends on D8944

Differential Revision: https://phabricator.services.mozilla.com/D8945

--HG--
extra : moz-landing-system : lando
2019-01-08 23:53:36 +00:00
Denis Palmeiro 1d2e62c07a Bug 1497016 - Add an API to extract tracelogger data and use this within the gecko profiler r=mstange,djvj
Add a new class to extract tracelogger data using chunked buffers and use this to write the data out to the profiler JSON output.  Copying the data in chunks lets us minimize our memory overhead when writing out to the profiler so a large array of millions of elements does not need to be allocated ahead of time.

Differential Revision: https://phabricator.services.mozilla.com/D11791

--HG--
extra : moz-landing-system : lando
2018-12-04 21:43:38 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Ehsan Akhgari 490e611801 Bug 1508472 - Part 5: Fifth batch of comment fix-ups in preparation for the tree reformat r=sylvestre
This is a best effort attempt at ensuring that the adverse impact of
reformatting the entire tree over the comments would be minimal. I've used a
combination of strategies including disabling of formatting, some manual
formatting and some changes to formatting to work around some clang-format
limitations.

Differential Revision: https://phabricator.services.mozilla.com/D13371

--HG--
extra : moz-landing-system : lando
2018-11-29 10:30:46 +00:00
Andreea Pavel 74cd2bf73e Backed out 8 changesets (bug 1446161, bug 1487287, bug 1488993, bug 1474991, bug 1496608) for very frequent automation.py crashes on a CLOSED TREE
Backed out changeset 8b1f88d7bfeb (bug 1487287)
Backed out changeset 8fa5e81ad801 (bug 1487287)
Backed out changeset 7a480161fa0f (bug 1474991)
Backed out changeset 80116391b7fe (bug 1446161)
Backed out changeset 1bdf64b29121 (bug 1446161)
Backed out changeset 37bf52f0e9cf (bug 1446161)
Backed out changeset 8ede2ebe6b7a (bug 1496608)
Backed out changeset cea43bc88c7a (bug 1488993)
2018-11-27 08:53:18 +02:00
Jed Davis 8782927375 Bug 1487287 - Set profiler env vars in child processes without side-effecting the parent process. r=mstange
We can directly set environment variables for the child process on
all platforms now, instead of changing the parent's environment and
inheriting the changes.  This simplifies memory management, but more
importantly it's necessary for thread safety to allow launching
processes from a thread pool.

Depends on D8944

Differential Revision: https://phabricator.services.mozilla.com/D8945

--HG--
extra : moz-landing-system : lando
2018-11-22 00:06:20 +00:00
Nazım Can Altınova 52910a3163 Bug 1476775 - Part 1: Discard samples that are older than given duration r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D6267

--HG--
extra : moz-landing-system : lando
2018-11-21 14:13:15 +00:00
Gerald Squelart bd8d839a26 Bug 1435091 - p3. profiler_thread_is_being_profiled() - r=mstange
profiler_thread_is_being_profiled() checks if the profiler is active (quick
inline atomic check) and if the current thread is being profiled (function call
doing a TLS-atomic check).

This may be used instead of profiler_is_active() for thread-specific recordings
(e.g.: markers).

Differential Revision: https://phabricator.services.mozilla.com/D11307

--HG--
extra : moz-landing-system : lando
2018-11-19 17:41:09 +00:00
Ted Campbell 87e6a3bb5d Bug 1508180 - Use uppercase high-order macro names in profiler. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D12235

--HG--
extra : moz-landing-system : lando
2018-11-19 17:41:27 +00:00
arthur.iakab c0b26c4076 Merge inbound to mozilla-central a=merge 2018-11-15 11:54:15 +02:00
Markus Stange 15a3969823 Bug 1500467 - Mark AutoEntryScript label frames as RELEVANT_FOR_JS. r=njn
Depends on D9301

Differential Revision: https://phabricator.services.mozilla.com/D9302

--HG--
extra : moz-landing-system : lando
2018-11-14 18:55:01 +00:00
Randell Jesup 8773e64196 Bug 1505948: Add cache info to network profiler markers r=mstange,nwgh 2018-11-14 15:54:22 -05:00
Ciure Andrei 92c9686945 Backed out changeset e157b95e9b5e (bug 1505948) for HttpChannelChild.cpp build bustages CLOSED TREE 2018-11-14 23:41:01 +02:00
Randell Jesup 286dfeada3 Bug 1505948: Add cache info to network profiler markers r=mstange,nwgh 2018-11-14 15:54:22 -05:00
Nazım Can Altınova f967885c60 Bug 1417976 - Part 2: Include DocShell IDs to marker payloads r=mstange
MozReview-Commit-ID: AML1ESUnFlu

Depends on D4914

Differential Revision: https://phabricator.services.mozilla.com/D4915

--HG--
extra : moz-landing-system : lando
2018-11-06 21:45:50 +00:00
Nazım Can Altınova aaba02d9ee Bug 1417976 - Part 1: Store the information of DocShells in CorePS r=mstange,bzbarsky
Added a mechanism to register and unregister the DocShells from the CorePS depending
on the state of the profiler. Registering mechanism is straightforward. During
unregistration, if profiler is not active, we remove the DocShell information
immediately. If profiler is active, we don't remove and we keep the profiler buffer
position at that moment. During another DocShell registration we Discard the
unregistered DocShells. If the profiler buffer position is greater than the position
when we captured during unregistration, we delete the DocShell since that means there
can't be any markers associated to this DocShell anymore.

MozReview-Commit-ID: IVuKQ6drvkR

Differential Revision: https://phabricator.services.mozilla.com/D4914

--HG--
extra : moz-landing-system : lando
2018-11-06 21:45:07 +00:00