1. 10 Oct, 2018 1 commit
    • Michael Lippautz's avatar
      Revert "[heap] Run phantom handle callbacks on tear down" · d8d2533d
      Michael Lippautz authored
      This reverts commit fa65063a.
      
      Reason for revert:
      This changes API contract with Blink as some state is destroyed before
      actually tearing down the Isolate. Flushing the second round tasks
      then tries to access various state that is already gone on the Blink
      side. See bugs.
      
      Bug: chromium:893944, chromium:893549, chromium:890631
      
      Original change's description:
      > [heap] Run phantom handle callbacks on tear down
      >
      > Pending phantom handle callbacks are not reliably executed if the heap
      > shuts down. This can cause to memory leaks or other unwanted behaviour,
      > like in wasm where the NativeModules (held in Managed objects
      > implemented via phantom handles) unregister from the WasmEngine in the
      > second-pass callback. This must be executed before tearing down the
      > WasmEngine.
      >
      > This CL fixes this by running pending callback synchronously on heap
      > tear down.
      >
      > R=ulan@chromium.org, mlippautz@chromium.org
      >
      > Bug: v8:8208
      > Change-Id: I27b630c4d8f1fb12309040ea2179b64eed38710a
      > Reviewed-on: https://chromium-review.googlesource.com/1249101
      > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56286}
      
      TBR=ulan@chromium.org,mlippautz@chromium.org,clemensh@chromium.org
      
      Bug: v8:8208
      Change-Id: I4b403fd84473edb8895c3725ff3348574c54247b
      Reviewed-on: https://chromium-review.googlesource.com/c/1274085
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56542}
      d8d2533d
  2. 04 Oct, 2018 2 commits
  3. 02 Oct, 2018 1 commit
  4. 28 Sep, 2018 1 commit
    • Clemens Hammacher's avatar
      [heap] Run phantom handle callbacks on tear down · fa65063a
      Clemens Hammacher authored
      Pending phantom handle callbacks are not reliably executed if the heap
      shuts down. This can cause to memory leaks or other unwanted behaviour,
      like in wasm where the NativeModules (held in Managed objects
      implemented via phantom handles) unregister from the WasmEngine in the
      second-pass callback. This must be executed before tearing down the
      WasmEngine.
      
      This CL fixes this by running pending callback synchronously on heap
      tear down.
      
      R=ulan@chromium.org, mlippautz@chromium.org
      
      Bug: v8:8208
      Change-Id: I27b630c4d8f1fb12309040ea2179b64eed38710a
      Reviewed-on: https://chromium-review.googlesource.com/1249101
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56286}
      fa65063a
  5. 24 Jul, 2018 1 commit
  6. 23 Jul, 2018 1 commit
  7. 18 Jul, 2018 1 commit
  8. 17 Jul, 2018 1 commit
  9. 10 Jul, 2018 1 commit
  10. 04 Jul, 2018 1 commit
  11. 02 Jul, 2018 1 commit
  12. 06 Jun, 2018 1 commit
  13. 04 Jun, 2018 2 commits
  14. 10 Apr, 2018 1 commit
  15. 23 Mar, 2018 1 commit
  16. 19 Feb, 2018 2 commits
  17. 14 Feb, 2018 1 commit
  18. 02 Dec, 2017 1 commit
    • Mathias Bynens's avatar
      Normalize casing of hexadecimal digits · 822be9b2
      Mathias Bynens authored
      This patch normalizes the casing of hexadecimal digits in escape
      sequences of the form `\xNN` and integer literals of the form
      `0xNNNN`.
      
      Previously, the V8 code base used an inconsistent mixture of uppercase
      and lowercase.
      
      Google’s C++ style guide uses uppercase in its examples:
      https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters
      
      Moreover, uppercase letters more clearly stand out from the lowercase
      `x` (or `u`) characters at the start, as well as lowercase letters
      elsewhere in strings.
      
      BUG=v8:7109
      TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org
      NOPRESUBMIT=true
      
      Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6
      Reviewed-on: https://chromium-review.googlesource.com/804294
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49810}
      822be9b2
  19. 22 Nov, 2017 1 commit
  20. 09 Nov, 2017 1 commit
    • Michael Lippautz's avatar
      [heap] Remove independent handles · 667555c6
      Michael Lippautz authored
      Removes the handling of the flag independent. The flag will be removed in a followup.
      
      The patch changes handling of V8::PersistentBase that are set to Weak:
      - The Scavenger ignores the flag independent.
      - The Scavenger keeps alive anything that is marked as Active.
      - The Scavenger is free to drop weak handles of non-Active object if they 
        are otherwise dead.
      
      Active:
      - Any JSObject will always be marked Active.
      - Any JSApiObject will be marked Active if it has been modified (=has elements, properties, etc.)
      
      CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      
      Bug: chromium:780749
      Change-Id: If1f547f2419930ad9400bd3b11bdbf609cb57649
      Reviewed-on: https://chromium-review.googlesource.com/741801
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarKentaro Hara <haraken@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49277}
      667555c6
  21. 06 Nov, 2017 1 commit
    • Michael Lippautz's avatar
      [heap] Introduce separate pass for reseting phantom handles on Scavenge · da5a8e3d
      Michael Lippautz authored
      Resetting phantom handles while keeping finalizers alive leads to the
      problem of eagerly resetting a handle although another finalizer keeps
      it (transitively) alive.
      
      This becomes a problem with internal pointers to Blink as without
      global handle a Blink GC is free to collect wrappables.
      
      This CL untangles finalizers handling from phantom handle resets by
      introducing a separate path for resetting.
      
      CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
      
      Bug: chromium:781728
      Change-Id: Ica138b72942698fd996c6e9fe0bdc19cc432c010
      Reviewed-on: https://chromium-review.googlesource.com/753724
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49162}
      da5a8e3d
  22. 02 Nov, 2017 1 commit
  23. 18 Oct, 2017 1 commit
  24. 13 Oct, 2017 1 commit
  25. 30 Aug, 2017 1 commit
  26. 01 Jun, 2017 1 commit
  27. 26 May, 2017 1 commit
  28. 22 May, 2017 1 commit
    • Michael Lippautz's avatar
      [heap] MinorMC: Identify unmodified global handles on the fly · 652c9522
      Michael Lippautz authored
      For the Scavenger we require a first pass over global handles for identifying
      unmodified nodes because the Scavenger might have already written forwarding
      pointers during scanning, making it hard to perform the proper checks.
      
      The minor MC does not mutate the object graph during marking and can thus merge
      this phase into the regular phase executed during marking roots.
      
      Furthermore, moves processing into the parallel marking phase of the minor MC
      collector.
      
      Bug: chromium:720477, chromium:651354
      Change-Id: Id33552124264e3ab0bdf34d22ac30c19c1522707
      Reviewed-on: https://chromium-review.googlesource.com/509550
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45461}
      652c9522
  29. 19 May, 2017 1 commit
  30. 11 May, 2017 3 commits
    • Michael Lippautz's avatar
      Revert "Revert "Revert "Revert "[global-handles] Remove dead code"""" · 7a88f729
      Michael Lippautz authored
      This reverts commit 682d5369.
      
      Reason for revert: Didn't see that this was the Reland... now we should be in good state.
      
      Original change's description:
      > Revert "Revert "Revert "[global-handles] Remove dead code"""
      > 
      > This reverts commit c836a95e.
      > 
      > Reason for revert: I don't think this was related.
      > 
      > Original change's description:
      > > Revert "Revert "[global-handles] Remove dead code""
      > > 
      > > This reverts commit 58020872.
      > > 
      > > Reason for revert: Turned out to be a bot issue, reverting the revert. 
      > > 
      > > Original change's description:
      > > > Revert "[global-handles] Remove dead code"
      > > > 
      > > > This reverts commit e2890c19.
      > > > 
      > > > Reason for revert: Looks like this CL causes slowdown on multiple builders, Check tests timeout and raise exceptions on the bot. Possible it is a bot issue as well, see tracking bug - https://bugs.chromium.org/p/chromium/issues/detail?id=720606
      > > > 
      > > > Original change's description:
      > > > > [global-handles] Remove dead code
      > > > > 
      > > > > Bug: chromium:720477
      > > > > Change-Id: I090168c575c41b7038af5dfba6cd8973d1154c51
      > > > > Reviewed-on: https://chromium-review.googlesource.com/501790
      > > > > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > > > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > > > > Cr-Commit-Position: refs/heads/master@{#45241}
      > > > 
      > > > TBR=hpayer@chromium.org,mlippautz@chromium.org,jochen@chromium.org
      > > > NOPRESUBMIT=true
      > > > NOTREECHECKS=true
      > > > NOTRY=true
      > > > Bug: chromium:720477
      > > > 
      > > > Change-Id: I92f40d8c4dbfdb5208b3068648612e8c5b97fb20
      > > > Reviewed-on: https://chromium-review.googlesource.com/502029
      > > > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > > > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#45243}
      > > 
      > > TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
      > > NOPRESUBMIT=true
      > > NOTREECHECKS=true
      > > NOTRY=true
      > > Bug: chromium:720477
      > > 
      > > Change-Id: I70e190e0c27074228a8128aa849e5a419af915e8
      > > Reviewed-on: https://chromium-review.googlesource.com/502030
      > > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#45244}
      > 
      > TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > Bug: chromium:720477
      > 
      > Change-Id: If3e4abea51d87546e25076b906a4c91e5ccf947b
      > Reviewed-on: https://chromium-review.googlesource.com/503007
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#45246}
      
      TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      Bug: chromium:720477
      
      Change-Id: Id7dc886cc20b3b36ca5bb643686fe4fe2e98a3a7
      Reviewed-on: https://chromium-review.googlesource.com/503008Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45261}
      7a88f729
    • mlippautz's avatar
      [heap] MinorMC: Only iterate new space global handles for ptr updates · 4ea91a01
      mlippautz authored
      The reason we need this mode is that IterateRoots for the Scavenger only
      captures dependent weak nodes. This is also what we do for marking for the
      minor MC.
      
      Since the regular marking might also mark objects that are weakly
      (non-dependently) pointed to by nodes we need to capture all of them during
      pointers updating. The reason this works for the Scavenger is because we do one
      pass at the end of the scavenger (combined with resetting) that captures all
      those nodes.
      
      BUG=chromium:651354
      
      Review-Url: https://codereview.chromium.org/2869413002
      Cr-Commit-Position: refs/heads/master@{#45248}
      4ea91a01
    • Michael Lippautz's avatar
      Revert "Revert "Revert "[global-handles] Remove dead code""" · 682d5369
      Michael Lippautz authored
      This reverts commit c836a95e.
      
      Reason for revert: I don't think this was related.
      
      Original change's description:
      > Revert "Revert "[global-handles] Remove dead code""
      > 
      > This reverts commit 58020872.
      > 
      > Reason for revert: Turned out to be a bot issue, reverting the revert. 
      > 
      > Original change's description:
      > > Revert "[global-handles] Remove dead code"
      > > 
      > > This reverts commit e2890c19.
      > > 
      > > Reason for revert: Looks like this CL causes slowdown on multiple builders, Check tests timeout and raise exceptions on the bot. Possible it is a bot issue as well, see tracking bug - https://bugs.chromium.org/p/chromium/issues/detail?id=720606
      > > 
      > > Original change's description:
      > > > [global-handles] Remove dead code
      > > > 
      > > > Bug: chromium:720477
      > > > Change-Id: I090168c575c41b7038af5dfba6cd8973d1154c51
      > > > Reviewed-on: https://chromium-review.googlesource.com/501790
      > > > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#45241}
      > > 
      > > TBR=hpayer@chromium.org,mlippautz@chromium.org,jochen@chromium.org
      > > NOPRESUBMIT=true
      > > NOTREECHECKS=true
      > > NOTRY=true
      > > Bug: chromium:720477
      > > 
      > > Change-Id: I92f40d8c4dbfdb5208b3068648612e8c5b97fb20
      > > Reviewed-on: https://chromium-review.googlesource.com/502029
      > > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#45243}
      > 
      > TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
      > NOPRESUBMIT=true
      > NOTREECHECKS=true
      > NOTRY=true
      > Bug: chromium:720477
      > 
      > Change-Id: I70e190e0c27074228a8128aa849e5a419af915e8
      > Reviewed-on: https://chromium-review.googlesource.com/502030
      > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org>
      > Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#45244}
      
      TBR=hpayer@chromium.org,gdeepti@chromium.org,mlippautz@chromium.org,jochen@chromium.org,v8-reviews@googlegroups.com
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      Bug: chromium:720477
      
      Change-Id: If3e4abea51d87546e25076b906a4c91e5ccf947b
      Reviewed-on: https://chromium-review.googlesource.com/503007Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45246}
      682d5369
  31. 10 May, 2017 3 commits
  32. 25 Apr, 2017 1 commit
    • ulan's avatar
      Decouple root visitors from object visitors. · e671ed36
      ulan authored
      This patch adds a new interface called RootVisitor and changes the root
      iteration functions to accept a RootVisitor instead of an ObjectVisitor.
      
      Future CLs will change ObjectVisitor to provide the host object to all
      visiting functions, which will bring it in sync with static visitors.
      
      Having separate visitors for roots and objects removes ambiguity in
      VisitPointers and reduces chances of forgetting to record slots.
      
      This is intended as pure refactoring. All places that require behavior
      change are marked with TODO and will addressed in future CLs.
      
      BUG=chromium:709075
      
      Review-Url: https://codereview.chromium.org/2801073006
      Cr-Commit-Position: refs/heads/master@{#44852}
      e671ed36
  33. 07 Apr, 2017 1 commit