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

98 Коммитов

Автор SHA1 Сообщение Дата
Wes Kocher 46f04c50ca Backed out 5 changesets (bug 911216) for apparently tripling the runtime of SM(p) jobs along with introducing a failure in SM(p)
Backed out changeset d70235224525 (bug 911216)
Backed out changeset 2f503e373e6f (bug 911216)
Backed out changeset 2e98f8b36bc6 (bug 911216)
Backed out changeset bd5acdf4a2a1 (bug 911216)
Backed out changeset 58716e562690 (bug 911216)

MozReview-Commit-ID: 807ajHOZvQn
2016-04-04 15:41:17 -07:00
Till Schneidereit 0384df1a97 Bug 911216 - Part 13: Set Promise allocation stack as async stack for Promise callback jobs. r=efaust,bz 2016-03-22 16:22:23 +01:00
Eddy Bruel 3e2cb55980 Bug 1229769 - We should be able to use DOM promises in the worker debugger;r=khuey 2016-03-24 16:12:00 +01:00
Tooru Fujisawa e2a8d2a6b4 Bug 1153978 - Part 1: Separate buildIdOp from AsmJSCacheOps. r=jandem,bz 2016-01-01 14:19:20 +09:00
Boris Zbarsky 94e65058c3 Bug 1252565 part 1. Push the script environment preparer bits up from XPCJSRuntime to CycleCollectedJSRuntime, because we need them on workers to do ctypes on workers properly. r=bholley 2016-03-02 12:38:24 -05:00
Wes Kocher cba1a7bd55 Backed out 2 changesets (bug 1252565) for windows build bustage CLOSED TREE
Backed out changeset 9de2c10a1cc3 (bug 1252565)
Backed out changeset fc5c4cb02d24 (bug 1252565)

MozReview-Commit-ID: GCQedQwqslg

--HG--
extra : amend_source : 5fb6bd99e2ac56c01c06e1004262dfeb2ea56410
2016-03-02 10:44:11 -08:00
Boris Zbarsky 3baae07268 Bug 1252565 part 1. Push the script environment preparer bits up from XPCJSRuntime to CycleCollectedJSRuntime, because we need them on workers to do ctypes on workers properly. r=bholley 2016-03-02 12:38:24 -05:00
Andrew McCreight 8705772a81 Bug 1052793, part 1 - Do per-zone GC for CC_WAITING triggers. r=smaug 2016-02-18 15:21:48 -08:00
Andrea Marchesini 4bf350a0ba Bug 1247122 - Propagate the NS_ERROR_OUT_OF_MEMORY from CycleCollectedJSRuntime CTOR, r=khuey 2016-02-14 13:30:25 +00:00
Boris Zbarsky 5ba2fc1250 Bug 1243001 part 8. Tell SpiderMonkey to put its promise jobs into the CycleCollectedJSRuntime job queue. r=peterv
This will run the SpiderMonkey promise jobs more or less the same way that we
run Promise jobs right now, including using a Web IDL callback for the actual
invocation.
2016-02-09 17:40:31 -05:00
Chris Pearce b3256c287c Bug 1200514 - Run remaining stable state runnables after final cycle collection. r=froydnj,mccr8
--HG--
extra : amend_source : 877c598157dcef100cc139cbc62cde670f9ce16a
2016-01-13 11:37:57 +13:00
Nick Fitzgerald e5ed8f47ec Bug 1233831 - Part 3: Install a callback to trace nursery collections; r=mccr8
This commit makes CycleCollectedJSRuntime install a nursery collection callback
which traces nursery collections with a new `mozilla::TimelineMarker` subclass.
2016-01-19 12:48:22 -08:00
Nicholas Nethercote 3074545c18 Bug 1237169 - Remove some unused parameters in and around xpcom/base/. r=mccr8.
--HG--
extra : rebase_source : a3fd151aaecc1a21d14d51ce85c25413a6c3df5f
2016-01-05 19:32:28 -08:00
Olli Pettay 5ca565690e Bug 1120016 - Allocate short lived JS wrappers in the Nursery, r=mccr8,terrence 2015-12-31 15:21:49 +02:00
Wes Kocher 792ca14825 Backed out changeset 0d55a6e4e98e (bug 1120016) for 980 b2g hazards
--HG--
extra : commitid : 27OIHVsa17S
2015-12-30 16:34:18 -08:00
Olli Pettay 2066f6d7b3 Bug 1120016 - Allocate short lived JS wrappers in the Nursery, r=mccr8,terrence
--HG--
extra : rebase_source : 3d51b7fc9962a93eb6071328db84b5b327225246
2015-12-30 19:16:13 +02: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
Mike Hommey 538706caba Bug 1203840 - Trigger dirty pages purge after CC. r=njn,r=smaug,r=mccr8
Jemalloc 4 purges dirty pages regularly during free() when the ratio of dirty
pages compared to active pages is higher than 1 << lg_dirty_mult.  We set
lg_dirty_mult in jemalloc_config to limit RSS usage, but it also has an impact
on performance.

