Commit Graph

82 Commits

Author SHA1 Message Date
Eric Rahm
599ee96a71 Bug 1474636 - Report memory used by nsMemoryReporterManager. r=njn
This adds reporting of nsMemoryReporterManager's internals. Currently we just
report the weak and strong ref hashtables which have shown up in DMD reports.

The new entry is '/explicit/memory-reporter-manager'.

--HG--
extra : rebase_source : ab785a96a0dd52a4e09718bea015363cdf2c9c8a
extra : source : 86ba30c70a27ab73f096fe88d2005aad8470ee05
2018-07-10 15:38:52 -07:00
Ciure Andrei
1a3643ede0 Backed out 1 changesets (bug 1474636) for test_crash_with_memory_report.js failure CLOSED TREE
Backed out changeset 86ba30c70a27 (bug 1474636)
2018-07-12 02:21:33 +03:00
Eric Rahm
e2148bdfde Bug 1474636 - Report memory used by nsMemoryReporterManager. r=njn
This adds reporting of nsMemoryReporterManager's internals. Currently we just
report the weak and strong ref hashtables which have shown up in DMD reports.

The new entry is '/explicit/memory-reporter-manager'.

--HG--
extra : rebase_source : 53e4cbf127101489edfe85f31088cd049369cef8
extra : histedit_source : 1575adfcfb9d6492a51ab84cf417e07466068939
2018-07-10 15:38:52 -07:00
Bogdan Tara
3287e1104c Merge inbound to mozilla-central. a=merge 2018-05-18 01:04:08 +03:00
Jan de Mooij
575aec161b Bug 1461677 - Rename compartment to realm in the memory reporting code. r=njn 2018-05-17 16:15:18 +02:00
Gabriele Svelto
5a541b79f4 Bug 1451005 - Add low commit-space event counts to the memory reporter; r=njn
MozReview-Commit-ID: 1jZwxj427tg

--HG--
extra : rebase_source : 5c5b674ef3094778c0e6aeb8d4abad146604be53
2018-05-16 13:58:10 +02:00
Cervantes Yu
3ae5186923 Bug 1375281 - Part 2: Implementation of nsMemoryReporterManager::GetHeapAllocatedAsync(). r=erahm,froydnj
Implement nsMemoryReporterManager::GetHeapAllocatedAsync() by dispatching
nsMemoryReporterManager::GetHeapAllocated() to a thread pool and dispatching
the result back to the main thread to run the callback with the requested
attribute.

MozReview-Commit-ID: 9jj1UYqu5KD

--HG--
extra : rebase_source : a3620c6313b3253c41adff8d67c77a347240891b
extra : amend_source : 1732a5e4390fadbc597b6a61dc7d51e892f8441e
extra : histedit_source : b892d2046a07fe00368e8f1976394dc1f4c2f496
2017-07-06 11:19:40 +08:00
Bill McCloskey
207af130a2 Bug 1343396 - Split CycledCollectedJSContext and XPCJSContext into separate context and runtime classes (r=mccr8)
To run JS in separate cooperative threads, we need to split up per-thread state
from per-runtime state. This patch does that for XPConnect.

MozReview-Commit-ID: 407SlJ7nR6v
2017-04-18 17:01:04 -07:00
Andrew McCreight
36ebb195c2 Bug 1356268 - Fix nsMemoryReporter unified build bustage. r=froydnj
The header uses nsDataHashtable, but not nsTHashtable.

MozReview-Commit-ID: 1wxmqjTyPMS

