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

4957 Коммитов

Автор SHA1 Сообщение Дата
Nicholas Nethercote aab625999f Bug 1370329 (part 2) - Add support for profiler labels in mozglue. r=mstange,glandium.
Profiler labels can't currently be used in mozglue, because the profiler's code
is in libxul, and mozglue cannot depend on libxul.

This patch addresses this by basically duplicating AutoProfilerLabel in
mozglue. libxul passes two callback functions to mozglue to do the actual
pushing/popping of labels.

It's an annoying amount of machinery, but it is unavoidable if we want to use
profiler labels within mozglue.

--HG--
extra : rebase_source : 4bcb6fb0f050bba42c23d92d01f9c56611f8518f
2017-06-07 12:36:26 +10:00
Nicholas Nethercote 0be77baa96 Bug 1370329 (part 1) - Clean up the profiler's RAII classes. r=mstange.
This patch does the following renamings, which increase consistency.

- GeckoProfilerInitRAII -> AutoProfilerInit
- GeckoProfilerThread{Sleep,Wake}RAII -> AutoProfilerThread{Sleep,Wake}
- GeckoProfilerTracingRAII -> AutoProfilerTracing
- AutoProfilerRegister -> AutoProfilerRegisterThread
- ProfilerStackFrameRAII -> AutoProfilerLabel
- nsJSUtils::mProfilerRAII -> nsJSUtils::mAutoProfilerLabel

Plus a few other minor ones (e.g. local variables).

The patch also add MOZ_GUARD_OBJECT macros to all the profiler RAII classes
that lack them, and does some minor whitespace reformatting.

--HG--
extra : rebase_source : 47e298fdd6f6b4af70e3357ec0b7b0580c0d0f50
2017-06-07 12:33:19 +10:00
Bill McCloskey 6b3e84ed5f Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Carsten "Tomcat" Book ea1b86680c Backed out changeset 9846de3bd954 (bug 1372405)
--HG--
extra : rebase_source : 5d4a48e8ec394c329994689d938d2a6e9b2752b0
2017-06-20 08:27:02 +02:00
Bill McCloskey 4592152411 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Sylvestre Ledru ea0f1a2acc Bug 1374000 - Add woff2 to the list of thirdparty code r=andi
MozReview-Commit-ID: K02YHvtmBUU

--HG--
extra : rebase_source : 9661194a492b77a0eb58ee648a3343db8b692045
2017-06-18 00:24:03 +02:00
Carsten "Tomcat" Book 3271bd7354 Merge mozilla-central to autoland 2017-06-19 14:52:55 +02:00
Rajesh Kathiriya fafb858b26 Bug 1370225 - Enabled the ESLint comma-style rule across mozilla-central. r=standard8
MozReview-Commit-ID: 9OhLgBpYS4L

--HG--
extra : rebase_source : 5155e715934e7acd2ffadb4856eb91f481cbf56c
2017-06-15 18:24:17 +01:00
Kan-Ru Chen 69d4811faa Bug 1368031 - Fix PProfiler::GatherProfile r=mstange
MozReview-Commit-ID: YzJ9UA6Rj6
2017-06-01 15:57:21 +08:00
Nicholas Nethercote 19e99ca015 Bug 1347274 (part 2, attempt 2) - Make CorePS::ProcessStartTime() lockless. r=mstange.
--HG--
extra : rebase_source : 5b8983cec8db3535b76003369f2ac6f9946a5562
2017-06-01 10:22:20 +10:00
Nicholas Nethercote 3056033889 Bug 1347274 (part 1, attempt 2) - Rename some profiler parameters. r=mstange.
--HG--
extra : rebase_source : 395a45c494573da9281f27fbd7826f7ea5c12e10
2017-06-01 10:21:58 +10:00
Carsten "Tomcat" Book 1a0d9545b9 merge mozilla-inbound to mozilla-central a=merge 2017-05-31 11:28:43 +02:00
Markus Stange e2336b07a8 Bug 1330185 - Use a top-level PProfiler protocol to control the profiler in other processes. r=billm,njn
MozReview-Commit-ID: EROfGuYQ6a0

--HG--
extra : rebase_source : be0aa1b9c7963882e8e7d47964f2da5b670ab10a
extra : intermediate-source : e6f368f2d8741f2a9655b288d49b59fbbd6b90b7
extra : source : 51cdc2541486d5ddf2d385ec0459a9ec38b8775b
2017-05-30 15:06:14 -04:00
Markus Stange 898434e218 Bug 1330184 - Add some GeckoProfiler tests that call functions on a background thread. r=njn
MozReview-Commit-ID: 9fMPyQ909PW

--HG--
extra : rebase_source : 8b9f82520fe693f3772ef6b1dda7f3bd06ac4ea0
2017-05-30 17:48:19 -04:00
Markus Stange 4ee7b100b1 Bug 1330184 - Remove main-thread-only assertions. r=njn
I think all of these assertions are now unnecessary.

MozReview-Commit-ID: 9EI195QsizN

--HG--
extra : rebase_source : 4f03ef02ba6680ee6cad22d5d3f347db7d70aa9c
extra : intermediate-source : 2b8d50fcb20fc0bd808707aae00d6cbcb4536bac
extra : source : 327c145ded03d39970351a9cc01492f0541d9149
2017-05-29 15:16:34 -04:00
Markus Stange 76f9a761a7 Bug 1330184 - Use threadsafe refcounting for nsProfilerStartParams. r=njn
MozReview-Commit-ID: HVihlkBr4r3

--HG--
extra : rebase_source : 7ecd602f8fd3fb1c7b290e0ff88940eb9f774b42
2017-05-31 00:35:15 -04:00
Markus Stange 9413af4371 Bug 1330184 - Register/unregister the IOInterposeObserver on the main thread, regardless of what thread the profiler is started / stopped on. r=njn
MozReview-Commit-ID: 8Y0rspxBJw3

--HG--
extra : rebase_source : 64def3fc572c55e2865f5adc570eb841fc759352
extra : intermediate-source : dbe452a9eebb5aff9fa30afdd402efdcb2b6ad30
extra : source : fd537bffda4b653dc7191434c42d068b1b9c65b8
2017-05-16 17:35:05 -04:00
Markus Stange 5d85a692ae Bug 1330184 - Allow StreamMetaObject to be called on a background thread, but only include startTime and version for those calls. r=njn
MozReview-Commit-ID: 3AuX0a2Brrd

--HG--
extra : rebase_source : 8c5d2b4ccacbbec92711a9561d4166e1e7c376c7
extra : intermediate-source : e13b9e798e16185e54435a0b926970e8de134804
extra : source : edfdb14bd020233fa29771bb0f78bcfc55f6cbb3
2017-05-29 13:44:28 -04:00
Markus Stange b728005923 Bug 1330184 - Allow notifying observers for profiler state changes on background threads. r=njn
MozReview-Commit-ID: GlkVwGTa2b4

--HG--
extra : rebase_source : b04504b06aa80635a50d7ce1dcec43a994d6ba8d
extra : intermediate-source : 52489c7eadaf8cab111eef93187c7ecb1482fe58
extra : source : b8c27d6137a43ecd031f0b58c62752b7a9cefacb
2017-05-30 17:07:56 -04:00
Mark Banner 7e8a66dc9c Bug 1368656 - Fix ./mach eslint on windows - add a return in the for loop when trying extensions to ensure we get the right one. r=florian
MozReview-Commit-ID: FSXANgWWugE

--HG--
extra : rebase_source : 778bd88977927e72718674d4e7a1c2e6b61adb12
2017-05-30 14:14:01 +01:00
Dan Banner ea09f270ab Bug 1368041 - Enable no-array-constructor across mozilla-central r=standard8
MozReview-Commit-ID: EXJNufdKKhJ

--HG--
extra : rebase_source : 66d17c7981c4b0987c482ce092b25990b42c07fb
2017-05-27 15:17:29 +01:00
Paolo Amadini 30ea634bb0 Bug 1242505 - Part 5 - Remove obsolete whitelisting of unhandled rejections. r=Mossop
The whitelisting function thisTestLeaksUncaughtRejectionsAndShouldBeFixed was replaced by expectUncaughtRejection, and existing calls did not take effect anymore.

MozReview-Commit-ID: 3uOxkgWYWEz

--HG--
extra : rebase_source : 5a10a3ebbfe0ce2a801330041f95447c313a9a70
extra : source : 6f0394b523a66dab444b8551deb8f3c6c81d8f31
2017-05-25 15:00:49 +01:00
Sebastian Hengst ea55cd0be2 Backed out changeset 6f0394b523a6 (bug 1242505) 2017-05-28 11:31:01 +02:00
Paolo Amadini 94c629ed8c Bug 1242505 - Part 5 - Remove obsolete whitelisting of unhandled rejections. r=Mossop
The whitelisting function thisTestLeaksUncaughtRejectionsAndShouldBeFixed was replaced by expectUncaughtRejection, and existing calls did not take effect anymore.

MozReview-Commit-ID: 3uOxkgWYWEz

--HG--
extra : rebase_source : 3a7720091180a770b32b595f8094c0d20170166d
2017-05-25 15:00:49 +01:00
tiago 7386600327 Bug 1366081 - Excise 'mobileGUIDFetchBatchSize' and other mobile sync-related constants. r=kitcambridge
MozReview-Commit-ID: 6JTtpWFFyvD

--HG--
extra : rebase_source : f6ca75e91ca38d0d1ba18ff79a0872d96a878954
2017-05-24 03:28:22 -03:00
Rajesh Kathiriya 1e0401a0d8 bug 1346994 - Updated nodejs not found message r=standard8
MozReview-Commit-ID: AKZyW9HPvmY

--HG--
extra : rebase_source : 9cf2befdf785c027843219a095e14d747bbf6155
2017-05-17 23:07:21 +05:30
Nicholas Nethercote a062b9be51 Bug 1366650 (part 2) - In GeckoProfiler, do all pseudo-stack accesses via the PseudoStack class, instead of via raw array manipulation. r=mstange,shu.
- The profiler gives the JS engine a reference to the pseudo-stack via
  SetContextProfiilngStack(). That function now takes a |PseudoStack*| instead
  of a |ProfileEntry*| and pointer to the stack pointer.

- PseudoStack now has a |kMaxEntries| field, which is easier to work with than
  |mozilla::ArrayLength(entries)|.

- AddressOfStackPointer() is no longer needed.

- The patch also neatens up the push operations significantly. PseudoStack now
  has pushCppFrame() and pushJsFrame(), which nicely encapsulate the two main
  cases. These delegate to the updated initCppFrame() and initJsFrame()
  functions in ProfileEntry.

- Renames max_stck in testProfileStrings.cpp as peakStackPointer, which is a
  clearer name.

- Removes a couple of checks from testProfileStrings.cpp. These checks made
  sense when the pseudo-stack was accessed via raw manipulation, but are not
  applicable now because we can't artificially limit the maximum stack size so
  easily.
2017-05-26 09:51:31 +10:00
Nicholas Nethercote 0840bb61c6 Bug 1366650 (part 1) - Move PseudoStack into SpiderMonkey. r=mstange,shu.
This includes renaming its fields to match SpiderMonkey naming conventions
instead of Gecko naming conventions.

This patch is just about moving the code. The next patch will change
SpiderMonkey to actually use PseudoStack directly.

--HG--
extra : rebase_source : 27e77ddf950201eb6bdba60003218056442cf7ab
2017-05-26 09:37:28 +10:00
Edouard Oger c4e6a8f382 Bug 1365375 - Disconnect Sync on account destroyed. r=markh
MozReview-Commit-ID: EVySp2JOgsT

--HG--
extra : rebase_source : e60612d8dedcf46170cf58f47bde2c979ab99d3f
2017-05-23 19:22:49 -04:00
Mark Banner d1dfdb8a14 Bug 1367232 - Clean up various ESLint global definitions in toolkit/. r=mossop
MozReview-Commit-ID: Hhm4YBansg1

--HG--
extra : rebase_source : 3cb49159fa3f5dae12e4eb21f22e747850fdf184
2017-05-19 09:22:48 +01:00
Mark Banner 1e0b8c246f Bug 1366720 - ESLint simpletest and places-overlay environments don't export globals correctly when used outside of mozilla-central. r=mossop
MozReview-Commit-ID: 1Qj63qwjHoo

