Commit Graph

1574 Commits

Author SHA1 Message Date
Andrew McCreight
8948c072d8 Bug 1005396 - Finish a long ICC early after graph building has finished. r=smaug 2014-05-14 09:45:50 -07:00
Nicholas Nethercote
411cb9c980 Bug 1005836 - Avoid slop NodePool::Block allocations. r=mccr8.
--HG--
extra : rebase_source : 2297b22e7a5d6679d8b25679d338f001c7427b60
2014-05-13 20:42:27 -07:00
Jed Davis
eb69e55005 Bug 973090 - IPC remoting for child GC/CC logging. r=mccr8, r=bent
This has a few semi-interdependent pieces:

* Factoring out the file opening/closing/renaming from the GC/CC logging.

* Using IPC to have the child log to files that the parent opened.

* Changing nsIMemoryInfoDumper.dumpGCAndCCLogsToFile to report completion
  of child process logging (which was impossible before this, and which is
  needed to have a meaningful test case).

* Changing about:memory to dump logs for child processes, matching the
  behavior of the "Measure" button, because it can tell the user where
  they are now.

* Add a test for multiprocess GC/CC log dumping (only of the XPCOM
  interface, not by clicking buttons and scraping the about:memory page,
  but done as a chrome mochitest to start remote browsers); based on
  test_memoryReporters2.xul in the same directory.
2014-05-13 13:13:00 -04:00
Andrew McCreight
9e9b401d1d Bug 958353, part 2 - Always check if an ICC is in progress in FixWeakMappingGrayBits(). r=smaug
This makes it easier to test against invalid interleavings of IGC and ICC.
2014-05-13 11:58:39 -07:00
Birunthan Mohanathas
861e6d5ffe Bug 995730 - Fix style violations in xpcom/base/. r=froydnj,continuation 2014-05-13 20:41:38 +03:00
Andrew McCreight
7ee0fd7bbf Bug 972605, part 3 - Make nsErrorService use a modern hash table. r=froydnj 2014-05-09 13:47:37 -07:00
Andrew McCreight
a3ef5307d4 Bug 972605, part 2 - Inline nsInt2StrHashtable. r=froydnj
Also clean up the style a little.
2014-05-09 13:47:36 -07:00
Andrew McCreight
60e975c286 Bug 972605, part 1 - Rename nsErrorService arguments to aFoo form. r=froydnj 2014-05-09 13:47:36 -07:00
Andrew McCreight
e62951375f Bug 1005500 - Use a separate linear scan pass to mark nodes white in ScanRoots. r=smaug
The existing code for ScanRoots looks at all traversal roots in the graph,
and floods white or black from them. This can take up a large chunk of the
Scan/Unlink slice of ICC, maybe because graph traversal has poor locality.

Outside of a leak, the cycle collector graph is usually only large when
there is a lot of garbage (95% or more of the graph), so we want to
speed up white marking.

To do this, I add a new pass that scans every node and directly sets the
color of any node that should be white, without flooding. This is very
fast. Then a second pass floods black from any remaining grey nodes.

