1. 30 Aug, 2022 7 commits
  2. 29 Aug, 2022 4 commits
  3. 26 Aug, 2022 2 commits
  4. 25 Aug, 2022 3 commits
  5. 24 Aug, 2022 6 commits
  6. 23 Aug, 2022 11 commits
  7. 22 Aug, 2022 7 commits
    • Michael Lippautz's avatar
      [heap] Fix marking in per-context mode · 41738ca9
      Michael Lippautz authored
      Per-context mode marking segregates worklists per context. Upon doing
      so, Worklist::Local's move ctor was invoked which cleared the back
      pointer to worklist. This break switching to that context which
      happens in rare secnarios.
      
      Rework Local marking worklists avoiding the move ctor which is also
      removed.
      
      Bug: chromium:1355545
      Change-Id: If0e8c7f08df564b2a1e27e4a3fc5a6a40e46ee46
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3845630
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82636}
      41738ca9
    • Dominik Inführ's avatar
      [heap] DCHECK that generational barrier is run on main thread · b5145bb6
      Dominik Inführ authored
      The generational barrier isn't supported on the background thread at the
      moment. Make sure it isn't used on such threads by accident.
      
      Bug: v8:13203
      Change-Id: I5577f3802c1aba246955519c8c778fa741d56d96
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3840300
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82635}
      b5145bb6
    • Shu-yu Guo's avatar
      [shared-struct] Fix concurrent marking for Atomics.{Mutex,Condition} · 9569f341
      Shu-yu Guo authored
      The concurrent marker needs an override for JSObject subclasses with
      their own visitor id and body descriptor. Implement the missing
      VisitJSSynchronizationPrimitive.
      
      Bug: v8:13214
      Change-Id: Ie4f64e2b4e9b211f9661da75bf8d2d012f8d16ac
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3846320Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Auto-Submit: Shu-yu Guo <syg@chromium.org>
      Commit-Queue: Shu-yu Guo <syg@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82634}
      9569f341
    • ishell@chromium.org's avatar
      [runtime] Merge redirected and non-redirected callback fields · 134ca75c
      ishell@chromium.org authored
      Namely:
       - AccessorInfo::getter and AccessorInfo::js_getter,
       - CallHandlerInfo::callback and CallHandlerInfo::js_callback.
      
      The redirected/non-redirected callback distinction is required only
      for simulated builds but we wasted memory also for all native builds.
      
      Now we store these fields in "redirected" form which allows us to call
      them directly from builtins or generated code. In case it's necessary
      to call a callback from C++ code the C function address is read from
      the redirection. This additional indirection makes the callback calls
      from C++ code in simulated builds slower but saves memory for native
      builds.
      
      This CL should recover a part of memory regression caused by inlining
      Foreign fields into AccessorInfo and CallHandlerInfo.
      
      Bug: v8:12949, chromium:1336105, chromium:1335930
      Change-Id: I38470ed21ee23b281247c11a9531542c7e4acca1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3835686Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82631}
      134ca75c
    • Dominik Inführ's avatar
      [heap] Possibly finalize marking in Heap::ReportExternalMemoryPressure · 9dc5cd08
      Dominik Inführ authored
      We used to treat Heap::ReportExternalMemoryPressure just like
      allocation observer marking steps. Which means that we advance
      incremental marking but never finalize here immediately. This is
      now problematic without a separate COMPLETE phase when we don't reach
      the stack guard because we are stuck in C++ for awhile. In such cases
      we might perform way more marking work than we used to.
      
      We can fix this by finalizing marking immediately at this point when
      the stack guard was already armed. Otherwise we prefer to finalize
      marking in a task where we don't have a stack at all.
      
      For this we add a new method
      IncrementalMarking::AdvanceAndFinalizeIfNecessary. AdvanceFromTask
      is renamed to AdvanceAndFinalizeIfComplete to make the difference
      between those methods more clear.
      
      Bug: v8:12775, chromium:1354911
      Change-Id: If57bedb1a5f87923ccb8ad3fe2b60952e3843975
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3845082
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82626}
      9dc5cd08
    • ishell@chromium.org's avatar
      Reland "[ext-code-space] Fix Code vs non-Code comparisons" · 76651622
      ishell@chromium.org authored
      This is a reland of commit 9b0d5cb1
      
      The newly added check does not allow comparisons with stale or
      invalid pointers because attempt to access the page header might
      crash.
      
      Original change's description:
      > [ext-code-space] Fix Code vs non-Code comparisons
      >
      > When external code space is enabled comparing Code and non-Code objects
      > by looking at compressed values is not always correct. Such an approach
      > works only for comparing Code vs Code objects or non-Code vs non-Code
      > objects.
      >
      > This CL instroduces SLOW_DCHECK into Object comparison operators to
      > ensure that such a comparison is allowed. Also, this CL instroduces
      > an Object::SafeEquals() method which compares uncompressed values
      > and thus is safe to be used for comparing Code with non-Code objects.
      >
      > Bug: v8:11880
      > Change-Id: I7ccf1f90f927beb2bb9f45efb303e902b1838d02
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3838172
      > Reviewed-by: Jakob Linke <jgruber@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#82611}
      
      Bug: v8:11880
      Change-Id: Iab3c8fe49cb954b2dc9171b3fc4b189e84763e73
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3842932Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82624}
      76651622
    • Leszek Swirski's avatar
      Revert "[ext-code-space] Fix Code vs non-Code comparisons" · c4625cf9
      Leszek Swirski authored
      This reverts commit 9b0d5cb1.
      
      Reason for revert: Seems to fail on gc-stress bots (e.g. https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/43472/overview)
      
      Original change's description:
      > [ext-code-space] Fix Code vs non-Code comparisons
      >
      > When external code space is enabled comparing Code and non-Code objects
      > by looking at compressed values is not always correct. Such an approach
      > works only for comparing Code vs Code objects or non-Code vs non-Code
      > objects.
      >
      > This CL instroduces SLOW_DCHECK into Object comparison operators to
      > ensure that such a comparison is allowed. Also, this CL instroduces
      > an Object::SafeEquals() method which compares uncompressed values
      > and thus is safe to be used for comparing Code with non-Code objects.
      >
      > Bug: v8:11880
      > Change-Id: I7ccf1f90f927beb2bb9f45efb303e902b1838d02
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3838172
      > Reviewed-by: Jakob Linke <jgruber@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#82611}
      
      Bug: v8:11880
      Change-Id: Ie34af0135625eff2975f78f4d2901a76b8517eb7
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3842930
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Owners-Override: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82616}
      c4625cf9