--HG--
extra : rebase_source : 869a63c52f688e731343fab7ae0b1f3f9eaec5da
2017-04-13 07:26:44 -07:00
David Anderson
79ae0d0a47 Factor ContentParent methods out of nsMemoryReportingManager. (bug 1321492 part 4, r=erahm) 2017-01-26 16:35:54 -08:00
Nicholas Nethercote
9d5a878581 Bug 1291970 (part 1) - Use MOZ_MUST_USE in nsMemoryReporterManager. r=erahm.
--HG--
extra : rebase_source : 11223e1aadb08c2ce71f783d68b37c135fe4bee5
2016-08-04 12:14:14 +10:00
Nathan Froyd
01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Eric Rahm
80fca20565 Bug 1194555 - Part 6: Run reporters asynchronously. r=njn,jld,ted 2015-10-14 16:52:59 -07:00
Eric Rahm
e93f0f86a3 Bug 1194555 - Part 5: Add option for async memory reporters. r=njn 2015-10-14 16:52:58 -07:00
Eric Rahm
9feffe31c7 Bug 1194555 - Part 4: Rename GetReportsState PendingProcessesState. r=njn 2015-10-14 16:52:57 -07:00
Eric Rahm
45097b163a Bug 1194555 - Part 0: Cleanup GetReportsState constructor. r=njn
Move GetReportsState ctor to the impl so that mChildrenPending doesn't have
to be heap allocated.
2015-10-14 16:52:52 -07:00
Wes Kocher
a69f1f52e7 Backed out 7 changesets (bug 1194555) for xpcshell failures
Backed out changeset e77be333f4fb (bug 1194555)
Backed out changeset 11951462a37c (bug 1194555)
Backed out changeset 99b27aa952c5 (bug 1194555)
Backed out changeset 70a8ed3b6a45 (bug 1194555)
Backed out changeset 748bfebe81e7 (bug 1194555)
Backed out changeset cbaac05a2934 (bug 1194555)
Backed out changeset fcbfd1379fcd (bug 1194555)
2015-10-06 14:40:51 -07:00
Eric Rahm
f2e4cb7dfe Bug 1194555 - Part 6: Run reporters asynchronously. r=njn,jld 2015-10-06 11:23:36 -07:00
Eric Rahm
d3e60f2da6 Bug 1194555 - Part 5: Add option for async memory reporters. r=njn 2015-10-06 11:23:35 -07:00
Eric Rahm
6fd2bbb5e8 Bug 1194555 - Part 4: Rename GetReportsState PendingProcessesState. r=njn 2015-10-06 11:23:34 -07:00
Eric Rahm
dc17e5a1b8 Bug 1194555 - Part 0: Cleanup GetReportsState constructor. r=njn
Move GetReportsState ctor to the impl so that mChildrenPending doesn't have
to be heap allocated.
2015-10-06 11:23:30 -07:00
Birunthan Mohanathas
a8939590de Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Jed Davis
a77ba18be9 Bug 1154053 - Limit concurrency of e10s memory reporting. r=erahm
This changes the way nsMemoryReporterManger handles child processes;
instead of using an observer message and trying to keep a count of child
processes expected to answer, it directly iterates a copy of the list
of content processes and explicitly handles children which exit before
their reports start.

Note that GC/CC logs still run at full concurrency, and that no child
reports start until the parent is finished (see bug 1151597) regardless
of concurrency limit.
2015-05-06 20:51:00 +02:00
Phil Ringnalda
c1284c6108 Back out e05936099653 (bug 1154053) on suspicion of causing the hellish frequency of Android 2.3 robocop-2 crashes that resulted in this CLOSED TREE, a=bustage 2015-05-07 22:41:26 -07:00
Jed Davis
bc4db515c0 Bug 1154053 - Limit concurrency of e10s memory reporting. r=erahm
This changes the way nsMemoryReporterManger handles child processes;
instead of using an observer message and trying to keep a count of child
processes expected to answer, it directly iterates a copy of the list
of content processes and explicitly handles children which exit before
their reports start.

Note that GC/CC logs still run at full concurrency, and that no child
reports start until the parent is finished (see bug 1151597) regardless
of concurrency limit.
2015-05-06 20:51:00 +02:00
Jed Davis
05e38d787e Bug 1151597 - Step 2: Don't start child process memory reports until parent is finished. r=erahm
--HG--
extra : rebase_source : e271fd7997012d9f3eaff78c1dfff656347442be
2015-04-27 15:46:00 -04:00
Jed Davis
1b9d15f48d Bug 1151597 - Step 1: Change memory reporting IPC to send one report per message. r=erahm
Also fixes bug 1005154 -- since there's now a method for "end of report",
we might as well call it from ActorDestroy instead of Recv__delete__.