On the page close CC for a real page, I measured a 10x improvement in
ScanRoots() time with this algorithm, from 3ms to 0.3ms.
2014-05-08 11:28:03 -07:00
Jonathan Watt
3b52ee43ad Bug 590790 part 2 - Add memory reporter for VectorImage's SVGDocumentWrapper's document. r=dholbert, r=njn, r=seth 2014-05-08 10:53:00 +01:00
Andrew McCreight
48337cf849 Bug 1005975 - Define FloodBlackNode as a convenience function. r=smaug 2014-05-06 17:25:27 -07:00
Andrew McCreight
09dabdad5b Bug 1006635, part 2 - Add more Checkpoints to the cycle collector. r=smaug 2014-05-06 17:25:27 -07:00
Andrew McCreight
d574e71a90 Bug 1006635, part 1 - Make TimeLog use doubles and reduce the threshold. r=smaug 2014-05-06 17:25:27 -07:00
Andrew McCreight
72fc10903d Bug 1005232 - Log number of incremental cycle collector slices. r=smaug 2014-05-06 17:25:26 -07:00
Andrew McCreight
bdea2bfd58 Bug 1004017 - Rename CycleCollectedJSRuntime::NeedCollect() and Collect(). r=smaug 2014-05-06 17:25:26 -07:00
Andrew McCreight
67aeb89cc4 Bug 958353 - Add finishCC() and ccSlice() methods for testing incremental cycle collection. r=smaug 2014-05-06 17:25:26 -07:00
Ed Morley
b83255e4e2 Fix incorrect resolution of merge conflicts between bug 995730 and bug 1001542 (no bug; CLOSED TREE)
--HG--
extra : amend_source : 5b90e13f8f3a7419e26acee6e483855bdd8c3558
2014-05-06 09:00:06 +01:00
Wes Kocher
51b4f13fac Merge m-c to b2g-inbound 2014-05-05 21:19:59 -07:00
Dave Hylands
cbc0a4b450 Bug 1001542 - Make OS_VERSION use b2g version info rather than Linux version info. 2014-05-05 15:24:58 -07:00
Eric Rahm
33ef4a9017 Bug 999473 - report number of open file descriptions (fd) in about:memory. r=njn 2014-04-25 13:00:15 -07:00
Ryan VanderMeulen
a4f9513be6 Backed out changeset 83d914c3431d (bug 999473) for Linux mochitest-other failures. 2014-05-01 16:45:21 -04:00
Birunthan Mohanathas
cf3e12c35a Bug 995730 - Change xpcom/base/ to use 2 space indentation
This also removes trailing whitespace in reindented files.
2014-05-05 20:30:39 +03:00
Eric Rahm
57fc0ea6ef Bug 999473 - report number of open file descriptions (fd) in about:memory. r=njn 2014-04-25 13:00:15 -07:00
Alphan Chen
f2b3623c0f Bug 1000755 - [about:service] Refine the format of output reports. r=dhylands 2014-04-28 14:20:41 +08:00
Birunthan Mohanathas
ff8ce9bd42 Bug 900908 - Part 3: Change uses of numbered macros in nsIClassInfoImpl.h/nsISupportsImpl.h to the variadic variants. r=froydnj 2014-04-27 03:06:00 -04:00
Zack Weinberg
d5fc5cb4a1 Bug 1001842 part 1: record the umask in NS_InitXPCOM2 and expose it to JS via nsSystemInfo. r=bsmedberg 2014-04-26 10:56:54 -04:00
Nathan Froyd
7301de13be Backout 2629257557ff:284be1609a50 (bug 1001842) for debug xpcshell bustage 2014-04-26 13:18:32 -04:00
Zack Weinberg
0ebd4af1d3 Bug 1001842 part 1: record the umask in NS_InitXPCOM2 and expose it to JS via nsSystemInfo. r=bsmedberg 2014-04-26 10:56:54 -04:00
Eric Rahm
73af1e6314 Bug 1001137 - Use proper pref for configuring fifo directory. r=froydnj
--HG--
extra : rebase_source : 6d45f4b6b9d86ab6718d07a4a7bfe83454d095fd
2014-04-25 13:53:01 -07:00
Eric Rahm
18f7073ce7 Bug 1000461 - Enable triggering memory report via fifo device on OS X. r=froydnj 2014-04-24 17:35:59 -07:00
Eric Rahm
4277a8d2df Bug 1001137 - Enabling FifoWatcher via user pref does not work. r=froydnj 2014-04-24 15:58:57 -07:00
Trevor Saunders
3f904cfc43 bug 980753 - make nsRefPtr movable r=froydnj 2014-02-26 18:11:14 -05:00
Eric Faust
a41d6a1508 Bug 1001126 - Allow AllTraces CC logging other than at shutdown. (r=mccr8) 2014-04-24 14:28:49 -07:00
Eric Rahm
78fb9239ae Bug 1000621 - Check if DMD is enabled before dumping. r=njn. DONTBUILD 2014-04-24 12:43:11 -07:00
Steven Michaud
4bae9fb75a Bug 997908 - Add null check to ReleaseSliceNow() as bandaid for Mac topcrasher. r=smaug 2014-04-24 11:46:39 -05:00
Terrence Cole
4ab31f28b9 Bug 807168 - Make JSTracer into a real C++ class and kill the macro accessors; r=jonco,mccr8
--HG--
rename : js/public/Tracer.h => js/public/TracingAPI.h
2014-04-11 15:19:05 -07:00
Dave Hylands
775a6c8685 Bug 990230 - Fix heap use-after-free in memory reporter. r=n.nethercote 2014-04-17 16:57:30 -07:00
Terrence Cole
fb5836e633 Bug 994413 - Make Gecko use the same value marking semantics as SpiderMonkey; r=jonco,mccr8 2014-04-09 12:42:48 -07:00
Nathan Froyd
2585135c22 Bug 993546 - refactor malloc-wrapping memory reporter implementations; r=njn 2014-04-08 13:51:20 -04:00
Márk Bartos
2aab2cb3ab Bug 106787 - Fix: Remove nsIAllocator and it's references. r=bsmedberg 2014-04-14 17:20:45 +02:00
Eric Rahm
66407f4d7b Bug 995345 - Improve efficiency of NS_DescribeCodeAddress. r=froydnj
--HG--
extra : rebase_source : ab839d1898d9fe122f2519a657391437dc7216bc
2014-04-14 13:25:04 -07:00
Boris Zbarsky
a13f2f38be Bug 995047. Change out stack/exception APIs to hand out AString instead of AUTF8String for filename/functionname, so we end up with fewer string conversions in practice. r=smaug 2014-04-11 22:20:40 -04:00
Jed Davis
4742184268 Bug 991791 - Fix some timing-dependent edge cases in nsMemoryReporterManager child handling. r=njn
The patch for bug 946407 changed the state space of
nsMemoryReporterManager in a subtle way: if we're using
MinimizeMemoryUsage with our report, then it's possible for all of
the child processes to finish (or for the timeout to expire) before
the parent has started reporting on itself.  This could cause us to
dereference a null pointer to the state struct in StartGettingReports().

