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

1713 Коммитов

Автор SHA1 Сообщение Дата
Markus Stange 7b785f663d Bug 1439014 - Add a profiler feature to enable JIT optimization tracking. r=njn,sfink
MozReview-Commit-ID: LDxiLVp7e9v

--HG--
extra : rebase_source : efefa814a050f06217de30704976048eeacc3caa
extra : intermediate-source : b58a6dce6a4e46ccfdbed363c67e2fa79043086b
extra : source : 6d91d0cc7d61af160b2ccd340adf23cb41389eed
2018-02-17 19:38:14 -05:00
Markus Stange 016eb6c26a Bug 1335191 - Position sheets using the NSWindowDelegate method window:willPositionSheet:usingRect:. r=spohl
MozReview-Commit-ID: 1Dwwdvl6Fok

--HG--
extra : rebase_source : 916b639fe3a18af819cb3f680501abbbe0d9bf87
2018-03-23 17:50:02 -04:00
arthur.iakab 5beb4527ab Backed out 2 changesets (bug 1439014) for failing mochitest chrome and test verify on tools/profiler/tests/chrome/test_profile_with_trackopts.html
Backed out changeset 57426696adaf (bug 1439014)
Backed out changeset a13074f87bb0 (bug 1439014)
2018-03-27 06:48:42 +03:00
Markus Stange 7a3f577c15 Bug 1439014 - Add a test that checks for the presence of JS tracked optimization info. r=julienw
MozReview-Commit-ID: ETJGZPhMfLv

--HG--
extra : rebase_source : 5a16a1226357dffa08fb6d348395fef6216488c6
2018-03-26 19:34:50 -04:00
Markus Stange 42fcb730e2 Bug 1439014 - Add a profiler feature to enable JIT optimization tracking. r=njn,sfink
MozReview-Commit-ID: LDxiLVp7e9v

--HG--
extra : rebase_source : b6d0ba745de702a88310278fd9ec0cd56205f463
extra : intermediate-source : b58a6dce6a4e46ccfdbed363c67e2fa79043086b
extra : source : 6d91d0cc7d61af160b2ccd340adf23cb41389eed
2018-02-17 19:38:14 -05:00
arthur.iakab bb69fe14b5 Backed out 2 changesets (bug 1439014) for failing mochitest chrome and test verify on tools/profiler/tests/chrome/test_profile_with_trackopts.html on a CLOSED TREE
Backed out changeset 226c8c740c34 (bug 1439014)
Backed out changeset 84c9b5ab7de9 (bug 1439014)
2018-03-27 02:16:17 +03:00
Markus Stange c11697a2a1 Bug 1439014 - Add a test that checks for the presence of JS tracked optimization info. r=julienw
MozReview-Commit-ID: ETJGZPhMfLv

--HG--
extra : rebase_source : 9cad953532ceeb41db40978a3ea90fa46874f77e
2018-03-26 17:03:43 -04:00
Markus Stange 6f36cc5745 Bug 1439014 - Add a profiler feature to enable JIT optimization tracking. r=njn,sfink
MozReview-Commit-ID: LDxiLVp7e9v

--HG--
extra : rebase_source : b6d0ba745de702a88310278fd9ec0cd56205f463
extra : intermediate-source : b58a6dce6a4e46ccfdbed363c67e2fa79043086b
extra : source : 6d91d0cc7d61af160b2ccd340adf23cb41389eed
2018-02-17 19:38:14 -05:00
arthur.iakab bfec308dac Backed out 2 changesets (bug 1439014) for failing chrome failures and test verify tests on tools/profiler/tests/chrome/test_profile_with_trackopts.htm on a CLOSED TREE
Backed out changeset f01eb749b3f9 (bug 1439014)
Backed out changeset 6d264bbb2669 (bug 1439014)
2018-03-26 23:26:15 +03:00
Markus Stange 4d16000195 Bug 1439014 - Add a test that checks for the presence of JS tracked optimization info. r=julienw
MozReview-Commit-ID: ETJGZPhMfLv

--HG--
extra : rebase_source : 3725265ca37938481cf4d5f19bf10f60b6cda1fc
2018-03-26 14:32:27 -04:00
Markus Stange dd133bbe22 Bug 1439014 - Add a profiler feature to enable JIT optimization tracking. r=njn,sfink
MozReview-Commit-ID: LDxiLVp7e9v

--HG--
extra : rebase_source : b6d0ba745de702a88310278fd9ec0cd56205f463
extra : intermediate-source : b58a6dce6a4e46ccfdbed363c67e2fa79043086b
extra : source : 6d91d0cc7d61af160b2ccd340adf23cb41389eed
2018-02-17 19:38:14 -05:00
Sylvestre Ledru 80b3f60e41 Bug 1445888 - Remove tools/profiler/merge-profiles.py a b2g tool r=julienw
MozReview-Commit-ID: Lt6drB4ncdk

--HG--
extra : rebase_source : 677b30db8f429af16ffaa810408d27542ceb32ad
2018-03-15 11:04:28 +01:00
Xidorn Quan 8031c0838a Bug 1444296 part 2 - Have a separate marker for styles to present stats. r=mstange
MozReview-Commit-ID: FXYnFXDvajw

--HG--
extra : rebase_source : e6b10e1df7d1815afb704b4e6eea812c2affa7fb
extra : source : 1e8a29eb9c2966f458d8019feb9f91323dc4d94a
2018-03-15 11:59:22 +11:00
Narcis Beleuzu 49a6cb8875 Backed out 3 changesets (bug 1438839) for linting failure on split-profile.py. CLOSED TREE
Backed out changeset 41c11bf05828 (bug 1438839)
Backed out changeset 40fda8b55cf9 (bug 1438839)
Backed out changeset 37a3c981a785 (bug 1438839)
2018-03-13 10:10:16 +02:00
Sylvestre Ledru 482b8f35cc Bug 1438839 - Fix the remaining flake8 issues by hand r=ahal
MozReview-Commit-ID: Fv1MZIpCL8Z

--HG--
extra : rebase_source : ba62df5928d7d882d135c7d51c4b4175c483fd0a
2018-02-27 14:04:50 +01:00
Sylvestre Ledru a5176f006e Bug 1438839 - autopep8 -i --max-line-length 99 on the tools/ r=ahal
MozReview-Commit-ID: KSKbctxjxl0

--HG--
extra : rebase_source : ddce23f3e728e29aab4dbccd616ca8e9f31c0817
2018-02-26 23:29:32 +01:00
Greg Tatum 4f7596f26a Bug 1425605 - Add the start/end mark names to performance.measure profiler markers; r=baku,mstange
MozReview-Commit-ID: I8DzSlSi124

--HG--
extra : rebase_source : 5062bf33824284df7346dae15595f8e1e479bc40
2018-03-08 16:36:53 -06:00
Markus Stange 0e40b574c1 Bug 1429904 - Remove ProfileBuffer::Reset(). r=njn
MozReview-Commit-ID: AzIyYByoesS

--HG--
extra : rebase_source : bc21f96e01c2bfc9aea0ce90ba43aa8864fb6bbf
2018-02-15 21:49:05 -05:00
Markus Stange 9e2d38db17 Bug 1429904 - Remove unused arguments and return values. r=njn
MozReview-Commit-ID: 9P0TKavkwgA

--HG--
extra : rebase_source : a30467537478805bb0a69bbb016a143555c2dfe8
2018-02-17 19:21:05 -05:00
Markus Stange 28d8be3628 Bug 1429904 - When a JSContext for a thread is about to go away, collect enough information about any JIT entries in the buffer so that the entire buffer can be streamed to JSON. r=njn
This changeset changes behavior.
If the profile is streamed before any JSContext has gone away, we now iterate
over the entire buffer twice (per thread): First, to collect information about
JIT frames, and then again when we build the JSON for the samples. The first
traversal stores small pieces of JSON for JIT fromes in individual strings, and
the second iteration splices those strings into the thread JSON's frame table.

