Commit Graph

84 Commits

Author SHA1 Message Date
David Major
89f6d51919 Bug 1180561 - Intercept msmpeg2vdec's JIT unwind callback on Win7 x64. r=aklotz
So we can avoid stack-walking their JIT code. They don't have unwind information so their callback just kills the process.
2017-05-18 16:15:29 -04:00
Eric Rahm
d85538bec8 Bug 1364624 - Switch from CRITICALSECTION to SRWLOCK. r=froydnj
MozReview-Commit-ID: 6JpGEQyUFz
2017-05-17 15:44:20 -07:00
David Major
ce4248324c Bug 1365415: No need to hook LdrResolveDelayLoadedAPI on Win7, it doesn't exist. r=mstange
--HG--
extra : rebase_source : 3ba5eee05ca2bf7e50e6c8fb1fd29a8e4ab32686
2017-05-17 15:26:13 -04:00
Tom Tromey
21816ce4f3 Bug 1334276 - add Printf unit tests; r=froydnj
Add unit tests for Printf.  Code coverage now at 90%.  Doing better is
difficult due to the large number of assertions and failure cases, and
because some remaining untested code implements behavior undefined by
the spec, for example "%0s".

MozReview-Commit-ID: FenOur7bOt2

--HG--
extra : rebase_source : 4a399743e87912d8a72a8607dd520e676785f52d
2017-05-08 13:49:48 -06:00
Tom Tromey
62fa1c54e6 Bug 1334276 - remove dead code from Printf.cpp; r=froydnj
This removes some "#if 0"s, and some related code that is also obviously
dead.

MozReview-Commit-ID: 1vEPohvdpw8

--HG--
extra : rebase_source : b7a1c08c422f0aae6538db03331773f31be33ac6
2017-05-08 11:05:27 -06:00
Tom Tromey
aa6e054b71 Bug 1334279 - mark vsprintf-likes with MOZ_FORMAT_PRINTF; r=froydnj
This annotates vsprintf-like functions with MOZ_FORMAT_PRINTF.  This may
provide some minimal checking of such calls (the GCC docs say that it
checks for the string for "consistency"); but in any case shouldn't
hurt.

MozReview-Commit-ID: HgnAK1LiorE