--HG--
extra : rebase_source : c403ef765a1c0e0a9836270aca69089c6a42f1d4
2017-05-22 11:25:08 +01:00
Nicholas Nethercote d1e495344b Bug 1365854 - Remove FRAME_LABEL_COPY. r=mstange,shu.
ProfileEntry has |string|, which can be static or dynamic, and |dynamicString|.
If |string| is dynamic, the FRAME_LABEL_COPY flag must be set, and it will be
copied into profiler output.

But there is only one place that uses dynamic |string| values, in SpiderMonkey.
And that place doesn't use |dynamicString|. So this patch changes that place to
use an empty |string| and put the old dynamic |string| value in
|dynamicString|. This in turn removes the need for FRAME_LABEL_COPY.

One minor wrinkle is that when |dynamicString| is used the old code put a space
between |string| and |dynamicString|. The new code omits the space if |string|
is empty.

The patch also renames ProfileEntry::string as ProfileEntry::label_, which
better matches how it's used, and ProfileEntry::dynamicString as
ProfileEntry::dynamicString_ so the getter can be renamed dynamicString().
2017-05-18 17:17:46 +10:00
Nicholas Nethercote cbb477c02f Bug 1365515 (part 2, attempt 2) - Remove tick_context_t. r=jseward.
--HG--
extra : rebase_source : 1d9774d694383bdbf25c3c389351c4b7bf3b398a
2017-05-17 17:29:59 +10:00
Nicholas Nethercote f897ce8673 Bug 1365515 (part 1, attempt 2) - Remove profiler support for x86/Darwin. r=mstange.
--HG--
extra : rebase_source : 47f20e763d62c5e3dd0ba662da0822f9cf3e1526
2017-05-17 17:28:59 +10:00
Nicholas Nethercote 282086d9d5 Bug 1366171 - Fix misplaced PSAutoLock. r=mstange.
profiler_resume() mistakenly has the PSAutoLock outside the scope created
specially for it. This patch move the PSAutoLock inside the scope, making it
the same as profiler_pause().
2017-05-19 16:30:06 +10:00
Markus Stange 42b5d166ec Back out bug 1330184 and bug 1330185 because of test failures.
MozReview-Commit-ID: ILD4mevlSU6
2017-05-21 15:11:15 -04:00
Markus Stange b5fdcd479d Bug 1330185 - Use a top-level PProfiler protocol to control the profiler in other processes. r=njn, r=billm
MozReview-Commit-ID: EROfGuYQ6a0

--HG--
extra : rebase_source : de266bda4fc2d6532ff45a6d548b13cd0b4f7206
extra : histedit_source : ad5c4e140c068f17c51d5085fd88ac691e50ab4f
2017-05-21 14:06:50 -04:00
Markus Stange 3bf894099b Bug 1330184 - Remove main-thread-only assertions. r=njn
I think all of these assertions are now unnecessary.

MozReview-Commit-ID: 9EI195QsizN

--HG--
extra : rebase_source : 2a9969dd9e48873f6ec333a5ddfa32b6d938de80
extra : histedit_source : ea4dab2b111e465d3a1e29996cc7f10eb8cdbb67%2C8ab59878e4b1b5a715e0738408c26ac3aa0501e7
2017-05-21 14:29:12 -04:00
Markus Stange cff8ee519e Bug 1330184 - Register/unregister the IOInterposeObserver on the main thread, regardless of what thread the profiler is started / stopped on. r=njn
MozReview-Commit-ID: 8Y0rspxBJw3

--HG--
extra : rebase_source : f88773d3f62a6399299101f84b890d3e253d664c
extra : histedit_source : 4c9a8264e015205a68394fa4e5030082244594f1
2017-05-16 17:35:05 -04:00
Markus Stange 11d48ea717 Bug 1330184 - Allow StreamMetaObject to be called on a background thread, but only include startTime and version for those calls. r=njn
MozReview-Commit-ID: 3AuX0a2Brrd

--HG--
extra : rebase_source : 35f0280c1dcbbcee6e1a8c0c1239f22e817ca1b9
extra : histedit_source : 4f0da56858ced5e3dcc88c34806228f75a25a875
2017-05-04 17:24:56 -04:00
Markus Stange eede579636 Bug 1330184 - Allow notifying observers for profiler state changes on background threads. r=njn
If NotifyObservers is called on a background thread, dispatch a runnable to
the main thread which will send the observer notification. This can result in
awkward orders of the notifications if the profiler functions are called in
quick succession on both the main thread and another thread, but I'm not sure
what to do about that.

MozReview-Commit-ID: GlkVwGTa2b4

--HG--
extra : rebase_source : 30537a31cc828ad7828e41c2885d84a8299a5e70
extra : source : b8c27d6137a43ecd031f0b58c62752b7a9cefacb
extra : histedit_source : f1340ef14acde098de281b81d5ea89e386e7ab42
2017-05-15 19:43:08 -04:00
Nicholas Nethercote caf0e9ec84 Bug 1367654 (part 2) - In GeckoProfiler.h, rename Sampler* as Profiler*. r=mstange.
Because everything else in this file is called ProfilerFoo or PROFILER_FOO.

--HG--
extra : rebase_source : ddab03809d321d4a301f309750e9cf55a528d467
2017-05-26 14:54:33 +10:00
Mark Banner 0ce286101c Bug 1359011 - Make the mozilla/recommended eslint configuration the default for the whole tree. r=mossop
MozReview-Commit-ID: HtUW43tCli1

--HG--
extra : rebase_source : 6496bc47860d9c1ab522a78e73b41550700021cb
2017-04-25 20:12:21 +01:00
Ryan VanderMeulen 96eca59299 Merge m-c to autoland. a=merge 2017-05-19 12:26:48 -04:00
Ryan VanderMeulen acb2f518fc Merge inbound to m-c. a=merge 2017-05-19 11:46:56 -04:00
Nicholas Nethercote 7d44af05e2 Bug 1365824 - Remove STORE_SEQUENCER. r=froydnj.
It's a software memory barrier, and not a very strong one. If the values it is
protecting are Atomic, that provides a stronger hardware memory barrier.

This patch removes it, and changes one of the values it was protecting from
|volatile| to Atomic. (The other value it was protecting was already Atomic.)
2017-05-18 13:24:13 +10:00
Mark Banner e123b6dfb8 Bug 1363795 - Enable some Mozilla ESLint recommended rules for dom/indexedDB/test (no-undef). r=bevis
MozReview-Commit-ID: G6uRTV9i0uX

--HG--
extra : rebase_source : d882067602831bc2a257283aa2e70529568ddf0f
2017-05-10 17:05:18 +01:00
Iris Hsiao c51e02e1de Merge mozilla-central to autoland 2017-05-19 11:29:00 +08:00
Iris Hsiao 02cae69058 Backed out 4 changesets (bug 1357829) for build bustage in xpcshell\selftest.py on windows 8 x64 opt. a=backout
Backed out changeset 8ea202bb1103 (bug 1357829)
Backed out changeset cebe4d7abeda (bug 1357829)
Backed out changeset 378d473c9619 (bug 1357829)
Backed out changeset 86ebe868d443 (bug 1357829)
2017-05-19 11:27:38 +08:00
Wes Kocher 90573b0612 Merge m-c to autoland, a=merge
MozReview-Commit-ID: FYdNNRDmEla
2017-05-18 17:21:30 -07:00
Bryce Van Dyk 09c8f4577b Bug 1365414 - Update eslint-plugin-mozilla to also search for MC root from CWD. r=standard8
The eslint-plugin-mozilla currently searches for Mozilla Central root by
walking up from its installed dir. However, if the plugin is installed outside
of central, such as globally, it will not find the root. This changeset
retains that behaviour, but will also perform the same check from the current
working directly before failing.

MozReview-Commit-ID: 2L3JqLTuVDS

--HG--
extra : rebase_source : e24ddc726cb2470f7165f028f71416e942c44f87
2017-05-18 08:09:45 +12:00
Wes Kocher 0174ce8ebb Merge inbound to m-c a=merge
MozReview-Commit-ID: AVhTkLAYIv7
2017-05-18 17:13:28 -07:00
Michael Layzell 8a302e6be2 Bug 1357829 - Part 4: Remove TickController, r=njn
MozReview-Commit-ID: 2IHa6ybR9ug
2017-05-18 13:56:20 -04:00
Michael Layzell e62bfa945f Bug 1357829 - Part 3: Remove profiler_get_stack_top, r=njn
MozReview-Commit-ID: C4DvuOvYSrs
2017-05-18 13:56:20 -04:00
Michael Layzell dd07e2a56b Bug 1357829 - Part 1: Expose profiler_suspend_and_sample_thread, r=njn
This patch performs a refactoring to the internals of the profiler in order to
expose a function, profiler_suspend_and_sample_thread, which can be called from a
background thread to suspend, sample the native stack, and then resume the
target passed-in thread.

The interface was designed to expose as few internals of the profiler as
possible, exposing only a single callback which accepts the list of program
counters and stack pointers collected during the backtrace.

A method `profiler_current_thread_id` was also added to get the thread_id of the
current thread, which can then be passed by another thread into
profiler_suspend_sample_thread to sample the stack of that thread.

This is implemented in two parts:

1) Splitting SamplerThread into two classes: Sampler, and SamplerThread.

Sampler was created to extract the core logic from SamplerThread which manages
unix signals on android and linux, as well as suspends the target thread on all
platforms. SamplerThread was then modified to subclass this type, adding the
extra methods and fields required for the creation and management of the actual
Sampler Thread.

Some work was done to ensure that the methods on Sampler would not require
ActivePS to be present, as we intend to sample threads when the profiler is not
active for the Background Hang Reporter.

2) Moving the Tick() logic into the TickController interface.

A TickController interface was added to platform which has 2 methods: Tick and
Backtrace. The Tick method replaces the previous Tick() static method, allowing
it to be overridden by a different consumer of SuspendAndSampleAndResumeThread,
while the Backtrace() method replaces the previous MergeStacksIntoProfile
method, allowing it to be overridden by different consumers of
DoNativeBacktrace.

This interface object is then used to wrap implementation specific data, such as
the ProfilerBuffer, and is threaded through the SuspendAndSampleAndResumeThread
and DoNativeBacktrace methods.

This change added 2 virtual calls to the SamplerThread's critical section, which
I believe should be a small enough overhead that it will not affect profiling
performance. These virtual calls could be avoided using templating, but I
decided that doing so would be unnecessary.

MozReview-Commit-ID: AT48xb2asgV
2017-05-18 13:56:20 -04:00
rforbes 5fa372aaa0 Bug 1365994 - Update libfuzzer r=decoder
MozReview-Commit-ID: GCwIIZd5PTS
***
1365994 - update moz.build for libfuzzer

MozReview-Commit-ID: IxbLnviJC08

--HG--
extra : rebase_source : 2ca4965181388fa113e2781fbd14b5f5ae2bbc4b
2017-05-18 10:23:05 -07:00
Mark Banner 4fb45e5b8c Bug 1365412 - Clean up various ESLint global definitions in browser/. r=mossop
MozReview-Commit-ID: JqAm9x1XGCM

--HG--
extra : rebase_source : e9215288195f1fe683832db53d87dbe77c697b4c
2017-05-16 22:22:42 +01:00
Mark Banner 2451fe6f08 Bug 1361760 - Enable some Mozilla ESLint recommended rules for dom/indexedDB/test/unit. r=bevis
MozReview-Commit-ID: CM8apJcdRVs

--HG--
extra : rebase_source : 06d8d2b291dbd608ba68e5f7f9c622592cfd3cb6
2017-04-25 21:53:00 +01:00
Mark Banner 07710f2459 Bug 1365555 - eslint-plugin-mozilla fails when used with babel-eslint, provide an addition argument for the options. r=florian
MozReview-Commit-ID: 1L3Ysj31gfL

--HG--
extra : rebase_source : d3b8c3d87fe57af67fcc50e73b8d87069c455436
2017-05-17 11:34:26 +01:00
Swapnesh Kumar Sahoo 1e0c9f7200 Bug 1302773 - Install tox in docker image in MozReview; r=dustin
MozReview-Commit-ID: 3jiVsZOrvW9

--HG--
extra : rebase_source : 516ddf063ed6a15e397cb782262fa15ccb533969
2017-05-13 02:31:37 +05:30
Carsten "Tomcat" Book 6bd33f52d5 merge mozilla-inbound to mozilla-central a=merge 2017-05-17 11:16:52 +02:00
David Major 519ddbd6c7 Bug 1349801: Allow sub-millisecond profiler intervals with a busy wait on Windows. r=mstange
Given that this basically hogs a core per Firefox process, this code only kicks in if you explicitly select a sub-millisecond resolution.