When the JSContext for a thread goes away, we no longer build JSON for samples,
and we don't reset the profiler buffer. We now only build the JSON for JIT
frames. Once the complete profile is requested and we build samples for it, we
iterate over the entire buffer, and look up the cached JIT frame information for
JitReturnAddr entries from the correct range. Different parts of the buffer may
correspond to the life time of different JSContexts: For each JSContext we will
have one range in the JITFrameInfo, and we can look up the correct range based
on the buffer position of the JitReturnAddr entry that we're processing.

This new way of doing things has multiple advantages:
 - We no longer reset the buffer, so we no longer lose information about other
   threads.
 - All threads from a given process now always have sample data for the same
   time range. Before this change, the "partial profile" from a thread that
   lost its JSContext could extend further into the past than the other threads'
   profiles.
 - Requesting profiles multiple times now has more consistent results. Before
   this change, the first requested profile would include the partial profile,
   but then the partial profile was discarded. And the second requested profile
   would not contain any data for the time before the JSContext went away.
 - We now do less work when a thread's JSContext goes away. This should
   decrease the interruption time.

MozReview-Commit-ID: 3KhnPtBijna

--HG--
extra : rebase_source : 2ef5ac933e4db1c98526a2b36147ff031893de9e
extra : intermediate-source : d63b04327077d1ef55f509b365cd2693905b0733
extra : source : f2d8c993aa2c16bc491c55179d545f5a2c727391
2018-02-28 00:17:16 -05:00
Markus Stange 2f171b74fa Bug 1429904 - Add JITFrameInfo. r=njn
MozReview-Commit-ID: DashxIKyzYZ

--HG--
extra : rebase_source : 2c1c01ed2008b0934d27ba10a7ef064453306ee9
2018-02-28 00:13:51 -05:00
Markus Stange a76d2ed393 Bug 1429904 - Put mUniqueStrings into a UniquePtr. r=njn
In an upcoming patch we'll want to initialize mUniqueStrings by stealing
another object's UniqueJSONStrings, but UniqueJSONStrings itself is not
move-constructible. But UniquePtr is.
Making UniqueJSONStrings itself move-constructible would be a bit tricky
because it has a SpliceableChunkedJSONWriter which is not move-constructible;
and making SpliceableChunkedJSONWriter move-constructible is hard because
there's no obvious "empty but valid" state that we could leave a moved-out-of
SpliceableChunkedJSONWriter in; for example, it expects to have a non-null
WriteFunc at all times.

MozReview-Commit-ID: Q6o61HFTiD

--HG--
extra : rebase_source : e1073be9892cf7cfd6ca4f2562ce939690b3b4d7
2018-02-17 15:50:43 -05:00
Markus Stange 79f37c94cf Bug 1429904 - Give UniqueJSONStrings a copy constructor. r=njn
MozReview-Commit-ID: tlh6qkYX7A

--HG--
extra : rebase_source : 115d834c1e0eed80f54da4aec2db04105b91d90c
2018-02-17 15:39:45 -05:00
Markus Stange 721a2ea7b8 Bug 1429904 - Tell the ProfiledThreadData what the buffer position was when the thread received its JSContext. r=njn
This also renames FlushSamplesAndMarkers to NotifyAboutToLoseJSContext.

MozReview-Commit-ID: FWinMi85yDZ

--HG--
extra : rebase_source : 6d8bfd6937ce757108f80f43e878a2dbead318bd
2018-02-17 15:03:30 -05:00
Markus Stange 15b53ded07 Bug 1429904 - Use a Variant to split the FrameKey members into two groups. r=njn
This makes it clear which combinations of fields are possible.

MozReview-Commit-ID: C3PriO7nWsJ

--HG--
extra : rebase_source : 68df01f11121b09b2f2762581dc28184262abfb8
2018-02-27 23:44:02 -05:00
Markus Stange f4f1500202 Bug 1429904 - Add 'using namespace mozilla;' to ProfileBufferEntry.cpp and remove some mozilla:: prefixes. r=njn
I think this file was picking up such a declaration from a different file
already, through unified builds.

MozReview-Commit-ID: 9xTB2QA86U0

--HG--
extra : rebase_source : d7b614524ebdf25a185698b6632d6f925ce08da8
2018-02-17 12:35:57 -05:00
Markus Stange e0cf8ba1ba Bug 1429904 - Remove a comment about std::string. r=njn
nsCString is the idiomatic string class we want to use anyway. There's no need
to think about std::string here.

MozReview-Commit-ID: 1rjZAyqp13d

--HG--
extra : rebase_source : 92c4eb22876c4fc89f00104c56f92a75053284e9
2018-02-28 00:30:55 -05:00
Markus Stange 1362836d13 Bug 1429904 - Make FrameKey members const. r=njn
MozReview-Commit-ID: KTYmCJM9tOH

--HG--
extra : rebase_source : b5009f527bc0cd026e06c8b5da9f3d44fc4ea700
2018-02-27 23:11:34 -05:00
Markus Stange 89eae04310 Bug 1429904 - Add another constructor to FrameKey which initializes mLine and mCategory, and use it in one place. r=njn
MozReview-Commit-ID: 1LliQMGjfjx

--HG--
extra : rebase_source : 82575f4dc270ac0dabccbe5cc667222f137ca8cc
2018-02-27 23:10:06 -05:00
Markus Stange 2927aca3f7 Bug 1429904 - Let the compiler implement the FrameKey copy constructor for us. r=njn
MozReview-Commit-ID: 9e9rMkEAyeL

--HG--
extra : rebase_source : 7bfe088360c891a0c7b364ed3ab4e42516b2b97b
2018-02-27 23:08:19 -05:00
Markus Stange 81b7ec9e0c Bug 1429904 - Remove mHash which is now unused. It was only used by FrameKey::operator<. r=njn
MozReview-Commit-ID: 5Jc6EYmoZfS

--HG--
extra : rebase_source : 20c2c4b0396b0b850066d65e6f7984e4fbe472fa
2018-02-27 23:06:31 -05:00
Markus Stange fa1dbb7812 Bug 1429904 - Remove unused operator< from StackKey and FrameKey. r=njn
nsGenericHashKey never calls this operator, as far as I can tell.

MozReview-Commit-ID: NDybMI8DOA

--HG--
extra : rebase_source : 933c12e2ef4600ea33b6c7026f539e51447fc454
2018-02-27 22:41:35 -05:00
Narcis Beleuzu cb68134250 Backed out 15 changesets (bug 1429904) for build bustages on ProfileBufferEntry.cpp. CLOSED TREE
Backed out changeset e41dd572e115 (bug 1429904)
Backed out changeset 8cbd19b941a0 (bug 1429904)
Backed out changeset 544e3884d895 (bug 1429904)
Backed out changeset 34f128690886 (bug 1429904)
Backed out changeset 11e6e1eb039a (bug 1429904)
Backed out changeset 4ade11251223 (bug 1429904)
Backed out changeset 4d359db9dcf6 (bug 1429904)
Backed out changeset b463b8aeb9f3 (bug 1429904)
Backed out changeset 7e25215922b8 (bug 1429904)
Backed out changeset 58fdb209349c (bug 1429904)
Backed out changeset 43208c534673 (bug 1429904)
Backed out changeset 377750a82bf6 (bug 1429904)
Backed out changeset 595906406c16 (bug 1429904)
Backed out changeset 39a1b2434439 (bug 1429904)
Backed out changeset e270b4748814 (bug 1429904)
2018-03-01 00:36:07 +02:00
Markus Stange 6e297c8de8 Bug 1429904 - Remove ProfileBuffer::Reset(). r=njn
MozReview-Commit-ID: AzIyYByoesS

--HG--
extra : rebase_source : f7213a1c94a6d2e726229ac7863c9cf46c52d87b
2018-02-15 21:49:05 -05:00
Markus Stange ef1bc5c5f1 Bug 1429904 - Remove unused arguments and return values. r=njn
MozReview-Commit-ID: 9P0TKavkwgA