--HG--
extra : rebase_source : 9c8d715d6560f89078c26ba3934e52a2b5778b6a
2017-05-04 12:10:19 -06:00
David Major
b01d2b3925 Backed out changeset 0e572861c2dc for contributing to bug 1361901. 2017-05-04 15:58:12 -04:00
David Major
f4a3991d16 No bug - fix variable spelling. DONTBUILD
--HG--
extra : rebase_source : c46bd7e65d1bd36834e9376079b7cc914c026f01
2017-05-04 14:29:55 -04:00
David Major
144694720e Bug 1355559: Suppress stack walking in LdrResolveDelayLoadedAPI. r=mstange,aklotz 2017-05-03 23:26:47 -04:00
David Major
17f4d62f9b Bug 1349444: Suppress stack walking in LdrUnloadDll. r=mstange,aklotz,froydnj 2017-05-03 17:13:31 -04:00
David Major
eeaa91fc5c Bug 1359507: Replace the stack walk workaround lock with an atomic counter of suppressions. r=mstange,froydnj
This fixes a deadlock by removing one of the two sides of a mutual-wait.
2017-05-03 12:10:48 -04:00
David Major
e0e90b1235 Bug 1180561: Abort stack walking if we reach a frame inside msmpeg2vdec. r=njn 2017-05-02 09:28:17 -04:00
David Major
33bad54a1c Bug 1358251: EnsureSymInitialized doesn't need to EnsureWalkThreadReady. r=mstange
--HG--
extra : rebase_source : d81dabe40ff11bce3586df0edfaccd8fa9da1e28
2017-05-01 15:34:50 -04:00
Wes Kocher
c90904f9bf Merge inbound to central, a=merge CLOSED TREE
MozReview-Commit-ID: 9HQViJrDT6S
2017-04-26 17:30:31 -07: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
675c0065d0 Backed out changeset 31d1116ced93 (bug 1349444) for assertions on Windows a=backout
MozReview-Commit-ID: 4dOhE2GADv3
2017-04-25 15:52:10 -07:00
Wes Kocher
bb10f1e55f Backed out changeset 5b18b53232b8 (bug 1355559) for assertions on Windows
MozReview-Commit-ID: G2UXc5l6b2T
2017-04-25 15:51:33 -07:00
Wes Kocher
bf1d6ef1c2 Backed out changeset 8868bb11e7a8 (bug 1358251) for assertions on Windows
MozReview-Commit-ID: Laffk7TtWgP
2017-04-25 15:50:52 -07:00
David Major
23f65c763c Bug 1358251: EnsureSymInitialized doesn't need to EnsureWalkThreadReady. r=mstange 2017-04-25 16:10:14 -04:00
David Major
27bac27c90 Bug 1355559: Acquire the stack walk workaround lock in LdrResolveDelayLoadedAPI. r=mstange 2017-04-25 16:10:14 -04:00
David Major
5be9ebe23b Bug 1349444: Take the stack walk workaround lock in LdrUnloadDll. r=mstange
This will prevent the profiler from suspending a target thread while that thread holds the RtlLookupFunctionEntry lock, which the profiler itself also wants to use.
2017-04-25 16:10:14 -04:00
Tom Tromey
99f4608655 Bug 1334278 - change mozilla::Smprintf to return a UniquePtr; r=froydnj
Change mozilla::Smprintf and friends to return a UniquePtr, rather than
relying on manual memory management.  (Though after this patch there are
still a handful of spots needing SmprintfFree.)

MozReview-Commit-ID: COa4nzIX5qa

--HG--
extra : rebase_source : ab4a11b4d2e758099bd0794d5c25d799a7e42680
2017-03-03 08:17:27 -07:00
David Major
fc18ed5283 Bug 1354292: Let the stack walker unwind leaf functions without a function entry. r=njn 2017-04-18 18:52:06 -04:00
David Major
e97b534db7 Bug 1353420: Register the JIT region with mozglue so it can avoid stack-walking that code. r=luke 2017-04-18 18:52:04 -04:00
Nathan Froyd
997e7cec82 Backout e824f50f5ca6 (bug 1353787) for massive OS X test bustage on a CLOSED TREE 2017-04-07 16:35:45 -04:00
Nathan Froyd
51d8c87bbb Bug 1353787 - use first-fit mutexes on OS X; r=erahm
Changing the fairness policy makes OS X mutexes roughly an order of
magnitude faster in the contended case.
2017-04-07 15:42:19 -04:00
Tom Tromey
8e0d0b9741 Bug 1350097 - handle very long floating point output in cvt_f; r=froydnj
Bug 1350097 points out a case where the assertion in cvt_f, added in
https://bugzilla.mozilla.org/show_bug.cgi?id=1060419#c127, triggers.
Before this addition, code calling this printf variant would end up just
printing something invalid, as the truncated value would be emitted.
This patch increases the buffer size to be sufficient for DBL_MAX.

MozReview-Commit-ID: AVphURGa6jL

--HG--
extra : rebase_source : c7a2dad8e496434a631441ccc25dfee2db1ea71a
2017-03-24 08:18:51 -06:00
Jan Beich
ff86fa2735 Bug 1350955 - Enable adaptive mutex usage on FreeBSD. r=froydnj
MozReview-Commit-ID: 7bfgK4TfZsH

