1. 22 Sep, 2020 1 commit
    • Ulan Degenbaev's avatar
      [heap] Fix regressions in the configuration without concurrent marking · fbd3834e
      Ulan Degenbaev authored
      Building and running tests with v8_enabled_concurrent_marking=false
      currently produces two failures:
      1) Segmentation fault on attempt to mark a read-only object.
         This is fixed by changing MarkBit::Set to be a no-op if the object
         is already marked (which is the case for the readonly space).
      2) Missing write-barrier due to bogus condition in the bailout.
         The barrier can be skipped only if the host object is not marked yet.
      
      This also disables two concurrent allocation tests that rely on
      concurrent marking write-barrier.
      
      Bug: v8:10875
      
      Change-Id: Ib3a238fc34c8f20c697470e0bd4ac427fb4bdc0e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2421816Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#70041}
      fbd3834e
  2. 20 Apr, 2020 1 commit
    • Ulan Degenbaev's avatar
      [heap] Fix an out-of-bounds access in the marking bitmap · 8e8a06fa
      Ulan Degenbaev authored
      Deserializer can trigger OOB read in the marking bitmap inside the
      RegisterDeserializedObjectsForBlackAllocation function. This happens
      for example if an internalized string is deserialized as the last object
      on a page and is the turned into a thin-string leaving a one-word filler
      at the end of the page. In such a case IsBlack(filler) will try to fetch
      a cell outside the marking bitmap.
      
      The fix is to increase the size of the marking bitmap by one cell, so
      that it is always safe to query markbits of any object on a page.
      
      Bug: chromium:978156
      Change-Id: If3c74e4f97d2caeb3c3f37a4147f38dea5f0e5a8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2152838
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67223}
      8e8a06fa
  3. 23 May, 2019 1 commit
  4. 29 Mar, 2019 1 commit
  5. 25 Feb, 2019 1 commit
    • Pierre Langlois's avatar
      [heap] Relax accessing markbits in ranges. · b152bb75
      Pierre Langlois authored
      When calling the `bitmap(chunk)` method of the various *MarkingState accessors
      we would receive a raw `Bitmap` pointer which does not tell you if accesses to
      markbits should be made atomically or not. As a result, we would default to
      doing atomic operation when in fact it may not be necessary.
      
      Here we're introducing a templated `ConcurrentBitmap` class that wraps
      operations done on the markbits and allows them to be made non-atomic.
      
      Additionaly, some of the `Bitmap` methods were only used to verify the heap and
      in the tests so they do not need atomic implementations. Using them in a
      concurrent context should now fail to link to make sure they're not mis-used in
      the future.
      
      Change-Id: Ifb55f8522c8bf0c87d65da9227864ee428d21bbd
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/1482916Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Pierre Langlois <pierre.langlois@arm.com>
      Cr-Commit-Position: refs/heads/master@{#59836}
      b152bb75
  6. 19 Dec, 2018 1 commit
  7. 26 Oct, 2018 2 commits
  8. 11 Oct, 2018 1 commit
  9. 22 Jun, 2018 1 commit
  10. 20 Mar, 2018 1 commit
  11. 02 Feb, 2018 1 commit
  12. 19 Sep, 2017 1 commit
  13. 29 Jun, 2017 1 commit
  14. 20 Jun, 2017 1 commit
  15. 19 Jun, 2017 1 commit
  16. 13 Jun, 2017 1 commit
  17. 12 Jun, 2017 1 commit
  18. 07 Jun, 2017 1 commit
  19. 06 Jun, 2017 1 commit
  20. 30 May, 2017 1 commit
  21. 22 May, 2017 1 commit
  22. 05 May, 2017 4 commits
  23. 04 May, 2017 1 commit
  24. 06 Apr, 2017 1 commit
  25. 15 Mar, 2017 1 commit
  26. 08 Mar, 2017 1 commit
  27. 07 Mar, 2017 1 commit
  28. 06 Mar, 2017 3 commits
  29. 03 Mar, 2017 1 commit
  30. 01 Mar, 2017 1 commit
  31. 01 Aug, 2016 1 commit
  32. 28 Jul, 2016 1 commit
  33. 26 Jul, 2016 1 commit
  34. 25 Jul, 2016 1 commit