--HG--
extra : rebase_source : 857bcdeaaab79d3d12165da3ad72a03e114974f2
2018-02-17 19:21:05 -05:00
Markus Stange 21b7613f53 Bug 1429904 - When a JSContext for a thread is about to go away, collect enough information about any JIT entries in the buffer so that the entire buffer can be streamed to JSON. r=njn
This changeset changes behavior.
If the profile is streamed before any JSContext has gone away, we now iterate
over the entire buffer twice (per thread): First, to collect information about
JIT frames, and then again when we build the JSON for the samples. The first
traversal stores small pieces of JSON for JIT fromes in individual strings, and
the second iteration splices those strings into the thread JSON's frame table.

When the JSContext for a thread goes away, we no longer build JSON for samples,
and we don't reset the profiler buffer. We now only build the JSON for JIT
frames. Once the complete profile is requested and we build samples for it, we
iterate over the entire buffer, and look up the cached JIT frame information for
JitReturnAddr entries from the correct range. Different parts of the buffer may
correspond to the life time of different JSContexts: For each JSContext we will
have one range in the JITFrameInfo, and we can look up the correct range based
on the buffer position of the JitReturnAddr entry that we're processing.

This new way of doing things has multiple advantages:
 - We no longer reset the buffer, so we no longer lose information about other
   threads.
 - All threads from a given process now always have sample data for the same
   time range. Before this change, the "partial profile" from a thread that
   lost its JSContext could extend further into the past than the other threads'
   profiles.
 - Requesting profiles multiple times now has more consistent results. Before
   this change, the first requested profile would include the partial profile,
   but then the partial profile was discarded. And the second requested profile
   would not contain any data for the time before the JSContext went away.
 - We now do less work when a thread's JSContext goes away. This should
   decrease the interruption time.

MozReview-Commit-ID: 3KhnPtBijna

--HG--
extra : rebase_source : ff3d4ad4788da8f2d391b5dc465f635c1970fc0d
extra : intermediate-source : d63b04327077d1ef55f509b365cd2693905b0733
extra : source : f2d8c993aa2c16bc491c55179d545f5a2c727391
2018-02-28 00:17:16 -05:00
Markus Stange d1d0d2a055 Bug 1429904 - Add JITFrameInfo. r=njn
MozReview-Commit-ID: DashxIKyzYZ

--HG--
extra : rebase_source : c129c05e8e001091131812bf89676c5eaa1d7c52
2018-02-28 00:13:51 -05:00
Markus Stange c26b9c509d Bug 1429904 - Put mUniqueStrings into a UniquePtr. r=njn
In an upcoming patch we'll want to initialize mUniqueStrings by stealing
another object's UniqueJSONStrings, but UniqueJSONStrings itself is not
move-constructible. But UniquePtr is.
Making UniqueJSONStrings itself move-constructible would be a bit tricky
because it has a SpliceableChunkedJSONWriter which is not move-constructible;
and making SpliceableChunkedJSONWriter move-constructible is hard because
there's no obvious "empty but valid" state that we could leave a moved-out-of
SpliceableChunkedJSONWriter in; for example, it expects to have a non-null
WriteFunc at all times.

MozReview-Commit-ID: Q6o61HFTiD

--HG--
extra : rebase_source : d18344cab5acc97192a69069a8c338ed112fff6c
2018-02-17 15:50:43 -05:00
Markus Stange 4dcf454f02 Bug 1429904 - Give UniqueJSONStrings a copy constructor. r=njn
MozReview-Commit-ID: tlh6qkYX7A

--HG--
extra : rebase_source : 7bc75754c25f4b0806a6f2e93007ad9f293339c0
2018-02-17 15:39:45 -05:00
Markus Stange 1e5e47be12 Bug 1429904 - Tell the ProfiledThreadData what the buffer position was when the thread received its JSContext. r=njn
This also renames FlushSamplesAndMarkers to NotifyAboutToLoseJSContext.

MozReview-Commit-ID: FWinMi85yDZ

--HG--
extra : rebase_source : f0608488005a4eafa7045ba6c445afbe4352567d
2018-02-17 15:03:30 -05:00
Markus Stange 9a4ca518c3 Bug 1429904 - Use a Variant to split the FrameKey members into two groups. r=njn
This makes it clear which combinations of fields are possible.

MozReview-Commit-ID: C3PriO7nWsJ

--HG--
extra : rebase_source : 6e414c46a3545a8dcc599f4d140aa5e61910b00c
2018-02-27 23:44:02 -05:00
Markus Stange 656f6ab52d Bug 1429904 - Add 'using namespace mozilla;' to ProfileBufferEntry.cpp and remove some mozilla:: prefixes. r=njn
I think this file was picking up such a declaration from a different file
already, through unified builds.

MozReview-Commit-ID: 9xTB2QA86U0

--HG--
extra : rebase_source : ca881f6ea8489dddba48ef0f92baa4ef10d0165e
2018-02-17 12:35:57 -05:00
Markus Stange ab729d657c Bug 1429904 - Remove a comment about std::string. r=njn
nsCString is the idiomatic string class we want to use anyway. There's no need
to think about std::string here.

MozReview-Commit-ID: 1rjZAyqp13d

--HG--
extra : rebase_source : e67e08512927e37a82fd28f035438159717c209a
2018-02-28 00:30:55 -05:00
Markus Stange 65a2f49bfc Bug 1429904 - Make FrameKey members const. r=njn
MozReview-Commit-ID: KTYmCJM9tOH

--HG--
extra : rebase_source : a79087883f4e39a94bd733b45fd63525a25dd7d9
2018-02-27 23:11:34 -05:00
Markus Stange d7b602ad6f Bug 1429904 - Add another constructor to FrameKey which initializes mLine and mCategory, and use it in one place. r=njn
MozReview-Commit-ID: 1LliQMGjfjx

--HG--
extra : rebase_source : 21ae38d0dd9f238193fa462641a7147c0e8fbf14
2018-02-27 23:10:06 -05:00
Markus Stange 36aeb88c58 Bug 1429904 - Let the compiler implement the FrameKey copy constructor for us. r=njn
MozReview-Commit-ID: 9e9rMkEAyeL

--HG--
extra : rebase_source : f803a42699b8daa8cb045db6f4048107f2d2e26e
2018-02-27 23:08:19 -05:00
Markus Stange dfbd63d53c Bug 1429904 - Remove mHash which is now unused. It was only used by FrameKey::operator<. r=njn
MozReview-Commit-ID: 5Jc6EYmoZfS

--HG--
extra : rebase_source : c9876742df020c9f97e4f68694605c72ecba8fc1
2018-02-27 23:06:31 -05:00
Markus Stange 9cd2c5d435 Bug 1429904 - Remove unused operator< from StackKey and FrameKey. r=njn
nsGenericHashKey never calls this operator, as far as I can tell.

MozReview-Commit-ID: NDybMI8DOA

--HG--
extra : rebase_source : 5a8182a5e1f2af57533ddff8848d7a772bf7eeb2
2018-02-27 22:41:35 -05:00
Markus Stange fcdbc4f32f Bug 1439168 - Return profiled threads sorted by registration time. r=njn
MozReview-Commit-ID: 6grx6eSLteQ

--HG--
extra : rebase_source : 4a2a7c83f2c77dd9742d4be4047f5224b1759a40
2018-02-12 01:07:59 -05:00
Markus Stange 683997b80b Bug 1437428 - Split ThreadInfo into three classes: ThreadInfo, RegisteredThread and ProfiledThreadData. r=njn
The file copies and renames make this patch look a bit confusing. Here's what
happens:

ThreadInfo.h:
Most of the code gets moved into RegisteredThread.h and ProfiledThreadData.h,
but a small piece remains in ThreadInfo.h.

ThreadInfo.cpp:
Gets split into RegisteredThread.cpp and ProfiledThreadData.cpp.
ThreadInfo.cpp itself goes away.

