Commit Graph

1360 Commits

Author SHA1 Message Date
Carsten "Tomcat" Book
94d78eb137 Backed out changeset a9715a3b0e13 (bug 937818) for static rooting hazard analysis bustage on a CLOSED TREE 2013-12-17 09:20:31 +01:00
Carsten "Tomcat" Book
c0f42c8fcf Backed out changeset ae01d2862600 (bug 937818) for static rooting hazard analysis bustage on a CLOSED TREE 2013-12-17 09:20:10 +01:00
Andrew McCreight
1793c5a978 Bug 937818, part 4 - Exceeded refcount nodes should already be black. r=smaug
Due to graph mutation during an incremental cycle collection, objects in the CC graph
may end up with more things pointing to them than they have a ref count. However, these
objects should never become garbage.
2013-12-16 21:30:54 -08:00
Andrew McCreight
d4062e027d Bug 937818, part 3 - Add ScanIncrementalRoots(). r=smaug
Any object that has been stored away somewhere in the middle of incremental graph
building must be treated as live, because we can't trust that the CC graph has
accurate information about it. If such an object is truly garbage, we'll unlink it
in the next cycle collection instead.
2013-12-16 21:30:53 -08:00
Andrew McCreight
4b4868e59c Bug 937818, part 1 - Add objects to the purple buffer on AddRef. r=smaug
ICC uses this to track objects that have been AddRef'd during ICC graph building.
For those objects, we may not have the proper information for them, so treat them
as live.
2013-12-16 21:30:53 -08:00
Nicholas Nethercote
af95c9e20c Bug 945973 (part 4) - Add SystemMemoryReporter, which presents Linux-specific, system-wide memory measurements taken from the OS. r=glandium.
--HG--
extra : rebase_source : 032d1d2944b790ac9e9e4d7f18c8ac9d79858ef3
2013-12-04 19:32:50 -08:00
Nicholas Nethercote
1b4f5fb9ca Bug 945973 (part 2) - Don't complain if there aren't any "explicit" reports for a process. r=mccr8.
--HG--
extra : rebase_source : 05129260b8a3e7cfbdadcecffe4c18715254323c
2013-12-03 20:19:41 -08:00
Nicholas Nethercote
7ab82a59e3 Bug 945973 (part 1) - Remove about:memory's is-a-sentence description check. r=mccr8.
--HG--
extra : rebase_source : bf47145a953a23b73fa1e7c441b695ffeceafbb8
2013-12-03 20:10:59 -08:00
Wes Kocher
a8ec671341 Backed out changeset ef0eeaec74a8 (bug 949183) on the theory that it somehow broke every single b2g test on a CLOSED TREE 2013-12-16 18:27:43 -08:00
Sean Stangl
0a79faf943 Bug 949183 - Fix jsid static constructor explosion. r=Waldo 2013-12-16 14:40:05 -08:00
Trevor Saunders
907dfc4528 bug 949821 - use MOZ_UTF16 more and NS_LITERAL_STRING less r=froydnj 2013-12-12 20:50:01 -05:00
Mike Hommey
3325256d97 Bug 945042 - Move NO_PROFILE_GUIDED_OPTIMIZE to moz.build. r=gps,r=njn 2013-12-09 13:39:26 +09:00
Bobby Holley
f9aa149cb5 Bug 937317 - Implement basic script settings stack machinery. r=bz 2013-12-11 17:51:57 -08:00
Jan Beich
2727a2615b Bug 948833 - Explicitly include <algorithm> for std::max on FreeBSD. r=njn 2013-12-11 10:35:33 -05:00
Andrew McCreight
74b0e52065 Bug 948686 - Remove unused variable declaration. r=njn 2013-12-11 10:35:13 -05:00
Ryan VanderMeulen
6fb3114a62 Merge m-c to inbound. 2013-12-10 15:48:16 -05:00
Ryan VanderMeulen
e6e2bad3d0 Merge fx-team to m-c. 2013-12-10 15:39:40 -05:00
Marina Samuel
25f5738d76 Bug 945842: Show Metro bookmarks folder in Windows 8 only. r=bbondy 2013-12-10 13:42:16 -05:00
Carsten "Tomcat" Book
d1456b8d0e Backed out changeset 85196889c598 (bug 945042) PGO Test Bustage 2013-12-09 13:00:59 +01:00
Carsten "Tomcat" Book
488d65b1a9 merge mozilla-inbound to mozilla-central 2013-12-09 09:02:29 +01:00
Mike Hommey
eaa22cd1f1 Bug 945042 - Move NO_PROFILE_GUIDED_OPTIMIZE to moz.build. r=gps,r=njn 2013-12-09 13:39:26 +09:00
Birunthan Mohanathas
759ab69b0a Bug 713082 - Part 2: Rename Util.h to ArrayUtils.h. r=Waldo
--HG--
rename : mfbt/Util.h => mfbt/ArrayUtils.h
2013-12-08 21:52:54 -05:00
Nicholas Nethercote
1e79a74289 Bug 947802 (part 2) - Replace enumerateReporters() with getReportsForThisProcess(). r=mccr8.
--HG--
extra : rebase_source : 1c70e838e3600745f69c5772a084398f78d4c477
2013-12-01 16:29:37 -08:00
Nicholas Nethercote
7b9f6814c3 Bug 947802 (part 1) - Inline DumpReport(). r=mccr8.
--HG--
extra : rebase_source : f5c8a655e88dc7641c2a9971d1174b0d689bf3b4
2013-12-01 16:14:26 -08:00
Nicholas Nethercote
bdfbbf7bcd Bug 947798 (part 2) - Remove MemoryMultiReporter, because it's no longer helpful. r=mccr8.
--HG--
extra : rebase_source : f6f74de69d8c1d79d38b84b19dff5439efc41075
2013-12-07 21:39:47 -08:00
Nicholas Nethercote
0b9a804eb0 Bug 947798 (part 1) - Rename NS_MEMORY_REPORTER_MALLOC_SIZEOF_FUN as MOZ_DEFINE_MALLOC_SIZE_OF. r=mccr8.
--HG--
extra : rebase_source : ec09d4c31264c15befb020375bf001a1ad1df6b8
2013-12-07 21:38:32 -08:00
Benjamin Smedberg
df726932bc Bug 946877 followup - move nsDebugImpl.cpp out of unified sources so that it relaly isn't part of PGO, r=ted 2013-12-10 12:26:53 -05:00
Andrew McCreight
f2438191d3 Bug 947719 - Call Checkpoint on every slice in nsCycleCollector::MarkRoots. r=smaug 2013-12-10 08:07:20 -08:00
Phil Ringnalda
e2e1627d17 Back out 35371620801a:bf2019278b77 (bug 937317) for gaia-ui-test bustage and frequent timeouts in its own test 2013-12-07 11:08:56 -08:00
Bobby Holley
f5cb1b3082 Bug 937317 - Implement basic script settings stack machinery. r=bz 2013-12-06 12:01:41 -08:00
Andrew McCreight
5900c0c4d6 Bug 937766, part 5 - Implement PrepareForGarbageCollection. r=smaug
Running the garbage collector can cause objects in the CC graph to
die, so just finish off an incremental cycle collection when we
start a GC.
2013-12-06 10:17:20 -08:00
Andrew McCreight
d1b570f76d Bug 937766, part 4 - Add GCGraph::IsEmpty method. r=smaug 2013-12-06 10:17:20 -08:00
Andrew McCreight
40ad83c922 Bug 937766, part 3 - Add mParticipant null checks. r=smaug
When an object dies during an incremental cycle collection, we null out
its mParticipant, so we must add various null checks to avoid crashing
when we reach the CC graph representation of an object that has died.
2013-12-06 10:17:20 -08:00
Andrew McCreight
b7c15b3db2 Bug 937766, part 2 - Make SnowWhiteKiller remove dying things from the CC graph. r=smaug
If we purge snow white objects while ICC is in progress, we need to
make sure to remove anything from the CC graph to avoid dangling pointers.
We don't need to do that after shutdown.
2013-12-06 10:17:20 -08:00
Andy Wingo
37b518d477 Bug 945813 - Paper over cycle collection problem in IndexedDB. r=mccr8, r=khuey 2013-12-04 14:53:25 +01:00
Benjamin Smedberg
81e6facd1d Bug 946877 - Don't PGO nsDebugImpl.cpp, to see if that aids stackwalking around NS_OOM_ABORT, r=ted 2013-12-06 09:00:07 -05:00
Carsten "Tomcat" Book
8eed12cc2f Backed out changeset 004fa11e352a (bug 937317) WinXP Build Bustage on a CLOSED TREE 2013-12-06 08:42:40 +01:00
Bobby Holley
95ee5b5404 Bug 937317 - Implement basic script settings stack machinery. r=bz 2013-12-05 21:34:16 -08:00
Jan Beich
54fe9a1901 Bug 946560 - Dump about:memory upon receiving a signal on FreeBSD as well. r=njn 2013-12-05 09:38:46 -05:00
Nicholas Nethercote
803d8a5bcc Bug 943660 (part 2) - Remove remnants of Remove nsIMemoryReporter::name.
--HG--
extra : rebase_source : 900bd1c641b26623cccf14d952b5387223b489eb
2013-12-03 20:01:24 -08:00
Jacek Caban
843b3659fc Bug 944905 - Fixed char16_t/wchar_t mismatch in xpcom/ r=bsmedberg 2013-12-04 13:19:09 +01:00
Ryan VanderMeulen
6294317fb8 Backed out changeset 2572592c326d (bug 945813) for Linux64 debug xpcshell crashes.
CLOSED TREE
2013-12-03 20:35:03 -05:00
Andy Wingo
c0c5e99d51 Bug 945813 - Paper over cycle collection problem in IndexedDB. r=mccr8, r=khuey 2013-12-03 18:35:04 +01:00
Andrew McCreight
dc0b895a45 Bug 937751, part 7 - Incrementalize nsCycleCollector::MarkRoots. r=smaug
Now that all of MarkRoots's state is stored on the heap, it can be run
incrementally. Like with Collect, it takes a budget to determine how
long it can run. Any residual budget will be available to the caller.