--HG--
extra : rebase_source : 58ca6f8f6537bc4b809e1634ed177c5d47fd499c
2017-05-16 11:07:28 -04:00
David Major 546b2aa408 Bug 1349801: Make aMicroseconds unsigned to avoid a bunch of checks. r=mstange
We already do a max(0,...) before calling anyway.

--HG--
extra : rebase_source : 6cb3fa135e87cb12152e5b2cc8c2a7640489a0c4
2017-05-16 11:06:18 -04:00
David Major 8184a04278 Bug 1349801: Make SleepMicro a method of SamplerThread. r=mstange
So that I can use mIntervalMicroseconds in a later patch.

--HG--
extra : rebase_source : bd7f3de95ca06c19b3572f20fed8f679600ebacb
2017-05-16 11:03:33 -04:00
Carsten "Tomcat" Book e83697008e merge mozilla-inbound to mozilla-central a=merge 2017-05-16 15:04:38 +02:00
Mike Hommey 782725e19a Bug 1363992 - Remove jemalloc 4. r=njn
--HG--
extra : rebase_source : 9794320e96279cbb8b7b66db6720c959eaa6a95b
2017-05-11 13:23:07 +09:00
Nicholas Nethercote add1b59694 Bug 1362894 - Make profiler_call_{enter,exit} |inline|. r=mstange.
Bug 1359000 moved these functions from GeckoProfiler.h to platform.cpp, which
allowed a lot of follow-up simplifications. But it hurt performance.

This patch moves them back to GeckoProfiler.h and makes them |inline| again.
This required adding a second TLS pointer, sPseudoStack. Comments in the patch
explain why.

--HG--
extra : rebase_source : 4198e32b9e251f4014bce890936f4f85dabeb8ab
2017-05-10 20:13:21 +10:00
Rajesh Kathiriya 00a6026fe9 bug 1359019 - Added Eslint file for the eslint-plugin-mozilla configs r=standard8
MozReview-Commit-ID: 9g9QC6EdJ2a

--HG--
extra : rebase_source : af29a5c7daf3b358cf543654e0e2aa2ebc79563f
2017-05-11 23:54:25 +05:30
Kris Maglione d7d1812e8e Bug 1348031: Part 1 - Allow specifying fractional-millisecond startup profiling interval. r=mstange
MozReview-Commit-ID: Ga1ebO03gp5

--HG--
extra : rebase_source : caaff059a1efd1f15660003124dfac324e6b9c93
2017-05-15 14:19:12 -07:00
Jan Beich 05df348a87 Bug 1365269 - Unbreak non-GeckoProfiler platforms after bug 1362894. r=njn
MozReview-Commit-ID: GzctdvqE3ln

--HG--
extra : rebase_source : 850cc12d2d9db0964dd53014a103202f4afd1fbf
2017-05-16 14:43:27 +00:00
Mark Banner 9900e10003 Bug 1361976 - ESLint hooks should ensure that the ESLint setup is up to date. r=mossop
MozReview-Commit-ID: jhhCM3JRCU

--HG--
rename : tools/lint/eslint.lint.py => tools/lint/eslint/setup_helper.py
extra : rebase_source : b2468cd3d6366a29432d745de10633e214ad2c48
2017-05-16 14:34:58 +01:00
Florian Quèze 67e56b7404 Bug 1353542 - Add an eslint rule deprecating usage of Task.jsm in browser/ and toolkit/, r=Mossop. 2017-05-12 14:54:42 +02:00
Ehsan Akhgari 8a04849cee Bug 1362814 - Part 2: Move GeckoProfilerReporter to its own header; r=mstange
This allows us to get rid of the nsIMemoryReporter.h inclusion in GeckoProfiler.h.
That brings XPCOM string headers with it.
2017-05-12 02:35:09 -04:00
Ehsan Akhgari 9fc6c978e3 Bug 1362814 - Part 1: Remove an unneeded inclusion from GeckoProfiler.h; r=mstange 2017-05-12 02:35:09 -04:00
Mark Banner 2bf9485071 Bug 1362947 - Upgrade eslint-plugin-html to 2.0.3 to pick up --fix support. r=jaws
MozReview-Commit-ID: 5fVG7akPnGM

--HG--
extra : rebase_source : e462e84bf8f2ffd893d1fd6b5ea14bbc093168dd
2017-05-08 10:29:47 +01:00
Sebastian Hengst 95a418ca5b Backed out changeset e0f9c56c15f0 (bug 1362947) for linting failures, e.g. at accessible/tests/mochitest/jsat/doc_content_text.html:15. r=backout 2017-05-11 10:15:55 +02:00
Mark Banner 256aeb441c Bug 1362947 - Upgrade eslint-plugin-html to 2.0.3 to pick up --fix support. r=jaws
MozReview-Commit-ID: 5fVG7akPnGM

--HG--
extra : rebase_source : f1b9eeb1b2048b551ee8c0a596e6395d0031cc4d
2017-05-08 10:29:47 +01:00
Markus Stange 7221a12bad Bug 1362800 - Add a way to get the profile as an array buffer. r=njn
MozReview-Commit-ID: 6qpcm3LQn1r

--HG--
extra : rebase_source : 9a4e2f30aed82ed31c2c3cb79b692c3186f6b5b8
2017-05-10 17:08:46 -04:00
Wes Kocher cc7a1f5b9b Backed out 2 changesets (bug 1362800) for eslint failures a=backout
Backed out changeset 0492e6f16df1 (bug 1362800)
Backed out changeset 785cf0c4b67b (bug 1362800)

MozReview-Commit-ID: EY2RYz7lwtI
2017-05-10 14:42:49 -07:00
Markus Stange 605e10336e Bug 1362800 - Add a way to get the profile as an array buffer. r=njn
MozReview-Commit-ID: 6qpcm3LQn1r

--HG--
extra : rebase_source : 9a4e2f30aed82ed31c2c3cb79b692c3186f6b5b8
2017-05-10 17:08:46 -04:00
Markus Stange f10afd04ef Bug 1358583 - Handle NS_DispatchToMainThread failures gracefully. r=njn
MozReview-Commit-ID: GP1yC1CL9GA

--HG--
extra : rebase_source : ee0585c08b7bd21c1269063fd97e5f51690f4302
2017-05-10 17:05:00 -04:00
Mark Hammond 9761a9f6b7 Bug 1361965 - Provide access to a formautofill storage singleton. r=lchang
MozReview-Commit-ID: 6IbeuOmONxb

--HG--
extra : rebase_source : 44c5c1536b41457e945ab3e00466489929e163ff
2017-05-04 18:25:46 +10:00
Markus Stange be06502b38 Bug 1363475 - Fix TaskTracer build failure. r=njn
MozReview-Commit-ID: 7ENK05KNcGn

--HG--
extra : source : dad7932cef06e7ac999a55c76d14d5f8d8a721f6
2017-05-04 17:26:54 -04:00
Wes Kocher 91617240e6 Merge m-c to autoland, a=merge 2017-05-09 14:59:18 -07:00
Markus Stange 7e2e8d71b5 Bug 1353349 - Don't attempt to put empty profiles into the processes array. r=froydnj
MozReview-Commit-ID: HFjLEaqippx

--HG--
extra : rebase_source : f66d2188495fbc68bf68fe1ce47a6e2b65eb544f
2017-05-09 15:40:50 -04:00
Carsten "Tomcat" Book 76ca853e3e Merge mozilla-central to mozilla-inbound 2017-05-09 14:40:11 +02:00
Steve Fink 7ef280069e Bug 1322560 - Record minor GC timings in profiles, r=jonco, mccr8, mstange
--HG--
extra : rebase_source : 073eceb4216b0505f8cbce0947e3e5091626ead1
2017-04-25 13:24:34 -07:00
Steve Fink 4b00aab714 Bug 1322560 - Inject detailed GC timing info into profiles, r=mstange
--HG--
extra : rebase_source : fdd7f21bbb783ee759d3b0b614264d078fa2213f
extra : source : 5fe280e53d4f474f5f16ff834e0b9cf55745d746
2017-05-02 16:13:49 -07:00
Nicholas Nethercote 5d0d883f35 Bug 1361009 - Remove MOZ_WIDGET_GONK from the profiler. r=jseward.
This removes the need for PROFILER_LIKELY_MEMORY_CONSTRAINED.

The patch also removes PROFILE_JAVA, USE_FAULTY_LIB, CONFIG_CASE_1,
CONFIG_CASE_2 and replaces all their uses with GP_OS_linux or GP_OS_android.

Finally, the patch removes a bogus |defined(GP_OS_darwin)| condition in
platform-linux-lul.cpp.

--HG--
extra : rebase_source : 77d1c625d65ddf551ab8cd4b962ae48c1a54466c
2017-05-08 07:09:33 +10:00
Sebastian Hengst 52fa659b28 Backed out changeset aefe9ec739e1 (bug 1362814) for Windows bustage in nsStringFwd.h. r=backout 2017-05-08 00:03:51 +02:00
Ehsan Akhgari e004b8d2aa Bug 1362814 - Part 0: Remove an unneeded inclusion from GeckoProfiler.h 2017-05-07 17:17:21 -04:00
Carsten "Tomcat" Book fdc689ba16 merge mozilla-inbound to mozilla-central a=merge 2017-05-05 15:17:26 +02:00
Nicholas Nethercote ea25e62e3c Bug 1360471 (part 4) - Use a bitfield to represent profiler features. r=mstange.
Currently the profiler mostly uses an array of strings to represent which
features are available and in use. This patch changes the profiler core to use
a uint32_t bitfield, which is a much simpler and faster representation.
(nsProfiler and the profiler add-on still use the array of strings, alas.) The
new ProfilerFeature type defines the values in the bitfield.

One side-effect of this change is that profiler_feature_active() now can be
used to query all features. Previously it was just a subset.

Another side-effect is that profiler_get_available_features() no longer incorrectly
indicates support for Java and stack-walking when they aren't supported. (The
handling of task tracer support is unchanged, because the old code handled it
correctly.)
2017-05-01 14:23:34 +10:00
Nicholas Nethercote cc78872f8c Bug 1360471 (part 3) - Rename various "thread name filters" identifiers as "filters". r=mstange.
The new names are more concise and matches common usage elsewhere (e.g.
profiler_start() arguments).

This patch is similar to bug 1358074 part 5.
2017-05-01 13:42:53 +10:00
Nicholas Nethercote ebe44f1856 Bug 1360471 (part 2) - Rename profiler_get_features() as profiler_get_available_features(). r=mstange.
It clarifies that it's not just the features chosen in profiler_start().
2017-05-01 12:07:17 +10:00
Nicholas Nethercote de4eac378e Bug 1360471 (part 1) - Make nsIProfilerStartParams only usable in C++. r=mstange.
The patch also makes the |entries| and |interval| fields readonly, because they
are never changed.
2017-05-01 11:53:18 +10:00
Wes Kocher 4e89a77541 Merge m-c to autoland, a=merge
MozReview-Commit-ID: F7qkNALe0WT
2017-05-03 13:52:24 -07:00
Wes Kocher 21203b47b5 Merge inbound to m-c a=merge
MozReview-Commit-ID: JgXkqrOwl3N
2017-05-03 13:40:24 -07:00
Mark Banner 72059d82da Bug 1360595 - Add a git pre-commit hook for running ESLint. r=mossop
MozReview-Commit-ID: 1YJL5Sd4dlb

--HG--
rename : tools/mercurial/eslintvalidate.py => tools/lint/eslint/hook_helper.py
extra : rebase_source : eec3ee2761dd7178de1562229bfda24c0859b4ae
2017-04-28 12:19:15 +01:00
Mark Banner 046debbc74 Bug 1360595 - Make the ESLint Mercurial pre-commit hook be run in and pass flake8 validation. r=mossop
MozReview-Commit-ID: 1GW59lKpVrI