In the mercurial changeset, I've marked ThreadInfo.h as being copied to both
RegisteredThread.h and to ProfiledThreadData.h, and ThreadInfo.cpp as being
copied to RegisteredThread.cpp and as being renamed to ProfiledThreadData.cpp.

MozReview-Commit-ID: 1j1imAv9cTd

--HG--
rename : tools/profiler/core/ThreadInfo.cpp => tools/profiler/core/ProfiledThreadData.cpp
rename : tools/profiler/core/ThreadInfo.h => tools/profiler/core/ProfiledThreadData.h
rename : tools/profiler/core/ThreadInfo.cpp => tools/profiler/core/RegisteredThread.cpp
rename : tools/profiler/core/ThreadInfo.h => tools/profiler/core/RegisteredThread.h
extra : rebase_source : 91310691d5e46246ec03305511c1b86ab458b0b9
2018-02-16 22:43:51 -05:00
Markus Stange fa1eca48cc Bug 1437428 - Make PseudoStack a member of RacyInfo instead of inheriting from it. r=njn
MozReview-Commit-ID: 3fumT1Livf6

--HG--
extra : rebase_source : fa201a7023ba9ffa5d0d23e2886ad151f4a7930a
2018-01-31 17:42:49 -05:00
Sylvestre Ledru 1e5d4345d7 Bug 1438471 - Remove dead code: nm-symbolicate.py r=mstange
MozReview-Commit-ID: 7qaYBvLzPZL

--HG--
extra : rebase_source : 32d70ea42c5d286b074dde3f55090f6f2437d734
2018-02-22 08:59:39 +01:00
Cosmin Sabou 768831260e Backed out 2 changesets (bug 1437428) for frequent xpcfailures on marAppApplyUpdateStageOldVersionFailure.js a=backout
Backed out changeset b915e160a690 (bug 1437428)
Backed out changeset 0fcad4eaabb6 (bug 1437428)

--HG--
rename : tools/profiler/core/RegisteredThread.cpp => tools/profiler/core/ThreadInfo.cpp
2018-02-18 23:57:55 +02:00
Chris Peterson d09123f248 Bug 1436263 - Part 1: Replace `final override` virtual function specifiers with just `final`. r=froydnj
MozReview-Commit-ID: DE5HkIhsZ6D

--HG--
extra : rebase_source : 94831c1e13a840dd2ea0600f64bcf70c2bf938d9
extra : source : cf9283bf1b0bca3a6311c98e227329d451f80ecb
2018-02-05 22:46:57 -08:00
Markus Stange 9fe1f51348 Bug 1437428 - Split ThreadInfo into three classes: ThreadInfo, RegisteredThread and ProfiledThreadData. r=njn
The file copies and renames make this patch look a bit confusing. Here's what
happens:

ThreadInfo.h:
Most of the code gets moved into RegisteredThread.h and ProfiledThreadData.h,
but a small piece remains in ThreadInfo.h.

ThreadInfo.cpp:
Gets split into RegisteredThread.cpp and ProfiledThreadData.cpp.
ThreadInfo.cpp itself goes away.

In the mercurial changeset, I've marked ThreadInfo.h as being copied to both
RegisteredThread.h and to ProfiledThreadData.h, and ThreadInfo.cpp as being
copied to RegisteredThread.cpp and as being renamed to ProfiledThreadData.cpp.

MozReview-Commit-ID: 1j1imAv9cTd

--HG--
rename : tools/profiler/core/ThreadInfo.cpp => tools/profiler/core/ProfiledThreadData.cpp
rename : tools/profiler/core/ThreadInfo.h => tools/profiler/core/ProfiledThreadData.h
rename : tools/profiler/core/ThreadInfo.cpp => tools/profiler/core/RegisteredThread.cpp
rename : tools/profiler/core/ThreadInfo.h => tools/profiler/core/RegisteredThread.h
extra : rebase_source : 91310691d5e46246ec03305511c1b86ab458b0b9
2018-02-16 22:43:51 -05:00
Markus Stange 8bb2083b22 Bug 1437428 - Make PseudoStack a member of RacyInfo instead of inheriting from it. r=njn
MozReview-Commit-ID: 3fumT1Livf6

--HG--
extra : rebase_source : fa201a7023ba9ffa5d0d23e2886ad151f4a7930a
2018-01-31 17:42:49 -05:00
Jashank Jeremy 5e7e2c2a06 Bug 1438120 - Fix non-MOZ_GECKO_PROFILER build by adding the missing AUTO_PROFILER_LABEL_FAST declaration. r=mstange
--HG--
extra : amend_source : ba4360be040c3d765f380d3c92e6fabf0cdfd436
2018-02-15 22:27:33 -05:00
Markus Stange 36b552905a Bug 1434965 - Take 'streaming generation' into account when de-duplicating JIT frames. r=njn
MozReview-Commit-ID: KlhSPY4ZrOR

--HG--
extra : rebase_source : 801fa6a577f7e218c0bd5fd5554f28880c5c5e7c
2018-02-10 20:03:36 -05:00
Markus Stange 01745f4e91 Bug 1434965 - Don't store a JSContext pointer in UniqueStacks; pass it manually to the functions that need it. r=njn
This resolves the bug where we attempted to find information about JitReturnAddr
entries which were collected with a new JSContext by asking an old JSContext.

MozReview-Commit-ID: FQrnAuwwzHU

--HG--
extra : rebase_source : d0a0c7077199dc177123bb54951f4f7238c5eaf6
2018-02-10 19:17:05 -05:00
Markus Stange 655bb7136b Bug 1434965 - Eliminate custom StringKey class by using nsCStringHashKey. r=njn
MozReview-Commit-ID: HRYfXI43wmE

--HG--
extra : rebase_source : c12db1ffc6c4f974676d086f9182b8ce994d2f91
2018-02-10 19:05:19 -05:00
Markus Stange 0fa0457987 Bug 1434965 - Add ForEachTrackedOptimizationTypeInfoLambdaOp. r=njn
This makes the JSON serialization code for optimization type info a little
easier to read.

MozReview-Commit-ID: 2auHVmp7hKw

--HG--
extra : rebase_source : 1fbcf4dc63a24822f5411a7107af0e07a703a4bf
2018-02-12 14:48:44 -05:00
Markus Stange 77e86db941 Bug 1434965 - Create an implementation of JS::ForEachTrackedOptimizationAttemptOp which takes a lambda. r=njn
This moves the meat of the processing from operator() into the lambda, so that
it can be read in the function that calls forEachOptimizationAttempt. Now the
person who wants to understand this code hopefully won't need to scroll up and
down as much.

MozReview-Commit-ID: H9zRf1Vbswg

--HG--
extra : rebase_source : a742fa4c076437c7af6837280f725ee4532cbf2c
2018-02-12 14:48:09 -05:00
Markus Stange 14feaf3477 Bug 1434965 - Add AutoArraySchemaWriter::FreeFormElement so that FillUpTo can be private. r=njn
This may seem like an unnecessary increase in complexity, and it probably is.
But it makes it easier to reason about lifetimes if your mind is accustomed to
Rust, which would enforce a similar solution.

MozReview-Commit-ID: kJZifbjCSU

--HG--
extra : rebase_source : a2906eb296975ca689c2c3a019c33062ba17b0f2
2018-02-10 17:41:35 -05:00
Markus Stange b9043767e5 Bug 1434965 - Remove AutoArraySchemaWriter constructor that doesn't take a string table. r=njn
WriteSamples doesn't really need the ability to write strings, but always passing
a string table means that there's one less thing to worry about (one less piece of
unsafe API).

MozReview-Commit-ID: 386OEibyush

--HG--
extra : rebase_source : 4fa6428b6371cf4c3db5ad77aac06c0113b2e541
2018-02-10 16:54:24 -05:00
Markus Stange 4e334139e5 Bug 1434965 - Remove OnStackFrameKey and solve frame canonicalization differently. r=njn
MozReview-Commit-ID: DITzwF94U64