One difference is that Collect calls checkOverBudget() which always checks
the time, but MarkRoots uses isOverBudget() to determine if there is
any time remaining. This only checks the current time every
kNumNodesBetweenTimeChecks nodes, to reduce the overhead of checking.
2013-12-03 10:47:47 -08:00
Andrew McCreight
145f83b008 Bug 937751, part 6 - Allocate the current MarkRoots node on the heap rather than the stack. r=smaug
To make nsCycleCollector::MarkRoots incremental, we have to store all of its state on
the heap, so we can resume it.  The only remaining state to convert is the NodePool
enumerator.
2013-12-03 10:47:47 -08:00
Andrew McCreight
04314bee87 Bug 937751, part 5 - Add optional phase logging. r=smaug
For debugging purposes, it can be useful to see what ICC is currently
being run.
2013-12-03 10:47:47 -08:00
Andrew McCreight
994059dfef Bug 937751, part 4 - Incrementalize nsCycleCollector::Collect. r=smaug
This patch makes it so that Collect takes a time budget that describes
how much longer the collection can be run for. Then we run the current phase.
Once this is done, we check whether we have exceeded our time budget or
if we have finished a collection. If neither of those have happened, we
run the cycle collector some more.

If we're a manually triggered CC, and we were in the middle of an ICC when
the CC started, then once the current CC is complete, we start a new CC
immediately. This is needed to ensure that a manually specified listener
is used, and to ensure that any garbage objects the caller expects to be
collected are in fact collected.

Note that in this patch we are always passing in an unlimited budget to
Collect, so cycle collections will always be run to completion.
2013-12-03 10:47:47 -08:00
Andrew McCreight
5076bf4519 Bug 937751, part 3 - Protect against reentrancy with when incrementally CCing. r=smaug
Cycle collection protects against reentrancy by setting a flag to indicate a collection
is in progress. With synchronous CC, it is okay to set this in BeginCollection, and
clear it in CleanupAfterCollection. With ICC, this must be set and cleared in every
slice, so I moved the fixing of it to Collect.  I also changed the name of the variable,
because we can be in the middle of an ICC without the CC being actively running,
and it is only the latter we are worried about here.
2013-12-03 10:47:47 -08:00
Andrew McCreight
4411a6d49f Bug 937751, part 1 - Add and set incremental cycle collection phases. r=smaug 2013-12-03 10:47:46 -08:00
Andrew McCreight
744b82250b Bug 938407 - Null check FinishReportingCallback::mFinishDumping. r=froydnj 2013-12-02 13:11:43 -08:00