So instead of enforcing a high ratio to force more pages being purged, we keep
jemalloc's default ratio of 8, and force a regular purge of all dirty pages,
after cycle collection.

Keeping jemalloc's default ratio avoids cycle-collection-triggered purge to
have to go through really all dirty pages when there are a lot, in which case
the normal jemalloc purge during free() will already have kicked in. It also
takes care of everything that doesn't run the cycle collector still having
a level of purge, like plugins in the plugin-container.

At the same time, since jemalloc_purge_freed_pages does nothing with jemalloc 4,
repurpose the MEMORY_FREE_PURGED_PAGES_MS telemetry probe to track the time
spent in this cycle-collector-triggered purge.
2015-09-20 17:43:43 +09:00
Kyle Huey 76e3009ab8 Bug 1179909: Refactor stable state handling. r=smaug
This is motivated by three separate but related problems:

1. Our concept of recursion depth is broken for things that run from AfterProcessNextEvent observers (e.g. Promises). We decrement the recursionDepth counter before firing observers, so a Promise callback running at the lowest event loop depth has a recursion depth of 0 (whereas a regular nsIRunnable would be 1). This is a problem because it's impossible to distinguish a Promise running after a sync XHR's onreadystatechange handler from a top-level event (since the former runs with depth 2 - 1 = 1, and the latter runs with just 1).

2. The nsIThreadObserver mechanism that is used by a lot of code to run "after" the current event is a poor fit for anything that runs script. First, the order the observers fire in is the order they were added, not anything fixed by spec. Additionally, running script can cause the event loop to spin, which is a big source of pain here (bholley has some nasty bug caused by this).

3. We run Promises from different points in the code for workers and main thread. The latter runs from XPConnect's nsIThreadObserver callbacks, while the former runs from a hardcoded call to run Promises in the worker event loop. What workers do is particularly problematic because it means we can't get the right recursion depth no matter what we do to nsThread.

The solve this, this patch does the following:

1. Consolidate some handling of microtasks and all handling of stable state from appshell and WorkerPrivate into CycleCollectedJSRuntime.
2. Make the recursionDepth counter only available to CycleCollectedJSRuntime (and its consumers) and remove it from the nsIThreadInternal and nsIThreadObserver APIs.
3. Adjust the recursionDepth counter so that microtasks run with the recursionDepth of the task they are associated with.
4. Introduce the concept of metastable state to replace appshell's RunBeforeNextEvent. Metastable state is reached after every microtask or task is completed. This provides the semantics that bent and I want for IndexedDB, where transactions autocommit at the end of a microtask and do not "spill" from one microtask into a subsequent microtask. This differs from appshell's RunBeforeNextEvent in two ways:
a) It fires between microtasks, which was the motivation for starting this.
b) It no longer ensures that we're at the same event loop depth in the native event queue. bent decided we don't care about this.
5. Reorder stable state to happen after microtasks such as Promises, per HTML. Right now we call the regular thread observers, including appshell, before the main thread observer (XPConnect), so stable state tasks happen before microtasks.
2015-08-11 06:10:46 -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
Terrence Cole c01ef51c2d Bug 1167453 - Rename JSGCTraceKind and make it a C++11 enum class; r=jonco
--HG--
extra : rebase_source : 7dbeee0826fa20477ed227c9d336fdfe6de6ffd2
2015-05-22 10:40:24 -07:00
Andrew McCreight ff3b670628 Bug 866681, part 2 - Make ContentUnbinder use DeferredFinalize. r=smaug 2015-05-13 12:48:52 -07:00
Andrew McCreight c660ffa34b Bug 866681, part 1 - Track if any slice of CC was manually triggered. r=smaug 2015-05-13 12:48:52 -07:00
Boris Zbarsky b8ba520783 Bug 1087330. Make the data structure we use for our promise microtask queue have O(1) first element removal, not O(N). r=khuey 2015-05-01 22:33:01 -04:00
Nick Fitzgerald d67ed8553a Bug 1150253 - Part 2: Gecko should provide a callback for SpiderMonkey to
enqueue the onGarbageCollection hook runnable; r=mccr8
2015-04-22 09:43:02 -07:00
David Rajchenbach-Teller b08ce98d2a Bug 1083361 - Exposing a PromiseDebugging API to monitor uncaught DOM Promise. r=bz
--HG--
extra : rebase_source : cba2fc37d263d431c3008739a89a4fe47d10b7da
2015-04-10 17:27:57 +02: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
Andrew McCreight 468e063778 Bug 1137536, part 3 - Move the top level DeferredFinalize functions into their own file. r=smaug 2015-03-18 11:36:03 -07:00
Daniel Holbert 082fd9cd7f Bug 1142841: Convert all nsRefPtr<nsIRunnable> to nsCOMPtr<nsIRunnable>. r=ehsan
This patch was generated by a script.  Here's the source of the script for
future reference:

find . \( -iname "*.cpp" -o -iname "*.h" \) | \
  xargs -n 1 sed -i "s/nsRefPtr<nsIRunnable>/nsCOMPtr<nsIRunnable>/g"
2015-03-17 09:29:17 -07:00
Andrew McCreight b1093185b2 Bug 1114804 - Make ISupports use the standard deferred finalizer code. r=peterv 2015-03-10 08:35:47 -07:00
Masatoshi Kimura 86502e6537 Bug 1111290 - Part 2: Non-mechanical changes. r=waldo 2015-01-26 07:22:08 +09:00
Trevor Saunders 6c486b0407 bug 1122100 - more MOZ_OVERRIDE in xpcomish stuff r=froydnj 2015-01-19 17:41:12 -05:00
Andrew McCreight 37e6ea860b Bug 1118044, part 1 - Use GCCellPtr in CycleCollectedJSRuntime::TraverseGCThing. r=smaug 2015-01-08 15:30:54 -08:00
Andrew McCreight c9b9054838 Backout bug 1052793 for exposing bad decommitting behavior for compartmental GCs. 2015-01-08 09:54:13 -08:00
Terrence Cole e4a4d0c7fa Bug 1105069 - Part 14: Convert NoteJSChild to GCCellPtr; r=mccr8, r=jonco
--HG--
extra : rebase_source : 2338e0a57779401f9bc4744bc2fa59a4b31d76bf
2014-12-05 09:38:34 -08:00
Andrew McCreight 9d83b26756 Bug 1052793 - Do per-zone GC for CC_WAITING triggers. r=smaug 2014-12-13 21:17:35 -08:00
Terrence Cole c74065a925 Bug 1105069 - Part 12: Convert VisitGrayWrapperTargets to GCCellPtr; r=jonco, r=mccr8
--HG--
extra : rebase_source : e74a8a70f5110cb64787fa3ef9669819f0d24c85
2014-12-05 09:38:33 -08:00
Carsten "Tomcat" Book b742ef4f34 Backed out changeset 73c4111cab17 (bug 1083361) for bustage 2014-11-20 09:51:03 +01:00
David Rajchenbach-Teller b71d04be6e Bug 1083361 - Exposing a PromiseDebugging API to monitor uncaught DOM Promise. r=bz 2014-11-19 14:31:06 +01:00
Paolo Amadini e1e4b620e8 Bug 1013625 - Process Promise resolution runnables outside of main event queue. r=bz,khuey 2014-10-28 12:08:19 +00:00
Andrew McCreight 526df61329 Bug 1087799, part 3 - Do not include any JS things in the list of white nodes. r=smaug
Root() does not actually root JS things, so if some other class's Unlink() method ends
up calling the GC, whiteNodes will end up containing dead pointers. (This is safe right
now because the Unlink and Unroot methods do not do anything to JS things.) It is less
error prone to simply never store those pointers.

Also, add some asserts to enforce that we never call any of the white-object methods
for JS things.
2014-10-24 15:06:56 -07:00
Andrew McCreight cc506c4751 Bug 727965 - Trigger CC_WAITING GCs based on number of freed JS objects and zones. r=smaug 2014-10-20 10:07:52 -07:00
Birunthan Mohanathas 16471161bb Bug 1046841 - Fix more style violations in previously touched .h files in xpcom/. r=froydnj 2014-08-25 12:17:24 -07:00
Andrew McCreight 44c42eea7a Bug 1037510, part 1 - Add nursery size as a parameter of CycleCollectedJSRuntime. r=khuey 2014-07-29 15:38:14 -07:00
Birunthan Mohanathas bc0233fe47 Bug 1026535 - Fix mismatched class/struct tags. r=ehsan 2014-06-18 17:57:51 -07:00
Olli Pettay 3fa67f89f1 Bug 1020622 - Trace black windows' (webidl) event listeners, r=mccr8 2014-06-05 02:48:50 +03:00
Brian Hackett 4e0b65ef88 Bug 941805 - Use helper thread pool in all runtimes in a process, r=billm. 2014-05-29 13:06:23 -06:00
Jason Orendorff 0629a4a901 Bug 987995, part 4 - Add new crash reporter annotations for JS out-of-memory conditions. r=mccr8,r=bsmedberg. 2014-05-22 08:18:02 -05:00
Carsten "Tomcat" Book a6835d5489 Backed out changeset 2f6f548cd175 (bug 987995) for bustage on a CLOSED TREE 2014-05-22 15:57:30 +02:00
Jason Orendorff 4af0ae2ea3 Bug 987995, part 4 - Add new crash reporter annotations. r=mccr8,r=bsmedberg. 2014-05-22 08:18:02 -05:00