--HG--
extra : rebase_source : 8d5c40b2bdcd22ee87ca8429d95b026309f932d5
2018-02-12 14:00:05 -05:00
Markus Stange e53f99f34a Bug 1434965 - Split StreamFrame into two different implementations for JIT and non-JIT frames. r=njn
MozReview-Commit-ID: Ap4FVS8FMKh

--HG--
extra : rebase_source : fe827adea0b37f6f60923bdb30d1f4e66653e24e
2018-02-10 15:14:28 -05:00
Markus Stange f0459d39c9 Bug 1434965 - Remove Stack class and use intended-to-be-immutable StackKeys. r=njn
I wasn't comfortable with how Stack had a reference to the UniqueStacks object.
Now we compute new the new stack index after appending a frame by explicitly
calling a method of the UniqueStacks object.

MozReview-Commit-ID: KQAI9JNb4ag

--HG--
extra : rebase_source : 5d4c7a3f637f8e2bbd4e84c3aca65290a731a206
2018-02-09 18:18:34 -05:00
Markus Stange 8fb2503b8a Bug 1434965 - Replace callback-based API ForEachProfiledFrame with an iterator-based API called GetProfiledFrames. r=njn
This also renames ForEachProfiledFrameOp::FrameHandle to ProfiledFrameHandle.

MozReview-Commit-ID: 7Jh1x2QWjXe

--HG--
extra : rebase_source : 8bb0fa15fa20215f03148cfd30ae0e41f82330fd
2018-02-10 20:38:41 -05:00
Markus Stange e92440806d Bug 785440 - Add AUTO_PROFILER_LABEL_FAST. r=njn
This gets the pseudostack from the JSContext instead of using TLS, and only
pushes a pseudo stack frame if the profiler is active.

MozReview-Commit-ID: IzT4py9H8su

--HG--
extra : rebase_source : 9962455d59e3f8b85a347f4203ac619e654fcb7c
extra : source : f15e6874f6c14f7a5e5b0cb63acd0a95ad34db4e
2018-01-05 14:37:42 +01:00
Markus Stange 7a2c359a92 Bug 785440 - Move profiler_is_active() implementation (and RacyFeatures) into GeckoProfiler.h. r=njn
MozReview-Commit-ID: D8y5RK2t6N4

--HG--
extra : rebase_source : 50513145561a1123c47741cb845e9b4adcf104a0
extra : intermediate-source : 85c8d7e4a5eb1616d36d4ec7916e3b077da3b236
extra : source : 5dda2adf525363b32844ea8162235fae3b54d17d
2017-08-02 14:39:55 -04:00
Markus Stange dee289ad9c Bug 1436924 - Group mUniqueStacks, mSavedStreamedSamples and mSavedStreamedMarkers into a PartialThreadProfile struct that's heap-allocated on demand. r=njn
MozReview-Commit-ID: 5WNrIWLsiM1

--HG--
extra : rebase_source : 3ecf5efc3ce61a642187a1a675e9c014f468eee5
2018-02-09 00:56:55 -05:00
Markus Stange 16a2f41aaa Bug 1355566 - Make sure js::EnableContextProfilingStack(cx, false) is called before shutdown collection. r=njn
MozReview-Commit-ID: 6cPCSeTUdEP

--HG--
extra : rebase_source : 98b6617a3bab4698c03921d451052ff5177ad202
2018-02-08 16:43:23 -05:00
Benjamin Bouvier 3d5c7891a5 Bug 1319203: Fix asm.js profiler test; r=me 2018-02-09 14:47:10 +01:00
Markus Stange a91565e4f5 Bug 1433583 - Discard information about old dead threads that no longer have any samples in the buffer. r=mystor
MozReview-Commit-ID: 5ThtN1H1ieA

--HG--
extra : rebase_source : f853ff92147a4d57fd778723eda32c78847e8ca5
extra : source : 61ede7cb13a5de066601492ca34eb97e17e3e6fe
2018-01-30 16:00:29 -05:00
Julien Wajsberg 7642763ce5 Bug 1428072 - 3/3 - Add a mochitest to test profiling better r=mstange
MozReview-Commit-ID: BOoS37yFznU

--HG--
extra : rebase_source : bf5e87333dcfe4eceedc8d904fe49f34ff029aec
2018-01-31 15:11:51 +01:00
Julien Wajsberg dc7beae272 Bug 1428072 - 2/3 - Reorganize mochitest files for the profiler r=mstange
We extract some common framework to run profiler tests.

MozReview-Commit-ID: 7FPcH1NpJ7S

--HG--
extra : rebase_source : a487cb34c50889112eaecc8a20553365cfb70cfa
2018-01-31 10:51:19 +01:00
Julien Wajsberg cf225ab9c6 Bug 1428072 - 1/3 - Change the implementation of isChromeJSScript so that it doesn't crash for workers r=bz,sfink
In this patch we also expose a script's compartment in jsfriendapi.h

MozReview-Commit-ID: LgoN8ANLgxI

--HG--
extra : rebase_source : a9a29e538041ac574b6b44fab166a7838fce54ac
2018-01-18 17:14:09 +01:00
Markus Stange 78b15a3110 Bug 1434968 - Clear mUniqueStacks, mSavedStreamedSamples and mSavedStreamedMarkers when the profiler is stopped. r=njn
MozReview-Commit-ID: L1Lk0sj2Bub

--HG--
extra : rebase_source : 842b53979122b20687b64278c2be6e706c92991e
2018-02-06 17:45:39 -05:00
Andrew McCreight 5dec0e0beb Bug 1432992, part 1 - Remove definitions of Ci, Cr, Cc, and Cu. r=florian
This patch was autogenerated by my decomponents.py

It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.

It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.

It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)

MozReview-Commit-ID: DeSHcClQ7cG

--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
2018-02-06 09:36:57 -08:00
Markus Stange 7e880fe1f8 Bug 1431179 - Keep all exit profiles that overlap with the parent process's buffer time range. r=mconley
MozReview-Commit-ID: 1DIYQZ70ckR

--HG--
extra : rebase_source : f7f5e8e2d0380b54c50cb20b3d109cb476a2530f
extra : source : 612e54e7001a5907761d831b92aed5cee0deb017
2018-02-06 15:29:05 -05:00
Markus Stange 125c79a8ce Bug 1431179 - Remove the API to obtain the time of the first sample during profile streaming. r=mystor
MozReview-Commit-ID: KfZLNIAx4gy

--HG--
extra : rebase_source : 6b1a2dc19955a3a19877403f36d9dad551a9dc8a
extra : source : 6a241d9b3d1adf1afa72aab53ef8e15ece75fe90
2018-01-26 15:30:55 -05:00
Markus Stange 030cf34ac9 Bug 1431179 - When storing an exit profile, remember the current write position of the parent process's profiler buffer, instead of a TimeStamp. r=mystor
MozReview-Commit-ID: 3SFo9r5VrcZ

--HG--
extra : rebase_source : 2be8143e369de6dab82e1c1ef40a049aa478276c
extra : source : 9531d79fa5c3de2051a31fc475f6bbe3c93659a6
2018-01-30 13:28:35 -05:00
Markus Stange 49d6d03730 Bug 1348959 - Remove wraparound indexing in ProfileBuffer. r=djvj,mystor,njn
MozReview-Commit-ID: LeBFSRE6GXR

--HG--
extra : rebase_source : c46c0cd0dd543a367f72000e3cae65260a25b365
extra : source : 0f2e9dd7d45551d40944e4219e5a9eb92d54b2c4
2018-02-06 00:25:30 -05:00
Markus Stange 519cb27db8 Bug 1348959 - Make profiler_get_buffer_info() return information in a struct instead of using outparams. r=mystor,njn
MozReview-Commit-ID: 1iJ05NxOdou

--HG--
extra : rebase_source : 1c4e654340630b0f21c165b41b8fc1be30743c48
extra : source : 64b1a4108f6c3319cfc74c1246bdd2e895e93e1a
2018-01-18 17:54:57 -05:00
Markus Stange 656fd03724 Bug 1348959 - Make ProfileBuffer fields uint32_t. r=mystor,njn
MozReview-Commit-ID: veIGhEQyK5