To fix this, we keep track of whether the parent has actually done its
report, and defer finishing the report until then.
2014-04-07 13:33:00 +02:00
Ben Kelly
de721ff0ff Bug 991412: Provide static convenience method to retrieve RSS. r=njn 2014-04-07 10:46:20 -04:00
Maksim Lebedev
4b49370e14 Bug 968148 - Implement PointerCapture for pointer events. r=smaug
--HG--
extra : rebase_source : 331cf187194c8827e4b75835e85b2d79fdc419c7
2014-04-04 10:09:10 -07:00
Jan Varga
ad7713c9a2 Bug 856921 - Ensure that all quota failures are exposed to JS as QuotaExceededError. r=bent 2014-04-02 19:14:14 +02:00
Jim Blandy
db472c4503 Bug 951855: Add omitted doc fix requested by smaug in patch review. DONTBUILD r=smaug 2014-04-01 21:30:42 -07:00
Jim Blandy
414ad5b6e7 Bug 951855: Improve documentation for nsICycleCollectionListener and nsICycleCollectionHandler. r=smaug 2014-04-01 21:12:08 -07:00
snigdha
90f0f64d5b Bug 798033 - Headers should generally not do "using namespace" at file scope. r=jib, r=jmathies, r=rjesup, r=ekr, r=ncameron, r=blassey 2014-04-01 08:29:25 -04:00
Ehsan Akhgari
5b9f45a1a5 Bug 798158 - Part 1: Use a pointer-sized type to store refcounts internally; r=bsmedberg 2014-03-27 16:38:33 -04:00
Ehsan Akhgari
e844abc702 Bug 798158 - Part 0: Do not treat format warnings as errors in a few directories; r=mshal 2014-03-27 16:38:20 -04:00
Jan Beich
7107ae4827 Bug 988910 - Explictly include unistd.h for read/write/close calls. r=njn 2014-03-27 15:06:14 -04:00
Ryan VanderMeulen
4dc5242df5 Merge inbound to m-c. 2014-03-26 20:58:31 -04:00
Alphan Chen
9eba7d103a Bug 964636 - Part 2: Implement "about:service" framework core. r=dhylands 2014-03-20 10:52:11 +08:00
Alphan Chen
9bb915d298 Bug 964636 - Part 1: Move common classes and functions out of nsMemoryInfoDumper. r=dhylands 2014-03-20 15:29:51 +08:00
Fabrice Desré
57b5964974 Bug 980419 - Don't access preferences omt in nsMemoryInfoDumper.cpp r=bsmedberg 2014-03-21 13:50:44 -07:00
Nathan Froyd
e12481c9a7 Bug 984443 - get rid of #ifndef $OTHER_HEADER bits from xpcom/ as relics of a bygone era; r=ehsan 2014-03-17 12:20:47 -04:00
Andrew McCreight
568c5bf52a Bug 984665 - Change the extra shutdown CC assertion into a warning. r=smaug 2014-03-19 06:05:18 -07:00
Andrew McCreight
eb58d2f29f Bug 984685 - Add cycle collector efficiency to COLLECT_TIME_DEBUG logging. r=smaug 2014-03-19 06:05:17 -07:00
Eric Faust
f71cba5543 Bug 987750 - Add CC logging options for process specifiers. (r=mccr8) 2014-03-26 09:57:38 -07:00
Kyle Huey
7067fb5db1 Bug 345123: Remove nsGetterAddRefs<T>'s operator nsISupports**. r=bsmedberg 2014-03-15 12:00:17 -07:00
Kyle Huey
84360900b0 Bug 967364: Pass already_AddRefed by reference instead of by value. r=bsmedberg 2014-03-15 12:00:17 -07:00
Kyle Huey
c49e590515 Bug 967364: Privatize already_AddRefed::mRawPtr. r=bsmedberg 2014-03-15 12:00:15 -07:00
Wes Kocher
aa89f0292c Merge inbound to m-c 2014-03-14 22:20:25 -07:00
Andrew McCreight
41c79b6620 Bug 948755 - Log incremental cycle collector roots. r=smaug 2014-03-14 16:07:07 -07:00
Andrew McCreight
5a31b3fd33 Bug 982847 - JSGCThingParticipant::Traverse should respect AllTraces. r=smaug 2014-03-14 16:07:07 -07:00
Yuan Xulei
858942196b Bug 910412 - Implement |getRoot|, |createDirectory| and |get| for Directory. r=dhylands, r=smaug 2014-03-05 11:25:40 +08:00
Ehsan Akhgari
7e1e6e5ff9 Bug 982072 - Don't leak the argument passed to RegisterStrongMemoryReporter if we fail to get the service; r=froydnj 2014-03-11 14:15:27 -04:00
Ryan VanderMeulen
5099e8a290 Backed out 5 changesets (bug 910412) for intermittent crash whack-a-mole.
Backed out changeset e3eb9463b3e1 (bug 910412)
Backed out changeset d5863d302bde (bug 910412)
Backed out changeset 422b66d4b1ca (bug 910412)
Backed out changeset 3431d59d752e (bug 910412)
Backed out changeset b1c0310cdac1 (bug 910412)
2014-03-11 12:17:03 -04:00
Andrew McCreight
d1cecbd6d3 Bug 981033 - Clear mActivelyCollecting before restarting CC. r=smaug 2014-03-11 07:34:35 -07:00
Yuan Xulei
260442ce9a Bug 910412 - Implement |getRoot|, |createDirectory| and |get| for Directory. r=dhylands, r=smaug 2014-03-05 11:25:40 +08:00
Jed Davis
6a4c4691a0 Bug 946407 - Reimplement DumpMemoryInfoToTempDir in terms of GetReports. r=njn
This winds up exposing things in the nsIMemoryReporterManager interface
that arguably don't belong at that level of abstraction -- "minimize
memory usage first" and DMD -- in order to take advantage of the
infrastructure that GetReports already has for managing the child
processes.
2014-03-04 18:27:13 -08:00
Andrew McCreight
bb417adcd3 Bug 978486 - Remove nsErrorService::mErrorStringBundleKeyMap. r=froydnj 2014-03-04 09:49:40 -08:00
Bobby Holley
a52c7e5aa2 Bug 975419 - Add a JS::TenuredHeap<JSObject*> overload to TraceCallbacks. r=mccr8,terrence 2014-03-03 08:53:42 -08:00
Jan Beich
90ced12417 Bug 977457 - Move _GNU_SOURCE ifdef a little up to account for cxxabi.h from libcxxrt. r=ehsan 2014-03-03 10:29:08 -05:00
Andrew McCreight
59f6206562 Bug 977688 - Get rid of CC_AbortIfNull. r=smaug 2014-02-28 09:56:23 -08:00
Masatoshi Kimura
90aff37f46 Bug 972761 - Move WindowsVersion.h to MFBT. r=froydnj
--HG--
rename : xpcom/base/WindowsVersion.h => mfbt/WindowsVersion.h
2014-02-28 07:58:47 +09:00
Andrew McCreight
537eb6fa81 Bug 962608 - Make PL_DHashTableInit infallible by default. r=briansmith,bsmedberg,ehsan,froydnj,jduell,jfkthame,roc,smaug 2014-02-27 10:04:09 -08:00
L. David Baron
2b5d6b3cfb Bug 976350 patch 2: Rename nsTraceRefcntImpl to nsTraceRefcnt. r=bsmedberg
Now that bug 975295 removed the obsolete wrapper class, we can rename
nsTraceRefcntImpl back to its correct pre-XPCOM-glue name,
nsTraceRefcnt.