--HG--
extra : rebase_source : bad1919b52fc29a9874090f314ad682e72840f70
2017-04-28 12:15:56 +01:00
Jim Chen 3434ba087b Bug 1360322 - 3. Only build LUL on supported architectures; r=mstange
Only build LUL and its tests on ARM, x86, and x86_64, because only those
architectures are currently supported by LUL.
2017-05-03 11:36:18 -04:00
Jim Chen 7041014748 Bug 1360322 - 2. Add initial AArch64 support to Gecko profiler; r=mstange
Add enough AArch64-specific code for the Gecko profiler to build.
2017-05-03 11:36:18 -04:00
Jim Chen 28cf921283 Bug 1360322 - 1. Convert tools/profiler/moz.build to Unix line ending; r=me 2017-05-03 11:36:18 -04:00
Kershaw Chang e8df9986bf Bug 1351281 - Remove NetworkPrioritizer.jsm, r=dao
Since Necko has already given higher priority to http transactions from the focused window, we don't need NetworkPrioritizer.jsm anymore.
2017-05-03 03:28:00 +02:00
Dan Banner f2a6a685fe Bug 1359540 - Enable the Mozilla ESlint recommended rules for services/. r=markh
MozReview-Commit-ID: D6qH5XtEtHO

--HG--
extra : rebase_source : 8e4c319c7fb8b727ac0193e5dd78411e1ec2785c
2017-04-27 17:24:18 +01:00
Dan Banner c07b5f8b23 Bug 1360293 - Enable the Mozilla ESlint recommended rules for tools/. r=jryans
MozReview-Commit-ID: JMcgZ9taEV5

--HG--
extra : rebase_source : 806d9aa8c470ab35253682a5f16e528ca8d73cc5
2017-05-01 11:38:39 +01:00
Edouard Oger b80261a3ec Bug 1358648 part 3 - Remove Async, Services and XPCOMUtils from util.js. r=markh
MozReview-Commit-ID: 8na204K9cXp

--HG--
extra : rebase_source : 96e7738aa6612cf67543d50053f50c2bccf1ab7e
2017-05-02 16:57:37 -04:00
Edouard Oger abba8c5b31 Bug 1358648 part 2 - Remove util.js Svc.{DefaultPrefs,Session,Idle, FormHistory} and Str. r=markh
MozReview-Commit-ID: Jc1th8Snvhv

--HG--
extra : rebase_source : dd950a5d7bb0f2cb2ea4f32c7b61eb2a15ae327d
2017-05-02 18:30:23 -04:00
David Major f7b2b2533f Bug 1360575: Use PR_SetCurrentThreadName to set the sampler thread's name on all platforms. r=mstange 2017-05-01 22:56:47 -04:00
David Major 8040b396bd Bug 1351838: Don't sprintf within the profiler since it may take a lock. r=froydnj
--HG--
extra : rebase_source : 8d5f8c4fc5a5f205653db12fb34f9cd51fddfc65
2017-05-01 17:57:12 -04:00
David Major e5d98f2a57 Bug 1360642: Increase SAMPLER_MAX_STRING_LENGTH to capture more URLs. r=mstange
--HG--
extra : rebase_source : b4cbbce0b1240190d93488daa06456536588cf55
2017-05-01 16:26:39 -04:00
Michael Layzell 58464c1919 Bug 1346415 - Use FramePointerStackWalk for less deadlocking when stackwalking on x86, r=njn
MozReview-Commit-ID: CAHarvGSuTY
2017-05-01 13:40:37 -04:00
Nicholas Nethercote 31a9d19faa Bug 1360442 - Fix up macros in GeckoProfiler.h. r=mstange.
- Use PROFILER_ consistently as the prefix for macros in this file. (As opposed
  to PROFILE_ or SAMPLE_ or SAMPLER_ or MOZ_ or PLATFORM_ or no prefix.)

- Split overly long macros across multiple lines.

- Fix some macro indenting.
2017-04-28 15:57:03 +10:00
Nicholas Nethercote d79729cfc6 Bug 1359717 - Remove unnecessary SetIsPaused() calls. r=mstange.
We pause/unpause the profiler before/after some streaming operations. But these
pause/unpause pairs occur with gPSMutex locked, and ActivePS::IsPaused() also
requires that gPSMutex be locked. Therefore these pause/unpause pairs cannot
be observed, and so this patch removes them.
2017-04-27 15:57:35 +10:00
Nicholas Nethercote 93b0b152aa Bug 1123754 (part 2) - Move ProfilerMarker into ProfilerMarker.h. r=mstange.
ProfilerMarker is simple enough that it's best to fully define it in
ProfilerMarker.h, without introducing a ProfilerMarker.cpp.

This requires moving STORE_SEQUENCER() into its own header, StoreSequencer.h.

As a result, the following types are no longer visible outside the profiler:
ProfilerMarker, ProfilerLinkedList, ProfilerMarkerLinkedList,
ProfilerSignalSafeLinkedList. (PseudoStack.h now contains the PseudoStack class
and nothing else.)

The patch also makes the following non-obvious changes.

- It changes ProfilerMarker::{mMarkerName,mPayload} to unique pointers, which
  removes the need for an explicit ~ProfilerMarker().

- It removes ProfilerMarker::GetMarkerName(), because that method is only used
  within ProfilerMarker itself.

--HG--
extra : rebase_source : 22bdfb1c9c30751253ed66352d7edd51d308152d
2017-04-27 07:36:22 +10:00
Nicholas Nethercote 273ec65c56 Bug 1123754 (part 1) - Rename ProfilerMarkers.{h,cpp} as ProfilerMarkerPayload.{h,cpp}. r=mstange.
Because ProfilerMarkerPayload is the main type defined in these files, and
because the next patch is going to introduce ProfilerMarker.{h,cpp}, which
would be confusingly similar to the old names.

--HG--
rename : tools/profiler/core/ProfilerMarkers.cpp => tools/profiler/core/ProfilerMarkerPayload.cpp
rename : tools/profiler/public/ProfilerMarkers.h => tools/profiler/public/ProfilerMarkerPayload.h
extra : rebase_source : df22a2ab3867650348ae78fe959ff0366aff230b
2017-04-27 07:36:19 +10:00
Nicholas Nethercote 4e6950332a Bug 1359000 (part 7) - Move mContext and mJSSampling from RacyThreadInfo to ThreadInfo. r=mstange.
None of the accesses to these fields occur in hot operations, so it's
reasonable to do them with gPSMutex held. As a result, mJSSampling doesn't need
to be Atomic<>, and mContext's lack of Atomic-ness is no longer a cause for
concern.

This required adding an extra field, mJSContext, to TickSample.

--HG--
extra : rebase_source : 1485de5e493cef655233507248006574d0ab6ebd
2017-04-27 07:36:17 +10:00
Nicholas Nethercote 93d021e19b Bug 1359000 (part 6) - Split off RacyThreadInfo from PseudoStack. r=mstange.
PseudoStack is misnamed: it contains the pseudo-stack plus other stuff that is
accessed via TLS.

This patch moves the non-pseudo-stack parts of PseudoStack into a new type
called RacyThreadInfo, which is a subclass of PseudoStack. The patch also
capitalizes the first letter of the names of methods that it moves.

This means that PseudoStack is now accurately named. Also non-pseudo-stack
parts are now no longer visible outside the profiler, which is nice.

--HG--
extra : rebase_source : c110acfb6d2a1527ed33cc073fab3fb188851b22
2017-04-27 07:36:15 +10:00
Nicholas Nethercote 9a52c4f399 Bug 1359000 (part 5) - Introduce TLSInfo. r=mstange.
Currently a reference to each thread's PseudoStack is stored in tlsPseudoStack.
This patch changes the TLS reference to refer to the enclosing ThreadInfo
instead. This allows profiler_clear_js_context() to access the current thread's
ThreadInfo via TLs, rather than searching with FindLiveThreadInfo().

The patch also encapsulates the TLS within a new class called TLSInfo. This
class allows access to the PseudoStack without protection from gPSMutex, but
access to the enclosing ThreadInfo requires a PSLockRef. This maintains the
current access regime.

--HG--
extra : rebase_source : de9967f6c055061bb65930ffd02e369703b1362e
2017-04-27 07:36:13 +10:00
Nicholas Nethercote 9471adc672 Bug 1359000 (part 4) - De-inline profiler_call_{enter,exit}. r=mstange.
This possibly incurs an extra function call (depends on exactly how much inling
the compiler does). But it helps enormously with subsequent refactorings,
because PseudoStack (and related types) don't need to be visible in
GeckoProfiler.h, which is exported outside the profiler.

--HG--
extra : rebase_source : f2dc5952d7444dfe12e627e86e6d37632b283107
2017-04-27 07:36:11 +10:00
Nicholas Nethercote 0510e9b058 Bug 1359000 (part 3) - Rename some "stack" variables as "pseudoStack". r=mstange.
"pseudoStack" more closely matches the type name, and is more specific.

--HG--
extra : rebase_source : 4605c66925f29fae0a4c800a4459a7904a6187ab
2017-04-27 07:36:09 +10:00
Nicholas Nethercote 7fc314e4d2 Bug 1359000 (part 2) - Tweak manual polling of profiler threads. r=mstange.
This patch moves the manual polling up into the preceding loops, which is a
better place for it.

--HG--
extra : rebase_source : c95932d8f66635b9ca435f30bae78585dd7e04ca
2017-04-24 09:49:28 +10:00
Nicholas Nethercote e2606aa433 Bug 1359000 (part 1) - Remove unused method PseudoStack::push. r=mstange.
--HG--
extra : rebase_source : efff90c7b1de25035a1e9cccf5a8c6027c7a54d9
2017-04-24 09:41:31 +10:00
Wes Kocher 2aa72d4cdc Merge inbound to central, a=merge
MozReview-Commit-ID: HZUHBRK4UmL
2017-04-27 13:00:07 -07:00
Nicholas Nethercote 22e24ef94a Bug 1358074 (part 7) - Split PS in two. r=mstange.
PS contains some state that is always valid, and some state that is only valid
when the profiler is active. This patch does the following.

- Splits PS into two parts for the two kinds of state: CorePS and ActivePS.

- Moves gPS (now split in two) into CorePS and ActivePS, as static instances,
  to improve encapsulation. This required changing all the state getters and
  setters into static methods.

- Existence tests for CorePS and ActivePS are now done via the Exists()
  methods.

Advantages of this change:

- It's now clear which parts of the global state (most of it!) are valid only
  when the profiler is active, and we don't have to invalidate those parts with
  zero/null/false when the profiler stops.

- Better OOP: more use of constructors and destructors, and more |const| to
  indicate what state is immutable.

- With the old code there were some places where the order of things required
  care, but with the new code it's not possible to get the order wrong.

--HG--
extra : rebase_source : dba177acb41e4dc2103ace2212ab5ae1f7b418ce
2017-04-21 13:28:23 +10:00
Carsten "Tomcat" Book e1e203f1f5 Merge mozilla-central to autoland 2017-04-27 16:36:41 +02:00
Wes Kocher 226702fd85 Merge m-c to autoland a=merge
MozReview-Commit-ID: LOGgOErcV9L
2017-04-26 17:43:38 -07:00
Carsten "Tomcat" Book 68e9a2dfd5 Merge mozilla-central to mozilla-inbound 2017-04-26 09:04:59 +02:00
Carsten "Tomcat" Book 8f4e4ca99b merge mozilla-inbound to mozilla-central a=merge 2017-04-26 08:41:31 +02:00
Carsten "Tomcat" Book d9cce3c040 merge autoland to mozilla-central a=merge 2017-04-26 08:40:02 +02:00
Nicholas Nethercote bc1d6a21a2 Bug 1358320 - Make TimeStamp::ProcessCreation()'s outparam optional. r=gsvelto.
TimeStamp::ProcessCreations()'s aIsInconsistent outparam is ignored by the
majority of its caller. This patch makes it optional. Notably, this makes
ProcessCreation() easier to use in a constructor's initializer list.
2017-04-26 14:55:54 +10:00
Wes Kocher 5e8bdb175d Merge inbound to m-c a=merge
MozReview-Commit-ID: A85cs7Yriqj
2017-04-25 13:53:00 -07:00
Nicholas Nethercote 213518b7e8 Bug 1358074 (part 6, attempt 2) - Don't use mWasPaused on Android. r=mstange.
--HG--
extra : rebase_source : 99da4bfb335d27b5ea35ce10a149c82abd13ca77
2017-04-21 13:27:59 +10:00
Nicholas Nethercote 42226dcae0 Bug 1358074 (part 5, attempt 2) - Rename mThreadNameFilters as mFilters. r=mstange.
--HG--
extra : rebase_source : 4d26f553136268ac0b20448708254bdbf972f411
2017-04-21 13:27:55 +10:00
Nicholas Nethercote f51b56128c Bug 1358074 (part 4, attempt 2) - Rename PS::{Mutex,AutoLock,LockRef} as PS{Mutex,AutoLock,LockRef}. r=mstange.
--HG--
extra : rebase_source : e1ea40df9197658b9c3b950e5f259206c6a3785b
2017-04-21 13:27:53 +10:00
Nicholas Nethercote c28a0c41b5 Bug 1358074 (part 3, attempt 2) - Don't measure process creation time on every profiler_start() call. r=mstange.
--HG--
extra : rebase_source : 588969b00e56cd7b65904a8d0baf712ea1b57ca5
2017-04-21 13:23:34 +10:00
Nicholas Nethercote 2c0ca9635a Bug 1358074 (part 2, attempt 2) - Unexport and rename ProfilerState. r=mstange.
--HG--
extra : rebase_source : 5b3e049f24d7d4f2e45989e9ee7f05c0258b1280
2017-04-21 13:23:34 +10:00
Nicholas Nethercote 33655a895b Bug 1358074 (part 1, attempt 2) - Fix some bad indentation in platform.cpp. r=mstange.
--HG--
extra : rebase_source : f572f23eeb8a290aae68b5e77dae52d885729e11
2017-04-19 14:47:18 +10:00
Julian Seward 62e5c659b4 Bug 1357777 - LUL on x86_64-linux: recover frames by following the frame pointer chain. r=froydnj,jandem.
On x86_64-Linux, LUL currently can only unwind frames for which CFI unwind data
is available.  This causes a noticeable number of junk samples in the profiler,
characterised by failures at transition points between JIT and native frame
sequences.  This patch allows LUL to try recovering the previous frame using
frame pointer chasing in the case where CFI isn't present.  This allows LUL to
unwind through or jump over interleaved JIT frames, because, respectively:

* The baseline JIT produces frame-pointerised code.

* If the profiler is enabled, IonMonkey doesn't produce frame-pointerised code,
  but also doesn't change the frame pointer register value.  It can use the
  frame pointer if profiling is disabled, but that's irrelevant here.

The patch also adds counts of FP-recovered frames to LUL's statistics printing,
to make it possible to assess how often this feature is used.

--HG--
extra : rebase_source : eadc54393788693b0e3f8d5129d48aaaad143a0b
2017-04-25 08:14:23 +02:00
Mike Cooper 2440f29f89 Bug 1358310 - eslint-plugin-mozilla: Fix infinite loop when finding repo root. r=mossop
MozReview-Commit-ID: KrOH7qtiLwS

--HG--
extra : rebase_source : 7d3ec6e407c0096e45afc23e6e117533cb4b6522
2017-04-25 14:12:31 -07:00
Chris Peterson 7b85322694 Bug 1358949 - Lower eslint cyclomatic complexity threshold in some directories. r=standard8
We can lower the eslint cyclomatic complexity threshold in some directories without adding eslint suppression comments in any .js source files. We need to specify the complexity rule in accessible/.eslintrc because it doesn't inherit the mozilla/recommended rules. eslint's default complexity threshold is 20.

Also bump the eslint-plugin-mozilla version because we modified the mozilla/recommended rules.

MozReview-Commit-ID: 57T4gAjPH7z

--HG--
extra : rebase_source : 4565abfa722b9459cfb4e006e843da13ed7cffd4
extra : intermediate-source : 658588564c08c9fd5e60633d1457f24087de8570
extra : source : 7e0526e3b943419a80c0cd2fa462cabbf8925eb1
2017-04-23 19:23:18 -07:00
Chris Peterson 893e00d283 Bug 1358947 - Make eslint "max-nested-callbacks" rule an error. r=standard8
eslint's default max-nested-callbacks threshold is 10, but now we make it an error. We could further lower the max-nested-callbacks threshold globally to 8, like browser/.eslintrc.js, but that would require adding suppression comments in (two) more .js test files. 10 seems good enough for now since it's the eslint default.

We need to specify max-nested-callbacks in accessible/.eslintrc because it doesn't inherit the mozilla/recommended rules.

Also bump the eslint-plugin-mozilla version because we modified the mozilla/recommended rules.

MozReview-Commit-ID: JA41vsi4U7j

--HG--
extra : rebase_source : 2dd211ebd3b8cf83f67f26cac5244bec8978f0e2
extra : intermediate-source : 6f5e75502be394038543029e3cfd474c5b1c2e98
extra : source : a13437d73c97fabd073ab8a6f93e85a5084b7405
2017-04-21 23:00:26 -07:00
Gregory Szorc 332db65e17 Bug 1293493 - Remove `mach rage` since it was unused; r=ted
We've had 4 submissions in 2017. jgriffin and I agreed that it was a
failed experiment and we should either abandon it or figure out how
to increase participation. Since nobody is available to improve it,
I'm inclined to just delete it. If we want to bring it back, it is
always in version control.

MozReview-Commit-ID: AizkZxjQ8IJ

--HG--
extra : rebase_source : 0e29058cfc909fb51fc56fa9b46c0e0a6eef0bf9
2017-04-24 16:33:51 -07:00
Greg Tatum 778111225d Bug 1357849 - Instrument performance.measure with markers; r=baku,mstange
MozReview-Commit-ID: KQcQgxYyEYi

--HG--
extra : rebase_source : bc26048ca4317d11ab22a5a54064fa2c031a9fdc
2017-04-24 10:15:11 -05:00
Mark Banner c49949be34 Bug 1359739 - Fix eslint-plugin-mozilla's globals import function to correctly handle 'importScripts(url)' cases. r=jaws
MozReview-Commit-ID: 30Ki21DYvzm

--HG--
extra : rebase_source : 076270b0475fb1e9694d5ab13918d5b877bee39b
2017-04-26 10:20:57 +01:00
Mark Banner c4c1dd7179 Bug 1348997 - When ESLint checks for reinstall, check the file diffs rather than a version number. r=mossop
This should make it unnecessary to bump the version number of our self-built modules, by comparing the actual files.

MozReview-Commit-ID: GFbxBs4bc4Z

--HG--
extra : rebase_source : d96d465615254655ce0fa7af29503a534e795428
2017-04-24 10:52:10 +01:00
Nicholas Nethercote 5106aa14b9 Bug 1359007 - Remove js::ProfilingGetPC(). r=shu.
AddPseudoEntry() has a single callsite which always passes nullptr for the
last argument. This means that js::ProfilingGetPC() is never called, and so can
be removed. (Even if it was called, it always returns nullptr because ipToPC()
always returns nullptr!)

--HG--
extra : rebase_source : 1260d726c79bf5116143da9904d39b38e3c93837
2017-04-26 14:32:26 +10:00
Tom Tromey 66313f92eb Bug 1349655 - remove sig_safe_t in favor of mozilla::Atomic<uint32_t>; r=djvj,njn
Remove the definition of sig_safe_t, which is only used by PseudoStack,
and replace the uses with mozilla::Atomic<uint32_t>.

MozReview-Commit-ID: GcPd9R94Vci

--HG--
extra : rebase_source : dcc05a219d59ffdc0486ef2e7118d888c6a93fda
2017-03-22 13:57:31 -06:00
Markus Stange aeb36a2713 Bug 1358360 - Correctly fill in SharedLibrary fields for the main executable. r=jseward
MozReview-Commit-ID: 3ZJ8FB2Zjs8

--HG--
extra : rebase_source : 1119844c78c0d60d97edccf2511df9660a7a6427
2017-04-21 14:30:18 -04:00
Mark Banner 580ed9c407 Bug 1358484 - Add an autofix option to ESLint's no-useless-parameters. r=florian
MozReview-Commit-ID: B8mQteJ1CzF

--HG--
extra : rebase_source : 7fa31b6c0a73529693f0a936d66f55651f0fd3b7
2017-04-21 14:34:37 +01:00
Andi-Bogdan Postelnicu a33974e2da Bug 1359376 - Update Coverity modeling file to support NS_RUNTIMEABORT. r=sylvestre
MozReview-Commit-ID: 4lahuhK5bVx

--HG--
extra : rebase_source : ecd0c90112a94086eca5d50caaf7079d71b9064e
2017-04-25 15:08:48 +03:00
Mark Banner 021f1ff90a Bug 1358540 - Change the *.lint files to be *.lint.py to better support editor integration & flake8 linting. r=smacleod
MozReview-Commit-ID: 4KK2GZK7xul

--HG--
rename : python/mozlint/test/linters/badreturncode.lint => python/mozlint/test/linters/badreturncode.lint.py
rename : python/mozlint/test/linters/explicit_path.lint => python/mozlint/test/linters/explicit_path.lint.py
rename : python/mozlint/test/linters/external.lint => python/mozlint/test/linters/external.lint.py
rename : python/mozlint/test/linters/invalid_exclude.lint => python/mozlint/test/linters/invalid_exclude.lint.py
rename : python/mozlint/test/linters/invalid_include.lint => python/mozlint/test/linters/invalid_include.lint.py
rename : python/mozlint/test/linters/invalid_type.lint => python/mozlint/test/linters/invalid_type.lint.py
rename : python/mozlint/test/linters/missing_attrs.lint => python/mozlint/test/linters/missing_attrs.lint.py
rename : python/mozlint/test/linters/missing_definition.lint => python/mozlint/test/linters/missing_definition.lint.py
rename : python/mozlint/test/linters/raises.lint => python/mozlint/test/linters/raises.lint.py
rename : python/mozlint/test/linters/regex.lint => python/mozlint/test/linters/regex.lint.py
rename : python/mozlint/test/linters/string.lint => python/mozlint/test/linters/string.lint.py
rename : python/mozlint/test/linters/structured.lint => python/mozlint/test/linters/structured.lint.py
rename : tools/lint/eslint.lint => tools/lint/eslint.lint.py
rename : tools/lint/flake8.lint => tools/lint/flake8.lint.py
rename : tools/lint/wpt.lint => tools/lint/wpt.lint.py
rename : tools/lint/wpt_manifest.lint => tools/lint/wpt_manifest.lint.py
extra : rebase_source : 97de88e0328e91347192672b848b286df1904ade
2017-04-21 17:31:15 +01:00
Carsten "Tomcat" Book 1dd975c180 Backed out changeset eec770d062b4 (bug 1358540) for bustage
--HG--
rename : tools/lint/eslint.lint.py => tools/lint/eslint.lint
rename : tools/lint/flake8.lint.py => tools/lint/flake8.lint
rename : tools/lint/wpt.lint.py => tools/lint/wpt.lint
rename : tools/lint/wpt_manifest.lint.py => tools/lint/wpt_manifest.lint
2017-04-25 10:15:07 +02:00
Mark Banner 7cad8fd464 Bug 1358418 - Be more informative about which file ESLint is failing on when getASTSource() hits a computed member expression. r=Mossop
MozReview-Commit-ID: GA4bEvJXH3O

--HG--
extra : amend_source : 1fc5729343f29e429a20e787eab13125ca3c91a2
2017-04-21 10:10:54 +01:00
Carsten "Tomcat" Book be39101bce Backed out changeset 93bf1142be38 (bug 1358418) for ml failure 2017-04-25 09:31:09 +02:00
Mark Banner 05789c2819 Bug 1358418 - Be more informative about which file ESLint is failing on when getASTSource() hits a computed member expression. r=mossop
MozReview-Commit-ID: GA4bEvJXH3O

--HG--
extra : rebase_source : 49fefac7e7ae224872cf121681d9cb2bf6f15eb8
2017-04-21 10:10:54 +01:00
Mark Banner 8e42062ea3 Bug 1358540 - Change the *.lint files to be *.lint.py to better support editor integration & flake8 linting. r=smacleod
MozReview-Commit-ID: 4KK2GZK7xul

--HG--
rename : tools/lint/eslint.lint => tools/lint/eslint.lint.py
rename : tools/lint/flake8.lint => tools/lint/flake8.lint.py
rename : tools/lint/wpt.lint => tools/lint/wpt.lint.py
rename : tools/lint/wpt_manifest.lint => tools/lint/wpt_manifest.lint.py
extra : rebase_source : 66e4b4f95109c2645d0fb7be273de343408b9406
2017-04-21 17:31:15 +01:00
Dan Banner 7e986db6b0 Bug 1351091 - Remove unreferenced Profiler.jsm file r=BenWa
MozReview-Commit-ID: 7nlrsdmEwS8