--HG--
extra : rebase_source : 2c1853f666afd300ff82a2717f1a7caf9a19cf98
extra : source : e3d8bdc726d6045f69f3c3efa4e91c499a418428
2018-01-18 17:54:33 -05:00
Narcis Beleuzu 0777e2f8f7 Backed out Bug 1428072 for mochitest-chrome leaks
Backed out changeset b39c21c2a7a4 (bug 1428072) for mochitest-chrome leaks
***
Backed out changeset 9acb3d3eb5bc (bug 1428072)
***
Backed out changeset b5a327bb02d4 (bug 1428072)

--HG--
extra : histedit_source : 9de43525a11c34bb0e48c0820857d1731d4e7a08%2Cd3f59b67cd382c41cd0b68fd0f7a521a1051d20c
2018-02-06 15:48:32 +02:00
Julien Wajsberg ca83804232 Bug 1428072 - 3/3 - Add a mochitest to test profiling better r=mstange
MozReview-Commit-ID: 7tNEXHzFzRo

--HG--
extra : rebase_source : 3cb7fe208f6048c286c62be3216d09d5ea4eace4
2018-01-31 15:11:51 +01:00
Julien Wajsberg 163c3aa665 Bug 1428072 - 2/3 - Reorganize mochitest files for the profiler r=mstange
We extract some common framework to run profiler tests.

MozReview-Commit-ID: 7ct5RMhwmOe

--HG--
extra : rebase_source : 01165c506a4325310c23c9be6de2f5e6f958cf00
2018-01-31 10:51:19 +01:00
Julien Wajsberg 51a60aaee4 Bug 1428072 - 1/3 - Change the implementation of isChromeJSScript so that it doesn't crash for workers r=bz,sfink
In this patch we also expose a script's compartment in jsfriendapi.h

MozReview-Commit-ID: JGTLygZ6DK5

--HG--
extra : rebase_source : 585edbdbc74044f2d644f5046513786ee4f42a2f
2018-01-18 17:14:09 +01:00
Gurzau Raul bb16936244 Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-02-02 00:25:44 +02:00
Florian Quèze 2b1c8dccb6 Bug 1339461 - script-generated patch to convert foo.indexOf(...) == -1 to foo.includes(), r=Mossop. 2018-02-01 20:45:22 +01:00
Dorel Luca aefaa99a3a Backed out 3 changesets (bug 1431755) for Mochitest failure on test_profile_worker_bug_1428076.html on a CLOSED TREE
Backed out changeset c1befb56cf4d (bug 1431755)
Backed out changeset 8116e9cfc3f0 (bug 1431755)
Backed out changeset 1878f143ccda (bug 1431755)
2018-01-31 00:58:04 +02:00
arthur.iakab c4dd80eca3 Merge mozilla-central to autoland 2018-01-31 00:41:58 +02:00
Byron Campen [:bwc] da943dc517 Bug 1431755 - Part 3: Remove a redundant dispatch that was causing us to record the duration of _two_ dispatches instead of one. r=mstange
MozReview-Commit-ID: E8lSvMbGjt6

--HG--
extra : rebase_source : b303d66dfedcaa272cd851563a1a7585c4779fac
2018-01-19 10:03:35 -06:00
Byron Campen [:bwc] 44f6431bb0 Bug 1431755 - Part 2: Teach GeckoProfiler to profile responsiveness on nsIThreads. r=mstange
MozReview-Commit-ID: AqpNf9pDzrg

--HG--
extra : rebase_source : d873d9f05115004417b4c0d98dd8dceaef263172
2018-01-19 09:42:47 -06:00
Jim Chen 149e502c72 Bug 1428182 - 7. Include <link.h> in LUL for Android; r=jseward
Modern NDK headers all have <link.h>, so we should always include it,
and still provide shims for anything we need that's not defined in
<link.h>.

MozReview-Commit-ID: GNBDIe73RFm

--HG--
extra : rebase_source : 1246dce8a7ad201cf4f01de8e4912217636f1fc8
2018-01-30 14:08:23 -05:00
Kris Maglione 918ed6c474 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
extra : intermediate-source : 34c999fa006bffe8705cf50c54708aa21a962e62
extra : histedit_source : b2be2c5e5d226e6c347312456a6ae339c1e634b0
2018-01-29 15:20:18 -08:00
Makoto Kato 7b895ca1a7 Bug 1433775 - Add Linux/arm support to Gecko Profiler. r=mstange
We don't support Android for Gecko Profiler extension yet.

So for investigating arm issue, I would like to add initial support of
Gecko Profiler for Linux/arm.

--HG--
extra : rebase_source : f936a97a87b7eea2ebfefe3cbc7f8791bc90d03a
2018-01-29 18:01:23 +09:00
Cosmin Sabou 9a65a40178 Backed out 3 changesets (bug 1431533) for Android mochitest failures on testEventDispatcher on a CLOSED TREE
Backed out changeset a1eca62826a1 (bug 1431533)
Backed out changeset 34c999fa006b (bug 1431533)
Backed out changeset e2674287e57f (bug 1431533)
2018-01-30 07:17:48 +02:00
Kris Maglione 6476f95b13 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
2018-01-29 15:20:18 -08:00
Brindusan Cristian af8879d1eb Backed out 2 changesets (bug 1431533) for ESlint failures on a CLOSED TREE
Backed out changeset 6e56f4c8843e (bug 1431533)
Backed out changeset 12fc4dee861c (bug 1431533)
2018-01-30 02:32:43 +02:00
Kris Maglione c276bb9375 Bug 1431533: Part 5a - Auto-rewrite code to use ChromeUtils import methods. r=florian
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm

MozReview-Commit-ID: 1Nc3XDu0wGl

--HG--
extra : rebase_source : c004a023389f1f6bf3d2f3efe93c13d423b23ccd
2018-01-29 15:20:18 -08:00
Cosmin Sabou c6a0d55423 Backed out 11 changesets (bug 1428182) for build bustages on pixman-inlines.h:29:10 on a CLOSED TREE
Backed out changeset 84c767de6202 (bug 1428182)
Backed out changeset 429433caa78c (bug 1428182)
Backed out changeset c576e9d1f68f (bug 1428182)
Backed out changeset 092662eab5eb (bug 1428182)
Backed out changeset 4dd7eaff3ab5 (bug 1428182)
Backed out changeset fbbb0745b139 (bug 1428182)
Backed out changeset 1d1278b289b7 (bug 1428182)
Backed out changeset 55891ffb3768 (bug 1428182)
Backed out changeset 4655e1b1b237 (bug 1428182)
Backed out changeset 377eada51b3c (bug 1428182)
Backed out changeset 17c0e373d921 (bug 1428182)

--HG--
rename : ipc/chromium/src/third_party/libevent/patches/android-api-level.patch => ipc/chromium/src/third_party/libevent/patches/android-arc4random-buf.patch
2018-01-30 01:22:33 +02:00
Jim Chen 80635d981e Bug 1428182 - 7. Include <link.h> in LUL for Android; r=jseward
Modern NDK headers all have <link.h>, so we should always include it,
and still provide shims for anything we need that's not defined in
<link.h>.

MozReview-Commit-ID: GNBDIe73RFm

--HG--
extra : rebase_source : f1f2eddc73dc1accb3a1eb8445600b015e9e7d52
2018-01-29 17:38:14 -05:00
Markus Stange 08c6b1b6c0 Bug 1431217 - Fix a typo that caused us to treat the parent process as shutting down when dumping the profile. r=mconley
MozReview-Commit-ID: IMk7VKMR6pE