The best part is that the one place where indentation should have needed
fixing, nsTraceRefcnt::DemangleSymbol, never had its indentation fixed
for the previous renaming.

--HG--
rename : xpcom/base/nsTraceRefcntImpl.cpp => xpcom/base/nsTraceRefcnt.cpp
rename : xpcom/base/nsTraceRefcntImpl.h => xpcom/base/nsTraceRefcnt.h
2014-02-26 13:36:36 -08:00
L. David Baron
4f04bcdc57 Bug 976350 patch 1: Move the contents of nsTraceRefcnt.h into nsISupportsImpl.h. r=bsmedberg
This makes sense since the file no longer contains anything with the
nsTraceRefcnt name in it, and it will allow renaming nsTraceRefcntImpl
back to nsTraceRefcnt.
2014-02-26 13:36:35 -08:00
Andrew McCreight
328968900f Bug 975849 - Remove overly strict assertion from CycleCollectedJSRuntime::TraverseRoots to restore previous behavior. r=smaug 2014-02-26 13:18:17 -08:00
Gabriele Svelto
b7270f6ca1 Bug 975434 - Remove the ability to cancel memory minimizations. r=njn 2014-02-25 16:37:30 +01:00
Ehsan Akhgari
e9da09b721 Backed out changeset 8d8165293e9b (bug 976372) because of Windows debug bustage on a CLOSED TREE 2014-02-24 23:01:54 -05:00
Ehsan Akhgari
a196505a83 Backed out changeset f74c9326b89c (bug 976247) because I landed the wrong patch :( 2014-02-24 21:07:37 -05:00
Ehsan Akhgari
5616d30270 Bug 976372 - Remove support for compilers which lack support for dynamic_cast<void*>; r=dbaron
--HG--
extra : rebase_source : 83a23e3b8fa4462eb70a1844b555c7605162a497
2014-02-24 21:06:06 -05:00
Ehsan Akhgari
98a137f278 Bug 976247 - Remove a useless static keyword from mozilla::detail::DEAD; r=froydnj
--HG--
extra : rebase_source : e73444ec000f1e867651d39cf2aa6beaf88bf4f3
2014-02-24 19:37:34 -05:00
L. David Baron
f6e4eec730 Bug 975295 patch 2: Remove the nsITraceRefcnt interface and any instantiation of the nsTraceRefcntImpl object. r=bsmedberg 2014-02-24 15:27:53 -08:00
L. David Baron
6f9a5e5e60 Bug 939610: Return to printing stack walk addresses in uppercase hexidecimal rather than lowercase, since we have scripts depending on it. r=ted 2014-02-24 15:27:52 -08:00
Terrence Cole
cedc05a6bc Bug 956081 - Fix the CC's GC-has-been-run detection in the presence of GGC; r=mccr8
--HG--
extra : rebase_source : de945b8e2f4972cb8b563f17a95c66cbba86a902
2014-02-20 13:38:32 -08:00
Ehsan Akhgari
f4ddde0564 Bug 935778 - Part 1: Add RefCountType, a type compatible with nsrefcnt, to MFBT; r=dbaron,froydnj 2014-02-21 14:45:50 -05:00
Chris Peterson
62f1c3dc89 Bug 712939 - Replace JS_STATIC_ASSERT with static_assert outside js/ directory. r=BenWa r=bsmedberg r=mccr8 2014-02-17 22:10:50 -08:00
Ehsan Akhgari
8212be10db Bug 935778 - Part 0.2: Spray some MOZ_DECLARE_REFCOUNTED_TYPENAME across the tree 2014-02-20 21:33:49 -05:00
Andrew McCreight
abda47e08d Bug 901597, part 2 - Add environment var to CC log only main or worker threads. r=smaug 2014-02-20 14:27:04 -08:00
Andrew McCreight
3764cf8b93 Bug 901597, part 1 - Move CC logging logic into nsCCParams. r=smaug 2014-02-20 14:27:03 -08:00
Andrew McCreight
1327a45957 Bug 972940 - Rename XPCOM_CC_ env vars to MOZ_CC_. r=smaug,njn 2014-02-20 14:27:03 -08:00
Andrew McCreight
57d072a733 Back out bug 712939 for not getting fully reviewed. 2014-02-20 06:40:56 -08:00
Chris Peterson
065c214bf6 Bug 712939 - Replace JS_STATIC_ASSERT with static_assert outside js/ directory. r=mccr8 2014-02-17 23:56:19 -08:00
Andrew McCreight
9ff86c6b97 Backout bug 972940 for valgrind leaks on this CLOSED TREE 2014-02-19 17:20:48 -08:00
Andrew McCreight
1ee530c7ef Backout bug 901597 for valgrind leaks 2014-02-19 17:19:17 -08:00
Andrew McCreight
607b39da48 Backout bug 901597 for valgrind leaks 2014-02-19 17:18:59 -08:00