--HG--
extra : rebase_source : 89f467fbc553a1a3a4d9b144fff747fa3447f21b
2015-04-27 15:45:00 -04:00
Ehsan Akhgari
883849ee32 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Nicholas Nethercote
b5b1a4609e Bug 1145007 (part 2) - Add a "resident-peak" distinguished amount and memory reporter on Unix. r=erahm.
--HG--
extra : rebase_source : 3fb7c2020d3abd29fdbf8042a0932b24d92b234b
2015-03-19 15:16:37 -07:00
Trevor Saunders
fd5e9d1fcc bug 1047696 - mark a number of classes MOZ_FINAL to get compilers to devirtualize more r=froydnj 2014-08-05 13:33:55 -04:00
Benoit Jacob
81effa4bca Bug 1028588 - Fix dangerous public destructors in xpcom/ - r=bsmedberg,khuey,nfroyd 2014-06-30 18:11:53 -04:00
Wes Kocher
03da42e8b1 Backed out 4 changesets (bug 1028588) for build bustage
Backed out changeset 13a8bae671ca (bug 1028588)
Backed out changeset 19a19833f1d6 (bug 1028588)
Backed out changeset d5fae80054de (bug 1028588)
Backed out changeset 5942ad3859b8 (bug 1028588)
2014-06-30 15:50:19 -07:00
Benoit Jacob
522e4724cc Bug 1028588 - Fix dangerous public destructors in xpcom/ - r=bsmedberg,khuey,nfroyd 2014-06-30 18:11:53 -04:00
Nicholas Nethercote
aaf6fb2124 Bug 1010064 - Allow memory reports to be anonymized. r=bsmedberg.
--HG--
extra : rebase_source : 5eb756b17a97e751deb0f47e909fdb35533cb23b
2014-05-20 23:06:54 -07:00
Jan Keromnes
5afc74ea35 Bug 976024 - Track Unique Set Size in the Developer HUD. r=21, r=njn 2014-06-13 06:38:00 +02:00
Nicolas B. Pierron
e05d0c8fe9 Bug 1014071 - Add support for USS on Linux. r=BenWa,njn 2014-06-05 08:31:09 -07:00
Birunthan Mohanathas
fb371cca99 Bug 995730 - Fix style violations in xpcom/base/. r=froydnj,continuation 2014-05-13 20:41:38 +03:00
Jed Davis
9f8b3629ca 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
58d5acde55 Bug 991412: Provide static convenience method to retrieve RSS. r=njn 2014-04-07 10:46:20 -04:00
Jed Davis
76ab6d796b 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
Nicholas Nethercote
7cce3037c1 Bug 956199 - Fix style of xpcom/base/nsMemoryReporterManager.{h,cpp}. r=bsmedberg.
--HG--
extra : rebase_source : 79a8053c97ecb0786f0a722838f66fc85c5e1368
2014-01-02 19:19:32 -08:00
Neil Rashbrook
5c623b13c4 Bug 969324 Remove unnecessary ReporterEnumerator r=njn 2014-02-10 19:26:08 +00:00
Nathan Froyd
b6923671aa Bug 964415 - add include guards to nsMemoryReporterManager.h; r=njn 2014-01-27 14:54:37 -05:00
Nicholas Nethercote
39004db706 Bug 936964 (part 7, attempt 2) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
* * *
Bug 936964 (part 7b) - Fix a use-after-free found by ASan.

--HG--
extra : rebase_source : d38ab6b63e9d576773baf8e55fa4f7182c33915e
2013-11-07 16:35:30 +11:00
Ehsan Akhgari
a903aefdc0 Backed out 9 changesets (bug 943660, bug 936964) because of ASAN use-after-free crashes on browser-chrome and mochitest-other
Backed out changeset 85486c4aa3d8 (bug 936964)
Backed out changeset 25312eb71998 (bug 936964)
Backed out changeset 6dbb8333960c (bug 936964)
Backed out changeset da6465ad476f (bug 936964)
Backed out changeset a87ffc992f38 (bug 936964)
Backed out changeset 4ae3a61182db (bug 936964)
Backed out changeset 34e9c3137804 (bug 936964)
Backed out changeset fd1459e71585 (bug 936964)
Backed out changeset 3e8a701d8bdc (bug 943660)

Landed on a CLOSED TREE

--HG--
rename : content/canvas/src/WebGLMemoryTracker.h => content/canvas/src/WebGLMemoryReporterWrapper.h
2013-11-27 20:05:00 -05:00
Nicholas Nethercote
bc475c75df Bug 936964 (part 7) - Make lots of classes report their own memory consumption, instead of using a separate reporter class. r=mccr8,sr=bz.
--HG--
rename : content/canvas/src/WebGLMemoryReporterWrapper.h => content/canvas/src/WebGLMemoryTracker.h
extra : rebase_source : 611e8d35907959b163aeced1c4ffe1d265048fe6
2013-11-07 16:35:30 +11:00
Nicholas Nethercote
8aa18001f7 Bug 929797 - Implement proper memory reporting for child processes. r=khuey.
--HG--
extra : rebase_source : f0788757afc2097830295170120e1e2094993cc7
2013-10-22 22:26:24 -07:00
Nicholas Nethercote
dac7e13e71 Bug 918207 - Support per-tab memory profiling. r=billm,mccr8,till,smaug,nfroyd.
--HG--
extra : rebase_source : 7603eaedbd761c6b231b1b911f719388864755e6
2013-10-22 14:53:26 -07:00
Nicholas Nethercote
dc5c29f71c Bug 913260 (part 4) - Use distinguished amounts for all the memory measurements done by telemetry. r=mccr8.
CLOSED TREE
2013-09-19 15:52:30 -07:00
Nicholas Nethercote
952691a40d Bug 913260 (part 3) - Formalize the concept of "distinguished amounts" in the memory reporter manager. r=mccr8. 2013-09-19 15:52:28 -07:00