--HG--
extra : rebase_source : f369497ac3b907b3f05cb78ce8567cbe4016fda4
2017-03-27 15:14:00 +00:00
Nathan Froyd
5b67a265dc Bug 1312087 - part 0 - use PTHREAD_MUTEX_ADAPTIVE_NP mutexes on Linux/glibc; r=erahm
This matches NSPR's behavior for its PRLock type.
2017-03-21 11:20:36 -04:00
Tom Ritter
bdf4234dd1 Bug 1344809 Move function definition to cpp to fix mingw 'definition is marked dllimport' error r=froydnj
MozReview-Commit-ID: 8iAaa3FXvDq

--HG--
extra : rebase_source : aa2b14a00127c87853ebbc9961393e8c82ea0882
2017-03-13 11:51:10 -05:00
Aaron Klotz
7dba35d193 Bug 1344827: Only disable critical section debug info on beta and release; r=fitzgen
--HG--
extra : amend_source : 764d4a20231a3262bda1dd463d82fc018815ab7b
2017-03-06 12:11:45 -07:00
Tom Tromey
3f70992816 Bug 1341880 - do not emit trailing \0 in PrintfState; r=glandium
MozReview-Commit-ID: 2di7CsDCWLF

--HG--
extra : rebase_source : f5469d4b3e818204848123ea163c7f0f08563f7c
2017-02-27 13:29:54 -07:00
Nathan Froyd
8828af4759 Bug 1336344 - use sizeof(pthread_mutex_t) to size MutexImpl's platformData_; r=fitzgen
For pthreads platforms, we have a terribly large condition for the size
of a MutexImpl that attempts to hardcode the number of words that
pthread_mutex_t takes.  This hardcoding isn't always correct.  We
originally did this to try and keep <pthread.h> includes out of the
headers, but the PlatformConditionVariable.h header already includes
<pthread.h> anyway, and <pthread.h> isn't so namespace-invasive as
<windows.h>.  So go ahead and include <pthread.h> and use the actual
definition of pthread_mutex_t to size the platformData_ member.
2017-02-22 16:41:35 -05:00
Makoto Kato
a5d634db34 Bug 1256565 - Part 1. Implement GetEventTimeStamp(). r=jchen,karlt
Android uses android.os.SystemClock.uptimeMilles for event time and SystemClock.uptimeMilles uses SYSTEM_TIME_MONOTONIC.

So since TimeStamp posix impelemetation uses SYSTEM_TIME_MONOTONIC too, so we can use event time on FromSystemTime.

MozReview-Commit-ID: 5Qb5kmnHHCI

--HG--
extra : rebase_source : 26d1554fa60e3216edfd4b149380910fe2a9d845
2017-02-20 12:34:44 +09:00
Wes Kocher
8c4ce17711 Merge inbound to m-c a=merge
MozReview-Commit-ID: DCUf7VEDrTt
2017-02-17 13:38:51 -08:00
Jan de Mooij
7c17ed23c6 Bug 1337499 - Take the Win64 stackwalk lock in WalkStackMain64 to avoid deadlocks. r=mstange 2017-02-17 10:51:11 +01:00
Tom Tromey
410b2299d0 Bug 1060419 - update comments in Printf.h; r=froydnj
MozReview-Commit-ID: H1njGy5JJ6f

--HG--
extra : rebase_source : c8874a1e13fa4e12790fa4ba909671ba9c2da01b
2017-01-05 15:43:45 -07:00
Tom Tromey
f0b5bc050d Bug 1060419 - use result of SprintfLiteral in Printf.cpp; r=froydnj
MozReview-Commit-ID: HSHAeKVu6PU

--HG--
extra : rebase_source : ad15e1e0e13cf3974a1116f796b7a201fcfb36fd
2017-01-05 08:15:48 -07:00
Sylvestre Ledru
6d892b8f7f Bug 1338086 - Remove useless else blocks in order to reduce complexity in mozglue/misc/ r=froydnj
MozReview-Commit-ID: Btyl5N6EsUY

--HG--
extra : rebase_source : 087a18c13a70801bf8417478654b125665e3f2ec
2017-02-09 10:55:26 +01:00
Tom Tromey
6c09e4eb63 Bug 1060419 - add %S and %ls support to Smprintf; r=froydnj
MozReview-Commit-ID: CQMZCkCOXDV