--HG--
extra : rebase_source : 38259896ef39a9694dbd985714ae430ac245b96f
2017-05-04 17:03:49 +01:00
Jan Beich 30bcfaccb9 Bug 1362598 - Always define ProfilerFeature as there's no stub. r=mstange
MozReview-Commit-ID: Bsj6dFwF1h0

--HG--
extra : rebase_source : 694086b532889e0c820ebd5d37dda778735dea97
2017-05-05 23:29:58 +00:00
Frederik Braun cd1cbcef0f Bug 1359350: Add no-eval rule to eslint config (and whitelist failures in tests) r=standard8
MozReview-Commit-ID: 4nYlX4sSdbF

--HG--
extra : rebase_source : cf610e7d8bf2b8dbd5a0d40c5b835bc6620c3bba
2017-05-08 14:50:50 +02:00
Kit Cambridge 5fc76a861d Bug 1361171 - Remove CloudSync. r=markh
MozReview-Commit-ID: CjBsEZa6oIP

--HG--
extra : rebase_source : 965db37197242acf63e77dbcca74a2984532b4ff
2017-05-01 14:43:00 -07:00
Tom Tromey 2a731f278c Bug 1362215 - use MOZ_FORMAT_PRINTF in TestHarness.h; r=froydnj
MozReview-Commit-ID: JtNSFoowLIv

--HG--
extra : rebase_source : 64b4151db74653b40822b31cd2a5136204d630d4
2017-05-05 14:23:00 -06:00
Nicholas Nethercote 625d4520a7 Bug 1357298 - Remove the 'layers.frame-counter' option. r=mstange,mattwoodrow.
This option turns on a frame counter that is shown in the top left corner via a
QR code. It was designed to be used in video recordings of B2G phones.

It no longer seems useful, so this patch removes it.
* * *
Bug 1357298 - Remove all traces of frame numbers and power from the profiler output. r=mstange.

--HG--
extra : rebase_source : 0ce87963ce375df64bb8d80ef2b5d40ea507bc7c
2017-04-18 15:40:24 +10:00
Dan Banner cbf1ee25cc Bug 1351099 - Remove unused AddonLogging.jsm file r=rhelmer
MozReview-Commit-ID: B1mxqNZhpB

--HG--
extra : rebase_source : 02abddd18ec98fdd2d74eda053d161625fd96d3e
2017-04-19 16:28:41 +01:00
Frederik Braun 777b70a929 Bug 1358050: Add no-implied-eval rule to eslint config r=standard8
MozReview-Commit-ID: KdmpXq2rg1q

--HG--
extra : rebase_source : fc89233a590604e1035be4aebfee9cda894ee07e
2017-04-20 10:33:22 +02:00
Nicholas Nethercote d83ce90018 Bug 1356694 - Create a ProfileGatherer in nsProfiler() if the profiler is active. r=mstange.
This fixes a JS exception that gets thrown when one tries to capture a profile
in this case.

--HG--
extra : rebase_source : 46f6eeed3c17086b0b6c35b26f3c9e4841dd6cff
2017-04-21 09:38:39 +10:00
Wes Kocher 5ce5528fb1 Merge inbound to m-c a=merge
MozReview-Commit-ID: DQDuEiYLWCO
2017-04-20 15:30:43 -07:00
Chris Peterson f7d9d18c1b Bug 1356843 - Fix -Wcomma warning in tools/profiler/lul/LulDwarf.cpp. r=jseward
clang's -Wcomma warning warns about suspicious use of the comma operator such as between two statements.

tools/profiler/lul/LulDwarf.cpp:604:15: warning: possible misuse of comma operator here [-Wcomma]

MozReview-Commit-ID: 6ZP79hgtrAD

--HG--
extra : rebase_source : 77028600c713aa3235c3729a5db7be0290df57e4
extra : source : e4536bbeb28050b38979a05b379f13eb4a12beee
2017-04-09 21:43:29 -07:00
Nicholas Nethercote 28f7ae49bb Bug 1357936 - Don't leak ProfilerIOInterposeObserver. r=mstange.
The patch adds a missing |delete|. (This leak only occurred when the
"mainthreadio" feature was enabled, which is not the default.)

The patch also makes the unregistering of the interpose observer conditional on
there being one in the first place, avoiding a harmless but useless
unregistering of |nullptr|.

--HG--
extra : rebase_source : 7cc3679192e3effa8d86edad5374643d2e2b8948
2017-04-20 09:24:17 +10:00
Wes Kocher cb8ce82cca Merge inbound to m-c a=merge 2017-04-19 17:10:04 -07:00
Carsten "Tomcat" Book e2b810f97e Merge mozilla-central to mozilla-inbound 2017-04-19 10:49:57 +02:00
Julian Seward 5e2ec6a4bc Bug 1356215 - LUL: increase size of unwound stack to 160k. r=froydnj.
For reasons related to the architecture of the Gecko Profiler in previous years,
which are no longer relevant, LUL will only unwind through the first 32KB of
stack.  This is mostly harmless, since most stacks are smaller than 4KB, per
measurements today, but occasionally they go above 32KB, causing unwinding to
stop prematurely.

This patch changes the max size to 160KB, and documents the rationale for
copying the stack and unwinding, rather than unwinding in place.  160KB is big
enough for all stacks observed in several minutes of profiling all threads at
1KHz.

--HG--
extra : rebase_source : a1d5526aff50345be8b965c2b6b01c66b40fd0d8
2017-04-18 10:30:14 +02:00
Mark Banner fbd29db04b Bug 1357702 - Make eslint-plugin-spidermonkey-js handle paths correct on Windows to avoid Unexpected character issues on ESLint. r=mossop
MozReview-Commit-ID: LsQCgBOgceY

--HG--
extra : rebase_source : 337037ad78c223139a3531a8ca9a68b13dbcb013
2017-04-19 12:17:14 +01:00
Mark Banner 6419084416 Bug 1357502 - Change eslint-plugin-mozilla tests to use the mocha test harness to improve the output. r=mossop
MozReview-Commit-ID: 1xI0tBpbSgM

--HG--
extra : rebase_source : 227dc315767083e88ec88219771d66fade3072b2
2017-04-18 20:06:02 +01:00
Mike Hommey 34e619d1c1 Bug 1357323 - Remove support for gonk in the build system. r=gps
Everything depending on the widget being gonk can go away, as well as
everything depending on MOZ_AUDIO_CHANNEL_MANAGER, which was only
defined on gonk builds under b2g/ (which goes away in bug 1357326).

--HG--
extra : rebase_source : 9f0aeeb7eea8417fa4e06d662d566d67ecaf2a24
2017-04-18 16:56:09 +09:00
Mark Banner 58e3fafe78 Bug 1357546 - Fix how relative paths are handled in Windows for the ESLint import-browser-window-globals rule. r=mossop
MozReview-Commit-ID: Q8YcLRSpkQ
2017-04-18 22:11:54 +01:00
Mark Banner 2e1696e256 Bug 1357393 - Correct getting the rootDir in createExports - used for publishing eslint-plugin-mozilla. r=mossop
Bump the version number to match what is currently published.

MozReview-Commit-ID: 8r8otQQBqBo

--HG--
extra : rebase_source : 1b7daac6b2852117ae08927fd5a09b2a7650d683
2017-04-18 13:56:19 +01:00
Carsten "Tomcat" Book bb87f43c09 merge mozilla-inbound to mozilla-central a=merge 2017-04-18 10:21:31 +02:00
Nicholas Nethercote 4a55f047a5 Bug 1356249 - Fix assertion in profiler_set_frame_number(). r=mstange.
This function can run off the main thread when 'layers.frame-counter' is
enabled.

--HG--
extra : rebase_source : f3db0fd01c636d5af97109761bb0b57b57c79293
2017-04-18 14:40:00 +10:00
Markus Stange 618a091371 Bug 830990 - Stop dispatching CheckResponsivenessEvents when the profiler is stopped. r=njn
MozReview-Commit-ID: 4MnRGqE2sEK

--HG--
extra : rebase_source : 2e6e8b354983240a6f8a177f90d5a59d1e58b94c
2017-04-16 14:48:24 -04:00
Markus Stange 180a94d4c2 Bug 1346592 - When stopping the profiler, mark all ThreadInfos as not being profiled. r=njn
This also renames HasProfile() to IsBeingProfiled().

MozReview-Commit-ID: 70RGHNbyZG3

--HG--
extra : rebase_source : 64f1df6985f41ae52d2385edcfd7822d16fd1e00
2017-04-17 22:46:54 -04:00
Iris Hsiao 063f52934e Backed out changeset 1b277ae21ba5 (bug 1346592)
CLOSED TREE
2017-04-18 11:05:12 +08:00
Iris Hsiao 82a868141d Backed out changeset 9d86f0c3ddd4 (bug 830990) for build bustage
CLOSED TREE
2017-04-18 11:05:00 +08:00
Markus Stange e6bcc1a69f Bug 830990 - Stop dispatching CheckResponsivenessEvents when the profiler is stopped. r=njn
MozReview-Commit-ID: 4MnRGqE2sEK

--HG--
extra : rebase_source : 10078745ac3839ea80879a6ebe710a0f4973f25d
2017-04-16 14:48:24 -04:00
Markus Stange b1002e6197 Bug 1346592 - When stopping the profiler, mark all ThreadInfos as not being profiled. r=njn
This also renames HasProfile() to IsBeingProfiled().

MozReview-Commit-ID: 70RGHNbyZG3

--HG--
extra : rebase_source : fbe6faf0ed9ee7273e77f1f81b79915800772212
2017-04-16 13:41:32 -04:00
Paul Bignier a07aa00315 Bug 1356797 - Update ThirdPartyPaths.txt. r=sylvestre 2017-04-16 19:08:29 -07:00
Sebastian Hengst a7334b2896 Bug 1347709 and Bug 1356569 - Bump eslint plugin version to resolve conflict. r=instruction-by-florian a=bustage-fix
MozReview-Commit-ID: 2zp9hXqxT26

--HG--
extra : amend_source : 465b881899a40cf29d0f3d7dbdd883d8a61edb2c
2017-04-15 20:05:51 +02:00
Sebastian Hengst 8bd051237a merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: JpAhOPjgvkF
2017-04-15 19:59:24 +02:00
Mark Banner f515ecdff3 Bug 1347709 - Allow modules.json to be loaded from a local version for out-of-tree uses of eslint-plugin-mozilla. r=mossop
MozReview-Commit-ID: 7RzAUqNJQ15

--HG--
extra : rebase_source : c71873fd9864032345fb48047f2c272c2703a210
2017-04-13 12:03:30 +01:00
Mark Banner 4ef57a002d Bug 1347709 - Add a prepublish script to save the current globals for the published version of eslint-plugin-mozilla, and use that when not in mozilla-central. r=mossop
MozReview-Commit-ID: GHD7GQ0Pjnp

--HG--
extra : rebase_source : 8a8deeb0544799426baa820fa91a22eb9e1d3526
2017-04-12 18:02:53 +01:00
Markus Stange 2d2f47f7b2 Bug 1355634 - Use MozPromise to make ProfileGatherer more generic. r=njn
MozReview-Commit-ID: GKqxJW8zjca

--HG--
extra : rebase_source : a6f0903008503ae34cb1584bbd38357ff2343c22
extra : histedit_source : 7e077d757dfa919b4a88a10cff0fc15beb3a62f9
2017-04-12 16:57:58 -04:00
Markus Stange c0b86ef8ba Bug 1321617 - Add a test for profiler_stream_json_for_this_process. r=njn
MozReview-Commit-ID: A5Iu3dQFvHK

--HG--
extra : rebase_source : e15843dba66e427c6b1eb7bc2f8a63f419f9e3ca
extra : histedit_source : 6f7e9ee3a31aa2463c4946d543e4358fd724f02f
2017-04-12 16:48:16 -04:00
Markus Stange e668a84964 Bug 1321617 - Capture parent process profiles in ProfileGatherer::Start2, not in ProfileGatherer::Finish. r=njn
MozReview-Commit-ID: 3vC2qb90KN5

--HG--
extra : rebase_source : 45930d88a88648b9d472f990e79e815c106d4fa3
extra : histedit_source : e8b1ef002432231cf3698a5408a1a0d80f3bcac6
2017-04-09 16:52:22 -04:00
Markus Stange dcfba9f179 Bug 1321617 - Call profiler_stream_json_for_this_process in ProfileGatherer::Finish() and get rid of the 'profile-subprocess' notification indirection. r=njn
MozReview-Commit-ID: CnE0SJBsfDN