--HG--
extra : rebase_source : 345ee1248236840a9c2d822b82f72d0b482cb8b4
2018-01-17 16:59:37 -05:00
Bas Schouten a0d06a28fc Bug 1432570: Add support for TRACING_EVENT type markers. r=mstange 2018-01-25 18:47:00 +00:00
Julien Wajsberg 06141f6a5e Bug 1428076 - Add a mochitest r=mstange
MozReview-Commit-ID: EhNoJuMhrAS

--HG--
extra : rebase_source : 7433359ec2c4d0664042b3057006797a15ddfda4
2018-01-24 11:31:50 +01:00
Julien Wajsberg 29de39669c Bug 1428076 - Fix bad JSON format when profiling workers that do nothing r=mstange
When the Gecko Profiler runs, we keep samples and markers for threads in
some occasions (eg when a Worker ends). But we fail to account for the
case where these threads have output no sample and no marker yet.

MozReview-Commit-ID: 2IEghD0v5Qd

--HG--
extra : rebase_source : b1af41c2d24b92c278922940151093f8b7d197db
2018-01-08 18:25:36 +01:00
Byron Campen [:bwc] 816fe1f2b6 Bug 1431755 - Part 3: Remove a redundant dispatch that was causing us to record the duration of _two_ dispatches instead of one. r=mstange
MozReview-Commit-ID: E8lSvMbGjt6

--HG--
extra : rebase_source : a56a4fa76de084d8eeb1baebf520e672ba804119
2018-01-19 10:03:35 -06:00
Byron Campen [:bwc] 8d9cde7d0d Bug 1431755 - Part 2: Teach GeckoProfiler to profile responsiveness on nsIThreads. r=mstange
MozReview-Commit-ID: AqpNf9pDzrg

--HG--
extra : rebase_source : d7c67ec8564345f6b851691f4e3dee666dd025b1
2018-01-19 09:42:47 -06:00
Bas Schouten 3143ad47f1 Bug 1429623: Report tracing events and thread registration to VTune when --enable-vtune is enabled. r=mstange r=ted
MozReview-Commit-ID: I47OIX16ibf
2018-01-19 17:19:29 +01:00
Bas Schouten 16b11ce2ad Backout 9b3656db42a7 (Bug 1429623) for bustage.
MozReview-Commit-ID: 9Ar6Y8MKGB1
2018-01-20 08:15:57 +01:00
Bas Schouten faf37620b4 Bug 1429623: Report tracing events and thread registration to VTune when --enable-vtune is enabled. r=mstange r=ted
MozReview-Commit-ID: I47OIX16ibf
2018-01-19 17:19:29 +01:00
Nika Layzell f5c4dc1b8f Bug 1430850 - Part 3: Expose profiler_add_marker_for_thread to add a marker for a specific thread, r=mstange
MozReview-Commit-ID: 2nyp98oBKHk
2018-01-16 14:07:28 -05:00
Nika Layzell 247e29f4fd Bug 1430850 - Part 2: Change ProfilerMarker to use an internal ThreadId property, rather than the ThreadId entry, r=mstange
MozReview-Commit-ID: J8Ckvmj4En0
2018-01-16 14:07:27 -05:00
Nika Layzell 702f6fd7cf Bug 1430850 - Part 1: Move mThreadId from ThreadInfo to RacyThreadInfo, r=mstange
MozReview-Commit-ID: LE6j8Fm38PK
2018-01-16 14:07:25 -05:00
Chris Peterson 37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Kris Maglione 10f6c3bb88 Bug 1429898: Add active extension details to profiler metadata. r=mstange
MozReview-Commit-ID: CR64i73B4ys

--HG--
extra : rebase_source : cc455a45326921cd1cc60bfbaf1a39bcd18df314
2018-01-11 12:38:31 -08:00
Mark Banner e11ad103d3 Bug 1429705 - Enable ESLint rule mozilla/use-services for tools/profiler. r=mstange
MozReview-Commit-ID: elODEiff9w

--HG--
extra : rebase_source : fb25e0a840f21a09759aca04f643aa74e78b1207
2018-01-10 19:16:17 +00:00
Alexandre Poirot f572e41c43 Bug 1423890 - Add markers for background hangs r=dthayer,mstange
MozReview-Commit-ID: 484UZEbbd12

--HG--
extra : rebase_source : f739ce23944205cb88e8ea40289c8de6f07d1034
2017-12-07 02:35:36 -08:00
Makoto Kato 336ace5ab7 Bug 1397776 - Removing armv6 config support for Android. r=glandium
We no longer support Android/armv6 and we requires NEON for Android/arm, so
we can remove armv6 support for Android.

MozReview-Commit-ID: Hh17BTyE0wR

--HG--
extra : rebase_source : 57e043ecb1bb57a026c0b656b82768b899ddae78
2017-12-15 16:32:54 -06:00
Florian Quèze 0f55cd45be Bug 1421992 - script-generated patch to replace do_execute_soon, do_print and do_register_cleanup with executeSoon, info and registerCleanupFunction, rs=Gijs. 2017-12-21 11:10:23 +01:00
Florian Quèze 032c961e0a Bug 1421992 - script-generated patch to replace do_check_* functions with their Assert.* equivalents, rs=Gijs. 2017-12-21 11:08:17 +01:00
Sylvestre Ledru 9bfe27d903 Bug 1394734 - Replace CONFIG['GNU_C*'] by CONFIG['CC_TYPE'] r=glandium
MozReview-Commit-ID: 7duJk2gSd4m

--HG--
extra : rebase_source : 7312fe276e561e8c034a5f6749774ae812727f9c
2017-12-07 22:09:15 +01:00
David Major ad7ff3a791 Bug 1423287 - Simplify NtCurrentTeb() handling. r=njn 2017-12-06 09:36:00 -05:00
Julian Seward 8e4cb88b72 Bug 1415782 - [clang 5 ASAN] LulIntegration.unwind_consistency | Value of: nTestsPassed == nTests (part 2 of 2). r=glandium.
Fixes the LUL unwind test cases (viz, gtest LulIntegration.unwind_consistency)
when built with Clang 5.

* Increases the test stack size, LUL_UNIT_TEST_STACK_SIZE, from 16KB to
  32KB, since 16KB is gives inadequate margin for the test cases used, and
  is actually too small when with building with ASan enabled.

* In the generated test functions, uses write() calls that do nothing to
  ensure that Clang cannot optimise away the space[] array that is used to
  give different frame sizes to the different test functions.  Without
  these, Clang 5 optimises out this array and that causes all the unwind
  tests to fail.

--HG--
extra : rebase_source : 9d91ea9b08e6771facf7a788163d67f1871f5948
2017-11-21 18:11:46 +01:00
Julian Seward d9619fa122 Bug 1415782 - [clang 5 ASAN] LulIntegration.unwind_consistency | Value of: nTestsPassed == nTests (part 1 of 2). r=njn.
Adds minimal support for reading DWARF CFI pertaining to version 4 of the
standard.  Dwarf 4 CFI appears to have become the default used by Clang
version 5.  There are two changes:

* Accepts cie->version == 4.

* For version 4 CIEs, skips over the two new fields address_size and
  segment_size, but ensures that segment_size is zero.  Adds comments in
  ReadFDEFields about what to do if we ever find a case where segment_size
  is nonzero.

This is in no way full or complete Dwarf 4 support, but it is enough to get
LUL working again with Clang 5 compiled code.

--HG--
extra : rebase_source : f4e21ae5b8d0f219a360d14cc242b2aa812056a0
2017-11-21 18:10:16 +01:00
Nika Layzell a7666fd8fe Bug 1418048 - Add a callback-based Send API to async returning IPDL methods, r=billm
Currently if you write an async IPDL method which has a return value, we expose
a SendXXX method which returns a MozPromise. This MozPromise can then be
->Then-ed to run code when it is resolved or rejected.

Unfortunately, using this API loses ordering guarantees which IPDL provides.
MozPromise::Then takes an event target, which the resolve runnable is dispatched
to. This means that the resolve callback's code doesn't have any ordering
guarantees relative to the processing of other IPC messages coming over the same
protocol.