--HG--
extra : rebase_source : 6b4ca87528cf820c71d62c50b734e3a4c06139ff
2017-01-19 15:56:09 -07:00
Tom Tromey
1610a7b7cb Bug 1060419 - move Smprintf et al to mozglue, r=froydnj
MozReview-Commit-ID: 4U23r6JhLls

--HG--
extra : rebase_source : 8e020d5d26d31b95f5b2c0e729ec27540c123b01
2017-01-13 10:25:59 -07:00
Nathan Froyd
bf582d23fa Bug 1312086 - part 3 - move js::{Mutex,ConditionVariable}Impl to mozglue; r=fitzgen,glandium 2017-02-08 20:52:55 -05:00
Botond Ballo
c57de18781 Bug 1331495 - Add an operator<< overload for TimeDuration. r=froydnj
MozReview-Commit-ID: dYKdlKI8Le

--HG--
extra : rebase_source : a56ed17f1c505ca50e3a9bb9ad0e34a1060ef1ac
2017-01-16 16:55:58 -05:00
Eric Rahm
87cfbc1b65 Bug 1322735 - Remove MOZ_STACKWALKING define. r=glandium
With frame pointer omission disabled we should always have usable stacks on Windows. This allows us to remove the MOZ_STACKWALKING define as it will always be enabled.

MozReview-Commit-ID: 54xs3Hf1r4P

--HG--
extra : rebase_source : dfaf13fb4c2185985f4f074c338ccf1fef8f3c94
2016-12-20 15:11:36 -08:00
Phil Ringnalda
1c2d0d367f Backed out 3 changesets (bug 1322735) for ASan leaks and xpcshell/selftest.py failures
CLOSED TREE

Backed out changeset 01cfc71ce542 (bug 1322735)
Backed out changeset 84c729c41230 (bug 1322735)
Backed out changeset b419aaefae95 (bug 1322735)
2017-01-10 20:17:34 -08:00
Eric Rahm
2e195de610 Bug 1322735 - Remove MOZ_STACKWALKING define. r=glandium
With frame pointer omission disabled we should always have usable stacks on Windows. This allows us to remove the MOZ_STACKWALKING define as it will always be enabled.

MozReview-Commit-ID: 54xs3Hf1r4P

--HG--
extra : rebase_source : 5fe27cdeeb464d81fbedc8c02ac187658bd759e7
2016-12-20 15:11:36 -08:00
Ting-Yu Chou
9b4a42ffed Bug 1322465 part 9 - Use explicit/MOZ_IMPLICIT for the unary constructors in mozglue/. r=Ehsan
MozReview-Commit-ID: MHgGyQGRdM

--HG--
extra : rebase_source : 9b5cb97c0264a734cd166393a49252db22af4bf1
2016-12-16 15:57:53 +08:00
Botond Ballo
71a6962e97 Bug 1321885 - Add Max() and Min() methods to TimeDuration. r=froydnj
MozReview-Commit-ID: 4WvRa3ZSrmP

--HG--
extra : rebase_source : d7433ab7cdb949194e494568f0bf94b91639e27e
extra : source : bac442a609767fbb21b266dbd719d6eb968fbf3d
2016-07-27 14:07:57 -04:00
Cervantes Yu
daacdebe95 Bug 1317259 - Prevent double init in mozilla::TimeStamp::Startup() on Windows. r=froydnj
MozReview-Commit-ID: JKfEFqo5qHj

--HG--
extra : rebase_source : 730f9a969215d559dbcc3c2b4126fa543de5dbbe
2016-11-14 19:01:17 +08:00
Eric Faust
121151ec67 Bug 1263595 - Avoid deadlock between the JIT and the gecko profiler on win64. (r=froydnj) 2016-09-15 21:35:14 -07:00