--HG--
extra : rebase_source : 59f4201d3d8b8fb0d5bc7743f9dafd60789d916a
extra : histedit_source : 5b8b9b26ac87d22d118891868a8a07fe225e85b2
2017-04-12 16:40:03 -04:00
Markus Stange 4a1b5c4027 Bug 1321617 - Reduce the scope of the lock in profiler_get_profile. r=njn
MozReview-Commit-ID: 5OmVMwy1yMl

--HG--
extra : rebase_source : 9cebf6f6ff860fc6b0750e9e4d9eaf23773ccc19
extra : histedit_source : cbd1321ea17a26553384efb6ee7511d800878b84
2017-04-12 16:45:28 -04:00
Markus Stange a951919765 Bug 1321617 - Move parts of StreamJSON out into the callers and rename it to locked_profiler_stream_json_for_this_process. r=njn
MozReview-Commit-ID: 239BJOa2bix

--HG--
extra : rebase_source : 36f248d60bf4c82deb2a62c5a45d9c1c3c44af2e
extra : histedit_source : e5b2b4cb5f19e6efb69ff8e2d391199d3dbaf3ea
2017-04-08 21:07:52 -04:00
Markus Stange 0fc86487fd Bug 1321617 - Don't store profiles on the CPPC; pass them right to the ProfileGatherer. r=njn
MozReview-Commit-ID: 6gaP8Ltm7ms

--HG--
extra : rebase_source : c91f87f096286f8914553a26d692ea99ec9369c5
extra : histedit_source : 0fd9f4a9bf8b9f8f0acaaab30640a5e2f462148b
2017-04-08 21:54:16 -04:00
Markus Stange 59446b4f09 Bug 1321617 - Tell the CrossProcessProfilerController whether a profile is a response to a GatherProfile request or whether it was sent because the process was exiting. r=mconley
MozReview-Commit-ID: BLkaeZqtRhv

--HG--
extra : rebase_source : b0271115a66afbf54d98b5bad61165f815f5bd8c
extra : histedit_source : 299cccc9cc8c06de4d61686ff49d2b0e7649da78
2017-04-12 16:44:31 -04:00
Markus Stange dc05eb93fd Bug 1329114 - Put profiles from other processes into a 'processes' array, not into the threads array, and don't stringify them. r=njn
MozReview-Commit-ID: Ccl6JIbRMyX

--HG--
extra : rebase_source : 1b9a5bbff6da5b1dbfb907630900526e95981a28
extra : histedit_source : 8c830a0178c14fdb044dea2c7323025d3892454b
2017-04-08 16:00:30 -04:00
Mark Banner b624a1a95b Bug 1347709 - Add a .npmignore file to stop publishing unnecessary files for eslint-plugin-mozilla. r=mossop
MozReview-Commit-ID: BcZBIFM1Ugu

--HG--
extra : rebase_source : ca8cbc2e04cb96e98da5febdd82d8ac7393ebc8b
2017-04-06 12:04:52 +01:00
Markus Stange eb07a56986 Bug 1356752 - Fix --enable-tasktracer build by adding the missing aWriter argument. r=njn
MozReview-Commit-ID: L87KE3BmYRB

--HG--
extra : rebase_source : 09e34cc04ea7f76a07419e0e75cc0b097c001b6b
2017-04-15 00:22:07 -04:00
Julian Seward 0187151352 Bug 1355136 - LUL on i686/x86_64-linux: allow CFAs to be arbitrary prefix expressions. r=froydnj.
For reasons which are unclear, but possibly due to lack of any known use cases
when the code was written, LUL on i686/x86_64-linux only accepts CFA (canonical
frame address) expressions of the form SP+offset or FP+offset.  However, on
Fedora 25 x86_64 and Ubuntu 16.10 x86_64, at least one address range per object
uses a Dwarf expression for the CFA, for example:

00000018 000000000024 0000001c FDE cie=00000000 pc=0000000031e0..0000000031f0
  DW_CFA_def_cfa_offset: 16
  DW_CFA_advance_loc: 6 to 00000000000031e6
  DW_CFA_def_cfa_offset: 24
  DW_CFA_advance_loc: 10 to 00000000000031f0
  DW_CFA_def_cfa_expression(
          DW_OP_breg7 (rsp): 8; DW_OP_breg16 (rip): 0; DW_OP_lit15; DW_OP_and;
          DW_OP_lit11; DW_OP_ge; DW_OP_lit3; DW_OP_shl; DW_OP_plus)

producing the following complaint from LUL:

  can't summarise: SVMA=0x31f0: rule for DW_REG_CFA: invalid |how|, expr=LExpr(PFXEXPR,0,0)

Given that LUL is capable of handling such a CFA expression, it seems artificial
to stop it doing so.  This patch changes Summariser::Rule() so as to allow such
expressions.
2017-04-12 08:42:02 +02:00
Wes Kocher c8a2033f35 Merge m-c to inbound, a=merge 2017-04-13 17:33:39 -07:00
Wes Kocher 514e230373 Merge inbound to central, a=merge 2017-04-13 17:24:01 -07:00
Nicholas Nethercote 1fbc5e1dab Bug 1355807 - Fix condition guarding stopJSSampling() calls. r=jseward.
PseudoStack requires that startJSSampling() and stopJSSampling() calls be
interleaved. But currently the conditions guarding those calls don't match:
startJSSampling() is guarded by ShouldProfileThread(), and stopJSSampling() is
guarded by HasProfile().

It's possible for HasProfile() to be true when ShouldProfileThread() is not
true -- e.g. profile many threads, then restart and profile fewer threads, and
we end up with live threads that have a profile but aren't being profiled right
now -- which leads to assertion failures in stopJSSampling().

This patch makes the stopJSSampling() condition use ShouldProfileThread(), just
like the startJSSampling() condition, which fixes the assertion failure.

--HG--
extra : rebase_source : e9931928c8ac1301f5018f9da319bc478722b98e
2017-04-13 09:34:42 +10:00
Julian Seward 553b8e9b10 Bug 1354546 - Make LUL read CFI from the main executable on x86_64-Linux. r=n.nethercote.
LUL doesn't read CFI from the main executable on x86_64-linux, and possibly
other Linux variants, because SharedLibraryInfo::GetInfoForSelf() doesn't
produce a name for the main executable object, even though it does notice the
mapping.

This causes noticeable unwind breakage because the main executable on Linux
contains various wrapper functions pertaining to memory allocation and locking,
such as

  moz_xmalloc, moz_xcalloc, moz_xrealloc
  mozilla::detail::MutexImpl::lock, mozilla::detail::MutexImpl::unlock

and is generally observable on x86_64-Linux as unwinding failures out of
functions with addresses around 0x40xxxx, since that's the traditional load
address for the main executable.

This patch modifies the Linux implementation of GetInfoForSelf() so as to
harvest the main executable's name from /proc/self/maps.  This is then added
into the information acquired from dl_iterate_phdr.  As a result
GetInfoForSelf() does correctly report the executable name, so LUL reads Dwarf
unwind info from it, and the abovementioned unwinding failures disappear.

--HG--
extra : rebase_source : 267c6d7c3967a4d29f8ff0b4a91d339a6625085d
2017-04-12 07:56:58 +02:00
Wes Kocher dd8c316d53 Merge m-c to inbound, a=merge 2017-04-12 18:24:24 -07:00
Wes Kocher 2986c817dc Merge autoland to central, a=merge CLOSED TREE 2017-04-12 15:13:30 -07:00
Wes Kocher 25d50f2c30 Merge inbound to central, a=merge 2017-04-12 14:39:09 -07:00
Nicholas Nethercote 32998fa82c Bug 1347258 - Pass TickSample as a reference, not a pointer. r=mstange.
--HG--
extra : rebase_source : cec4e4435b5e67b4bbf29c5f0637f5ebe3a37fca
2017-04-12 14:56:41 +10:00
Mark Banner 3dd96b34b3 Bug 1355776 - Upgrade ESLint to version 3.19.0 to pick up autofix improvements and other fixes. r=mossop
Pick up autofix improvements in 3.19.0. Upgrade eslint-plugin-react. Also fix issues with the package.json file and the ESLint node_modules upload script.

MozReview-Commit-ID: IDZ1n4qTTuv

--HG--
extra : rebase_source : aa97cd6f314ce10d16d12446e50a27d6f994a9f1
2017-04-12 12:07:01 +01:00
Nicholas Nethercote 02ad712a35 Bug 1355357 (part 3) - Construct nativeStack with the right count. r=jseward.
--HG--
extra : rebase_source : 1f619c7fd3af728d34d1f0d350e0d94fa618b5d0
2017-04-11 18:49:00 +10:00
Nicholas Nethercote 2ce4e19d9c Bug 1355357 (part 2) - Avoid a GetThreadHandle() call. r=jseward.
Using ProfiledThread() instead avoids a cast.

--HG--
extra : rebase_source : ddd6b75bc741fc04aa94d0ec2494eb24a2ef9fca
2017-04-11 18:48:02 +10:00
Nicholas Nethercote e64832b7ec Bug 1355357 (part 1) - Rename profiled_thread_ and profiled_thread() in PlatformData. r=jseward.
--HG--
extra : rebase_source : e223ab428aeeb0e711c31dc47a19d5d1bcc471ed
2017-04-11 18:47:15 +10:00
Iris Hsiao 944f87c575 merge mozilla-inbound to mozilla-central a=merge 2017-04-12 11:16:46 +08:00
Julian Seward ac843f7319 Bug 1355052 - Tidy up shared-linux-libraries.cc. r=n.nethercote.
shared-linux-libraries.cc is a maze of ifdefs which is hard to navigate, hard to
reason about and gets in the way of making a proper fix for bug 1354546.  This
bug is for cleanup only.  It should not change any functionality.

The following changes are made:

* adds emacs/vi tab-width lines

* removes the ARRAY_SIZE macro as it appears to be unused

* documents the 3 different configurations, splits #includes accordingly

* comments SharedLibraryInfo::GetInfoForSelf accordingly

* wraps some long lines

* documents in which cases dl_iterate_phdr is used and in which cases
  /proc/<pid>/maps is used

* Puts /proc/<pid>/maps reading in its own scope

* Makes the LOG messages on failure clearer
2017-04-11 18:11:16 +02:00
Kan-Ru Chen da0e46ae95 Bug 1355123 - Initialize gecko profiler properly for IPDL test runner. r=mstange,njn
MozReview-Commit-ID: C9hkZPj3SVL
2017-04-11 10:56:58 -04:00
Nicholas Nethercote d8427b066c Bug 1354436 - Fix crash when MOZ_PROFILER_HELP is specified. r=jseward.
--HG--
extra : rebase_source : 86bedf7edc2b0bfce3b75f8828f3c4fb5015a16c
2017-04-10 14:52:05 +10:00
Carsten "Tomcat" Book 023be17063 Merge mozilla-central to autoland 2017-04-11 10:24:02 +02:00
Mark Banner a49e5501a1 Bug 1354460 - Fix the Mercurial ESLint Hook after the node_modules location change. r=mossop
MozReview-Commit-ID: LhB6twS4TLI

--HG--
extra : rebase_source : 07167ded1cab35a4ade756d773e02b297aaf36bf
2017-04-10 10:07:37 +01:00
Kearwood Gilbert 8cedccb89e Bug 1341423 - Integrate OpenVR binding library r=daoshengmu
MozReview-Commit-ID: GaUnfbXgh9L

--HG--
rename : gfx/vr/openvr/openvr.h => gfx/vr/openvr/headers/openvr.h
extra : rebase_source : e7a0983371c1ed381ddf431e2d5a814c510d4967
2017-02-27 16:59:30 -08:00
Nicholas Nethercote 632b8b594d Bug 1353630 (part 5) - Allocate PseudoStack within ThreadInfo's constructor. r=jseward. 2017-04-06 09:40:28 +10:00
Nicholas Nethercote bd098b6cbc Bug 1353630 (part 4) - Separate ThreadInfos for live and dead threads. r=jseward.
Currently, ThreadInfos for live and dead threads are stored in a single vector.
This patch separates them into two separate vectors.