This adds a new overload to SendXXX with two additional arguments, a lambda
callback which is called if the call succeeds, and a lambda callback which is
called if the call fails. These will be called in order with other IPC messages
sent over the same protocol.

MozReview-Commit-ID: FZHJJaSDoZy
2017-11-20 17:55:32 -05:00
qiaopengcheng-hf@loongson.cn 5ff18c936d Bug 1403438 - Amend profiler-lul code on mips64-linux. r=njn 2017-11-13 14:23:50 +08:00
qiaopengcheng be9033b5a9 Bug 1403438 - Add profiler-lul on mips64-linux. r=sewardj
--HG--
extra : rebase_source : 9f507b59a77785d60a0944baf4dad27ec7d2e1c7
2017-09-28 02:04:00 -04:00
qiaopengcheng 1120b29dd0 Bug 1403421 - Support mips64-linux performance. r=njn 2017-09-28 18:23:00 -04:00
Sylvestre Ledru 514cedaafc Bug 1414636 - Rename the 'register' variable to silent a warning r=jseward
MozReview-Commit-ID: 7gUn991qRzI

--HG--
extra : rebase_source : 1298b4c6c4f2e99be0e114aa19a70b2d9725cc61
2017-11-05 17:31:09 +01:00
Paul Bone ec83bd6518 Bug 1386511 - Part 1: Revise the format of the GC profiler markers. r=jonco, r=mstange
This change also updates the documentation to correct the semantics of GC
slice numbers.
2017-10-31 14:32:49 +11:00
Tristan Bourvon b15e4b2827 Bug 1412648 - Initialize some uninitialized fields in tools/profiler/. r=mstange 2017-10-31 11:20:12 +01:00
Mark Banner 4de6bf22b1 Bug 1411368 - Automatically fix no-multi-spaces issues raised when using ESLint 4. r=mossop
MozReview-Commit-ID: H5YVp3rnzGo

--HG--
extra : rebase_source : 5b45b6c0df834131812d094e975047eaad374e06
2017-10-26 11:47:01 +01:00
Sebastian Hengst af53b8aad8 merge mozilla-central to autoland. r=merge a=merge 2017-10-23 23:52:54 +02:00
Sebastian Hengst 18f1987735 merge mozilla-central to mozilla-inbound. r=merge a=merge 2017-10-23 11:46:34 +02:00
Nicholas Nethercote 3842370ed8 Bug 1405541 (attempt 2) - Split AUTO_PROFILER_LABEL_DYNAMIC into three macros. r=mstange.
It's easy to mess up the scoping so that (a) the label is pushed and then
immediately popped, and/or (b) the string doesn't live long enough. It's also
easy to do a utf16-to-utf8 conversion unnecessarily when the profiler is
inactive. This patch splits that macro into three new ones that are harder to
mess up.

- AUTO_PROFILER_LABEL_DYNAMIC_CSTR: same as current.
- AUTO_PROFILER_LABEL_DYNAMIC_NSCSTRING: for nsCStrings.
- AUTO_PROFILER_LABEL_DYNAMIC_LOSSY_NSSTRING: for nsStrings.

--HG--
extra : rebase_source : 3e2bbec4737b696e1c86579ae54be4cb3186c100
2017-10-13 16:12:57 +11:00
Gerald Squelart d2ed3d6312 Bug 1410252 - Convert 'WrapNotNull(new T(...' to 'MakeNotNull<T*>(...' - r=njn
Most cases where the pointer is stored into an already-declared variable can
trivially be changed to MakeNotNull<T*>, as the NotNull raw pointer will end
up in a smart pointer.

In RAII cases, the target type can be specified (e.g.:
`MakeNotNull<RefPtr<imgFrame>>)`), in which case the variable type may just be
`auto`, similar to the common use of MakeUnique.
Except when the target type is a base pointer, in which case it must be
specified in the declaration.

MozReview-Commit-ID: BYaSsvMhiDi

--HG--
extra : rebase_source : 8fe6f2aeaff5f515b7af2276c439004fa3a1f3ab
2017-10-20 18:25:33 +11:00
Phil Ringnalda 86e513ba69 Backed out changeset 3159df8aca1a (bug 1386511) for browser_TelemetryGC.js timeouts
MozReview-Commit-ID: 9OFS7FTjVis
2017-10-19 20:40:31 -07:00
Paul Bone 7746cd0200 Bug 1386511 - Revise the format of the GC profiler markers. r=jonco 2017-08-23 14:58:44 +10:00
Nicholas Nethercote b66a653de9 Bug 1407458 - Use nsString for Observation filenames. r=erahm.
This avoids some unnecessary string copying.

--HG--
extra : rebase_source : a81a5e1612be2897a4285f5f395e7cb3ed006bc8
2017-10-17 08:22:12 +11:00
Nicholas Nethercote 3076238153 Bug 1409227 (part 2) - Replace nsMemory::Clone(s, strlen(s)+1) with moz_xstrdup(s). r=erahm.
They are equivalent -- both infallible, both requiring measuring the length of
the string -- but moz_xstrdup is much more readable. (One place deals with
16-bit strings and so uses NS_strdup instead, which is also infallible.)

The patch also removes some failure-path code that will never execute due to
the infallibility.

--HG--
extra : rebase_source : 115574cf55db90b60e6bee59e5dc6ee409374159
2017-10-17 13:09:29 +11:00
Nicholas Nethercote 65c894bd04 Bug 1409227 (part 1) - Remove needless duplication of the profile in nsProfiler::GetProfile(). r=mstange.
--HG--
extra : rebase_source : dc546098c3ed7f8b2e162bf6f26ab87191dba186
2017-10-17 13:01:14 +11:00
Nicholas Nethercote f0d3349d01 Bug 1408279 - Make profile JSON easier to read. r=mstange.
Currently the choices of SingleLineStyle and MultiLineStyle are sub-optimal,
which makes debugging of profiles difficult.

- A large chunk of the profile is put on a single line, which is very hard to
  read in a text editor.

- Other short and repetitive constructs are unnecessarily spread across
  multiple lines.

This patch makes things more readable.
2017-10-13 15:32:14 +11:00
Sylvestre Ledru d60d69e2cb Bug 1411001 - Remove the +x permissions on cpp & h files r=froydnj
MozReview-Commit-ID: DjDkL20wRg0

--HG--
extra : rebase_source : a343d83d1f4e97e4ba56d0f57fec93079df0b5ea
2017-10-23 20:59:55 +02:00
Kris Maglione 4a767c7e6e Bug 1404198: Part 2j - Switch to NS_NewTimer* everywhere else. r=njn
MozReview-Commit-ID: LmGIgfmNSmk

--HG--
extra : rebase_source : bf34e852beb0c8f6eafd09184c2e0cda95f95f83
2017-09-24 19:57:48 -07:00
Nicholas Nethercote bbfec72b95 Bug 1406296 (part 3) - Remove the profiler's "gpu" feature. r=mstange,jrmuizel.
This allows a bunch of additional stuff to be removed: ContextStateTracker,
ContextStateTrackerOGL, and GPUMarkerPayload.

--HG--
extra : rebase_source : 879045a9f9ac31ca0beb596964c6c3ef30283a53
2017-10-06 17:35:44 +11:00
Nicholas Nethercote 4bedc03a3d Bug 1406296 (part 2) - Remove the profiler's "layersdump" feature. r=mstange.
Because it just doesn't control any behaviour within the profiler, and it just
duplicates gfxPrefs::LayersDumpTexture().

With this gone, PROFILER_FEATURE_ACTIVE can also be removed.

--HG--
extra : rebase_source : d6718894b8a9332cf73729ea6b7bd2de348817bd
2017-10-06 17:34:22 +11:00
Nicholas Nethercote 706daca552 Bug 1406296 (part 1) - Remove the profiler's "displaylistdump" feature. r=mstange.
It's not useful.

--HG--
extra : rebase_source : b18244b6f1e28b29f1f71a4cca55781316e2cdc5
2017-10-06 17:33:30 +11:00