This ensures that the two kinds of ThreadInfos can't be mixed up. It also means
ThreadInfo::mPendingDelete can be removed.
2017-04-03 10:40:23 +10:00
Nicholas Nethercote 3bd73aaa4b Bug 1353630 (part 3) - Don't hold onto ThreadInfos for dead threads that aren't being profiled. r=jseward.
Currently, when the profiler is active we hold onto the ThreadInfo of all
threads that die. Then when capturing a profile we ignore all threads that
aren't being profiled.

This patch changes things so we only hold onto the ThreadInfos of threads that
die if they are being profiled. In effect it removes state 3 from the following
list of possible ThreadInfo states:

  1. !PendingDelete + !HasProfile
  2. !PendingDelete + HasProfile
  3. PendingDelete + !HasProfile  (no longer used)
  4. PendingDelete + HasProfile
2017-04-03 10:40:23 +10:00
Nicholas Nethercote 76d203f1da Bug 1353630 (part 2) - Replace MaybeSetProfile() with ShouldProfileThread(). r=jseward.
MaybeSetProfile() does a check and then sets on success. By separating the
check from the set, we can avoid some subsequent HasProfile() checks.
2017-04-06 07:44:59 +10:00
Nicholas Nethercote 9c349c7a6c Bug 1353630 (part 1) - Refactor ThreadResponsiveness use in ThreadInfo. r=mstange.
Now that ThreadResponsiveness is only used on the main thread, we can refactor
ThreadInfo a bit. This patch does the following.

- Removes ThreadInfo::mThread, which is unused.

- Changes ThreadInfo::mRespInfo to a Maybe<>, and moves the is-main-thread
  checking outside of ThreadInfo and ThreadResponsiveness.

- Renames {ThreadInfo,TickSample}::mRespInfo as mResponsiveness, to better
  match the class name.
2017-04-05 15:53:13 +10:00
Nicholas Nethercote df889bc9f6 Bug 1350967 (part 2) - Remove profiler_get_profile_jsobject_async() and profiler_save_profile_to_file_async(). r=mstange.
The state management is better done within nsProfiler::GetProfileDataAsync()
and nsProfiler::DumpProfileToFileAsync(). (The latter function is new in this
patch.)

This fixes a deadlock.

Other notes:

- The patch moves ProfileGatherer from ProfilerState to nsProfiler. This is
  nice because the former is shared between threads but the latter is main
  thread only. (This is how the deadlock is avoided.)

- ProfilerStateMutex and PSLockRef are no longer required in platform.h. Those
  types and variables are now only used in platform.cpp and platform-*.cpp.

- ProfilerGatherer now calls profiler_get_profile() instead of ToJSON(). Which
  means that ToJSON() now has a single caller, so the patch inlines it at the
  callsite and removes it.

- profiler_save_profile_to_file_async() dispatched a Runnable to the main
  thread. But this wasn't necessary, because it always ran on the main thread
  itself. So the new function nsProfiler::DumpProfileToFileAsync() doesn't do
  that.

- profiler_will_gather_OOP_profile(), profiler_gathered_OOP_profile(), and
  profiler_OOP_exit_profile() are all moved into nsProfiler as well. This
  removes the need for the horrible fake lock in
  profiler_will_gather_OOP_profile(), hooray!
2017-03-29 15:48:13 +11:00
Nicholas Nethercote 445b5b7145 Bug 1350967 (part 1) - Remove profiler_get_profile_jsobject. r=mstange.
The conversion to a JSObject is better done within
nsProfiler::GetProfileData().

--HG--
extra : rebase_source : 4a0ba97d99681fca96f2d26b609bafe188095787
2017-03-29 14:02:37 +11:00
Mark Banner 92c422a2d6 Bug 1342459 - Add a rule to automatically detect ContentTask.spawn and inject the relevant globals. r=mossop
This reduces the amount of places where we need to specify the mozilla/frame-script environment. It does have
the side effect of allowing those globals in the whole file, but that is what specifying the environment would
do, and this is also for mochitest test files only.

MozReview-Commit-ID: 1LLFbn6fFJR

--HG--
extra : rebase_source : 82a6934d90bbbbd25f91b7b06bf4f9354e38865a
2017-04-05 10:00:25 +01:00
Mark Banner 427e3b23dc Bug 1342459 - Fix various no-undef issues in browser/base. r=mossop
MozReview-Commit-ID: CRYxu7copKb

--HG--
extra : rebase_source : bc176c5e6890ffc6a4e26cb9bc9d441d9486ce7b
2017-04-04 13:42:33 +01:00
Carsten "Tomcat" Book c5364b4b43 Merge mozilla-central to mozilla-inbound 2017-04-05 14:50:28 +02:00
Carsten "Tomcat" Book 7a670cdd01 merge mozilla-inbound to mozilla-central a=merge 2017-04-05 14:33:35 +02:00
Joel Maher 8db607ac7d Bug 1341876 - annotate tools/* with BUG_COMPONENTS. r=gps
MozReview-Commit-ID: 4v1CzI8RtJs
2017-04-05 08:31:05 -04:00
Nicholas Nethercote f9e82b4a80 Bug 1351136 (follow-up) - Fix a harmless argument mis-ordering in a call to profiler_get_start_params(). r=me.
Found by Coverity.

--HG--
extra : rebase_source : 6f65ceef59e8b32252146eec6703a7fd17b3479b
2017-04-05 11:56:37 +10:00
Andrew McCreight 2f83bee3a7 Bug 1353174, part 1 - Turn ContentObservers.jsm into a process script. r=Gijs
This retains the advantage of running only once per process, while
avoiding the per-process overhead of a jsm.

MozReview-Commit-ID: 1N53MvRwUpg

--HG--
rename : browser/modules/ContentObservers.jsm => browser/modules/ContentObservers.js
extra : rebase_source : 6a502cff26fcb55526f97385274bbae871f5cc6c
2017-04-04 11:21:48 -07:00
Mark Banner 9f564cd9e1 Bug 1352969 - Improve ESLint environment browser-window globals list, and automatically inject it into browser-window scripts. r=mossop
MozReview-Commit-ID: 3lv0K1unAc

--HG--
extra : rebase_source : 4e4ef0f40f377298013dc17ca0f077890d32669c
2017-03-09 17:17:26 +00:00
Mark Banner 1087fc1884 Bug 1352969 - Fix various ESLint no-undef issues in browser/base (no-undef is not enabled yet). r=mossop
MozReview-Commit-ID: BuTyJAfUoWR

--HG--
extra : rebase_source : 482bdc039362347f35aec9fd15e07a143dccb860
2017-02-22 17:02:59 +00:00
Mark Banner 2cc135d612 Bug 1353385 - Make './mach eslint --setup' a little quieter and fix the reported location of the eslint binary. r=mossop
MozReview-Commit-ID: 3ucPJP5JXV8

--HG--
extra : rebase_source : ba9f2f1b79e6bbdbf20884ec01d095bd40f8c3c3
2017-04-04 16:06:14 +01:00
Nicholas Nethercote f91e7e7672 Bug 1351963 (part 9) - Improve SetSampleContext(). r=jseward.
SetSampleContext() sets the TickSample's register fields, and the two callers
of SetSampleContext() set the TickSample's mContext.

This patch changes SetSampleContext() so it sets all the fields in one place.
It also renames SetSampleContext() as FillInSample(), because it sets more than
just the context.

--HG--
extra : rebase_source : 9b9f749fe3de687a7fd32f5c38e2321c2abebfdc
2017-03-31 11:13:28 +11:00
Nicholas Nethercote c29e97d66d Bug 1351963 (part 8) - Simplify PseudoStack ownership. r=jseward.
Currently each live thread has a PseudoStack that is owned by tlsPseudoStack,
and a ThreadInfo that has a non-owning pointer to the same PseudoStack.
Then, if the profile is active when the thread dies, ownership of the
PseudoStack is transferred to the ThreadInfo.

This patch simplifies the ownership rules. Every ThreadInfo now always owns its
PseudoStack and is responsible for destroying it. tlsPseudoStack is a
non-owning pointer, and so must be cleared when a PseudoStack is destroyed.
This simplifies the code in a few places.

--HG--
extra : rebase_source : 1012b6590380091d60eff98b4e0c5b1ba946cc7e
2017-03-31 11:01:50 +11:00
Nicholas Nethercote 00f3bc4e23 Bug 1351963 (part 7) - Factor out repeated thread-finding code. r=jseward.
The patch also adds a MOZ_RELEASE_ASSERT in profiler_unregister_thread() for
the case where the ThreadInfo isn't found, which is informative.

--HG--
extra : rebase_source : 11a86914db235e4a60955ff1c9b77d46109af548
2017-03-24 09:24:45 +11:00
Nicholas Nethercote 28cde67779 Bug 1351963 (part 6) - Remove ThreadInfo from TickSample. r=jseward.
This avoids the need for the fake ThreadInfo in profiler_get_backtrace(). It
requires adding a few extra fields to TickSample.

--HG--
extra : rebase_source : c28e5493edc7db96a7160e78b297ae09dc05ca7c
2017-03-31 10:49:36 +11:00
Nicholas Nethercote f76f4f4892 Bug 1351963 (part 5) - Improve TickSample. r=jseward.
This patch does the following.

- Splits TickSample's constructor in two, one for the periodic sample case, and
  one for the synchronous sample case, and initializes more stuff in them. (The
  two constructors aren't that different right now, but they will become more
  different when I remove TickSample::mThreadInfo.)

- Makes all the constructor-filled fields in TickSample |const|.

- Reorders the fields so that the constructor-filled ones are before the ones
  that get filled in later.

- Omits mContext on Mac via conditional compilation, to make the omission
  clearer.

--HG--
extra : rebase_source : f3e392c4cf777df5b9f39577af82615890137018
2017-03-31 10:35:54 +11:00
Nicholas Nethercote 25993378b9 Bug 1351963 (part 4) - Make the LastSample argument to addTagThreadId optional. r=jseward.
LastSample only makes sense for periodic samples, which are written to the
global ProfileBuffer. It doesn't make sense for synchronous samples which are
written to their own unshared buffer. At the moment it doesn't hurt to use
them in this nonsensical way, but the ThreadInfo profiler_get_backtrace()
will be removed soon, and we won't even have a LastSample to use nonsensically.

So this patch makes the LastSample argument to addTagThreadId() optional. Which
means we have to pass in a ThreadId, so there's no longer much point
duplicating the ThreadId in LastSample, so the patch removes that field too.
This avoids the possibility of the duplicate ThreadId failing to match, which
is nice.

--HG--
extra : rebase_source : dad76ff8b33663398e6f45f85da500b0fd7a598f
2017-03-31 10:13:13 +11:00
Nicholas Nethercote f9ffeeb27b Bug 1351963 (part 3, attempt 2) - Remove ThreadInfo from ProfilerBacktrace. r=mstange. 2017-04-04 09:41:53 +10:00
Nicholas Nethercote 44c0cb1064 Bug 1351963 (part 2, attempt 2) - Move StreamSamplesAndMarkers() out of ThreadInfo. r=mstange. 2017-04-04 09:41:11 +10:00
Mark Banner b8e9cadef9 Bug 1305023 - Move ESLint's package.json and node_modules to the top level to improve editor integration. r=gps
Editors generally look for configurations at the top level of a project. For ESLint, they also look for the specific binary in node_modules before defaulting to the system binary. Whilst you can override the location, generally it doesn't work well when switching between projects.

The custom in-tree libraries make setup of a system ESLint more difficult as well.

Therefore to make it simple for developers to pick up the ESLint integrations with Editors, by moving the package.json and associated node_modules to the top-level directory.

MozReview-Commit-ID: 1pQpd7hTQ61

--HG--
rename : tools/lint/eslint/npm-shrinkwrap.json => npm-shrinkwrap.json
rename : tools/lint/eslint/package.json => package.json
extra : rebase_source : 9d69d791f86b5c55b1fcd5f6449f0ab84e56b05c
2017-03-22 12:27:00 +01:00
Carsten "Tomcat" Book 8d910c41e3 merge mozilla-inbound to mozilla-central a=merge 2017-04-03 12:13:46 +02:00
Carsten "Tomcat" Book ac161c6904 Backed out changeset d9ce5cdb4e5a (bug 1351963) for hopefully fix the dt leaks 2017-04-03 08:19:22 +02:00
Carsten "Tomcat" Book b9e48685b2 Backed out changeset 016c13131fff (bug 1351963) 2017-04-03 08:18:55 +02:00