- 26 May, 2020 3 commits
-
-
Anton Bikineev authored
This reverts commit a35d0e8c. The original CL is likely not a culprit for the infra failures. Bug: chromium:1056170 Change-Id: I8fa85db8a737fb01328021782f0c43626fa52b0d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215826Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#67977}
-
Maya Lekova authored
This reverts commit 9a0e6bd5. Reason for revert: Speculative revert for https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20builder/47777 Original change's description: > cppgc: Port concurrent sweeper > > This moves concurrent and incremental sweeping from Blink. This also > adds TestPlatform that makes it easier to test concurrent and > incremental sweeping. > > Drive-by: fix unmarking of large pages. > > Bug: chromium:1056170 > Change-Id: Ifd50ff67b9df17ff117a5f4d4eb5a2937d3023be > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207132 > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67969} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: I5530f11f7b8560116324bb156ba98e426c0feb35 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215057Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#67970}
-
Anton Bikineev authored
This moves concurrent and incremental sweeping from Blink. This also adds TestPlatform that makes it easier to test concurrent and incremental sweeping. Drive-by: fix unmarking of large pages. Bug: chromium:1056170 Change-Id: Ifd50ff67b9df17ff117a5f4d4eb5a2937d3023be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207132 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67969}
-
- 13 May, 2020 1 commit
-
-
Michael Lippautz authored
This is a reland of 3df36990 Original change's description: > cppgc: Port ObjectStartBitmap > > This ports ObjectStartBitmap from Blink. > > Bug: chromium:1056170 > Change-Id: Ib959d9ac1c5e1e34ffa6418f77956e993c570ffc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2181331 > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67735} Bug: chromium:1056170 Change-Id: I6e2fd99e96bebe3060f4feb8503ab04c0d452d51 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198986Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67772}
-
- 12 May, 2020 2 commits
-
-
Leszek Swirski authored
This reverts commit 3df36990. Reason for revert: Breaks MSVC bot (https://cr-buildbucket.appspot.com/build/8880517266974148704) Original change's description: > cppgc: Port ObjectStartBitmap > > This ports ObjectStartBitmap from Blink. > > Bug: chromium:1056170 > Change-Id: Ib959d9ac1c5e1e34ffa6418f77956e993c570ffc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2181331 > Commit-Queue: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67735} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: Iaea15b11c0ee7b599fe1f275aded7414bce428ac No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2196321Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#67742}
-
Anton Bikineev authored
This ports ObjectStartBitmap from Blink. Bug: chromium:1056170 Change-Id: Ib959d9ac1c5e1e34ffa6418f77956e993c570ffc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2181331 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67735}
-
- 08 May, 2020 2 commits
-
-
Michael Lippautz authored
Adjust suffix to "-unittest" like everywhere else in V8. Accept clang-format suggested changes. Bug: chromium:1056170 Change-Id: I54c1396e79aff87c052233853d7fe560337eeecf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190410 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67672}
-
Michael Lippautz authored
This patch provides infrastructure to pin object types to specific spaces. This allows embedders to create mutual exclusive arenas for certain (base) types. In future, this will also be used to provide sliding-window compaction on certain custom spaces. We mainly preserve the existing infrastructure with the difference that spaces are now slightly more dynamic than in Blink as they are kept in a vector instead of a fixed-size array. The mechanism differs from Blink in that it does not allow the user object to call allocation methods directly but instead provides a trait that can be overridden to specify a custom space. The patch preserves templatization for objects that do not go into custom spaces to safe a branch in the allocation hot path. Change-Id: I08aa6932348e2d6258e19c4a32d189865f459f02 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187611 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67666}
-
- 07 May, 2020 3 commits
-
-
Omer Katz authored
This reverts commit dc1af6a2. Reason for revert: Diff in patchset 2 Original change's description: > Revert "cppgc: Initial marking loop" > > This reverts commit fb9a19fe. > > Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11028 > > Original change's description: > > cppgc: Initial marking loop > > > > This CL introduces: > > - Worklist > > - MarkingHandler to manage gc marking phase > > - Integration into CollectGarbage for atomic pause GC > > - MarkingVisitor for main thread marking > > > > Still missing from this CL: > > - Proper handling for stack scanning > > - Handling of previously not fully constructed objects > > > > Bug: chromium:1056170 > > Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526 > > Commit-Queue: Omer Katz <omerkatz@chromium.org> > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#67642} > > TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org > > Change-Id: I666481f44119771be685bf2555aa0dd5eda83a01 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:1056170 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187502 > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> > Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67643} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org,nicohartmann@chromium.org # Not skipping CQ checks because this is a reland. Bug: chromium:1056170 Change-Id: I54e963e2aeaaf16069bdcdb019c0ac65e28ef6e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187733Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67654}
-
Nico Hartmann authored
This reverts commit fb9a19fe. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/11028 Original change's description: > cppgc: Initial marking loop > > This CL introduces: > - Worklist > - MarkingHandler to manage gc marking phase > - Integration into CollectGarbage for atomic pause GC > - MarkingVisitor for main thread marking > > Still missing from this CL: > - Proper handling for stack scanning > - Handling of previously not fully constructed objects > > Bug: chromium:1056170 > Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67642} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: I666481f44119771be685bf2555aa0dd5eda83a01 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2187502Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#67643}
-
Omer Katz authored
This CL introduces: - Worklist - MarkingHandler to manage gc marking phase - Integration into CollectGarbage for atomic pause GC - MarkingVisitor for main thread marking Still missing from this CL: - Proper handling for stack scanning - Handling of previously not fully constructed objects Bug: chromium:1056170 Change-Id: I70ac8534dfb898777cf3a06e3119cac8072174fd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170526 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67642}
-
- 05 May, 2020 1 commit
-
-
Anton Bikineev authored
This ports sweeper logic from Blink into a separate entity - Sweeper. Concurrent sweeping is in a followup. Bug: chromium:1056170 Change-Id: I41196225f0d882cb0ab5190d23e297ee2498df6b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2167858 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67581}
-
- 29 Apr, 2020 1 commit
-
-
Omer Katz authored
The worklist in this CL is a merge of the worklists of Oilpan and V8. This implementation supports both use cases and should serve as the shared worklist once we start merging the codebase. Bug: chromium:1056170 Change-Id: I4ecdb475f3900c33eced9249efa112a69c1b2707 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170828Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67459}
-
- 28 Apr, 2020 1 commit
-
-
Dan Elphick authored
base::List is only used inside of heap and has some pretty strange semantics that don't lend themselves to it being a general purpose data structure so this moves it to heap where it can be safe isolated. Bug: v8:10454 Change-Id: I7921c22286276432956005c72143b22b0364fc93 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2170029 Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67448}
-
- 24 Apr, 2020 1 commit
-
-
Etienne Pierre-doray authored
The impl works by posting up to NumberOfWorkerThreads() tasks with CallOnWorkerThread(). Change-Id: I188ac57c9e5d6e3befdcc6f945fbf337dabe1d1d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2130886 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by:
Gabriel Charette <gab@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67368}
-
- 22 Apr, 2020 1 commit
-
-
Anton Bikineev authored
- implemented as a single-linked list with head and tail pointers. The tail pointer is needed for freelist appending; - stores entries in buckets, where bucket[log2(size)] stores entries >= size; - implements worst fit allocation to amortize free list call; - ported from Blink: https://bit.ly/2yC8XKJ. Bug: chromium:1056170 Change-Id: I26cf62c948c95a7cbfecd5f7f22ad975e6b8c732 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2157376 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67310}
-
- 17 Apr, 2020 2 commits
-
-
Jakob Kummerow authored
These opcodes are not officially specified yet, they are defined in the "prototype implementation spec" at https://bit.ly/3cWcm6Q. Drive-by: drop a unit test whose entire coverage can be provided by a compile-time check. Bug: v8:7748 Change-Id: Icefa6dd321802c8a01c4561178b9d21eca1fbaa3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2152841Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#67208}
-
Paolo Severini authored
This changelist adds the logic to format, decode, sends and receive packets in the format specified by the GDB-remote protocol (https://sourceware.org/gdb/onlinedocs/gdb/Overview.html#Overview). Build with: v8_enable_wasm_gdb_remote_debugging = true Run with: --wasm-gdb-remote Bug: chromium:1010467 Change-Id: Ibc9c6713c561d06847b472fab591c208c193199f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1929409 Commit-Queue: Paolo Severini <paolosev@microsoft.com> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67196}
-
- 15 Apr, 2020 1 commit
-
-
Anton Bikineev authored
CrossThreadPersistent and friends are the followup. Bug: chromium:1056170 Change-Id: Ide910062d80952da73b922398c281162b1861f47 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144957 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67153}
-
- 14 Apr, 2020 3 commits
-
-
Anton Bikineev authored
A few notes: 1) Oilpan is a generic library, meaning that it can work with arbitrary user types. The library is split in type-aware (include/) and type-erased (src/) parts. The former comprises a lot of code that still needs to be defended with dchecks; 2) Macros are prefixed with CPPGC_, so that they don't clash in the user code with similar macros from other libraries; 3) The macros simply forward requests to V8 so that dcheck handlers can be configured uniformly; 4) The CL doesn't contain CHECK_EQ and friends, but they can be added later if needed. Bug: chromium:1056170 Change-Id: I68e6f663247705233eaf030384164d81e53071e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2148774 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67129}
-
Omer Katz authored
This CL adds: - Declaring and invoking prefinalizers - NoAllocationScope Bug: chromium:1056170 Change-Id: Ib0f688fa4a8bb5fde44b36597ce2d6d2664fdff5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139588 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67125}
-
Michael Lippautz authored
This is a port of src/components/gc that was added recently. Differences: - Added back bucketing to the page pool, as that guarantees that arenas used for specific types do not have their pages used by other arenas. - Replaced base::flat_map with std::map. This may cause performance regressions when using PageMemoryRegionTree in hot paths. A vector-like representation may be used to fix such a regression This reverts commit a056cea5. Bug: chromium:1056170 Change-Id: Iffb8b0d91c8cca1815d7a1cda9486e7716aea75f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144060 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#67117}
-
- 09 Apr, 2020 5 commits
-
-
Nico Hartmann authored
This reverts commit 3e1c7040. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20concurrent%20marking/12665 Original change's description: > Reland "cppgc: Add page memory allocation backend" > > This is a port of src/components/gc that was added recently. > > Differences: > - Added back bucketing to the page pool, as that guarantees that > arenas used for specific types do not have their pages used by other > arenas. > - Replaced base::flat_map with std::map. This may cause performance > regressions when using PageMemoryRegionTree in hot paths. A > vector-like representation may be used to fix such a regression > > This reverts commit 656c68a7. > > Bug: chromium:1056170 > Change-Id: I638183c944255ebcaab47d2b94b1980d54479746 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2143814 > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67080} TBR=mlippautz@chromium.org,mslekova@chromium.org Change-Id: I04b048dd979c32e9275c972307796d5f75865037 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144114Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#67084}
-
Michael Lippautz authored
This is a port of src/components/gc that was added recently. Differences: - Added back bucketing to the page pool, as that guarantees that arenas used for specific types do not have their pages used by other arenas. - Replaced base::flat_map with std::map. This may cause performance regressions when using PageMemoryRegionTree in hot paths. A vector-like representation may be used to fix such a regression This reverts commit 656c68a7. Bug: chromium:1056170 Change-Id: I638183c944255ebcaab47d2b94b1980d54479746 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2143814Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67080}
-
Michael Lippautz authored
This CL provides a basic allocator that allocates normal-sized objects on pages without ever reusing them. This allows for already using the backref from page to heap which is used in some critical places (pre-finalizers, write barrier, Persistent). Bug: chromium:1056170 Change-Id: Ifada9b7e984827906c267d1a3a521576587feaeb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2141736 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67076}
-
Maya Lekova authored
This reverts commit d4056c61. Reason for revert: Fails on GCC, please check https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20gcc/6184 Original change's description: > cppgc: Add page memory allocation backend > > This is a port of src/components/gc that was added recently. > > Differences: > - Added back bucketing to the page pool, as that guarantees that > arenas used for specific types do not have their pages used by other > arenas. > - Replaced base::flat_map with std::map. This may cause performance > regressions when using PageMemoryRegionTree in hot paths. A > vector-like representation may be used to fix such a regression > > Bug: chromium:1056170 > Change-Id: I03e3abe55faf7bb50c8011dafc23396889bf66db > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139586 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67073} TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: I1e421898bb8a08f32d8eb2355ed547e0ee38b429 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2140949Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#67074}
-
Michael Lippautz authored
This is a port of src/components/gc that was added recently. Differences: - Added back bucketing to the page pool, as that guarantees that arenas used for specific types do not have their pages used by other arenas. - Replaced base::flat_map with std::map. This may cause performance regressions when using PageMemoryRegionTree in hot paths. A vector-like representation may be used to fix such a regression Bug: chromium:1056170 Change-Id: I03e3abe55faf7bb50c8011dafc23396889bf66db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139586 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#67073}
-
- 07 Apr, 2020 1 commit
-
-
Michael Lippautz authored
This CL adds the necessary traits to dispatch from Member through a visitor implementation for GarabgeCollected and GarbageCollectedMixin. Bug: chromium:1056170 Change-Id: I12680335044aaa842639fb5e8f9a3ac61587f51a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2138431Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67041}
-
- 06 Apr, 2020 3 commits
-
-
Michael Lippautz authored
With this change we support allocation of objects and keeping them alive via conservative stack scan. This reverts commit 2b047a58. Change-Id: Iac1913e7ef0556c28399509a160777a89e60150c Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2137402 Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67016}
-
Nico Hartmann authored
This reverts commit 44a1ed8f. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20gcc/6124? Original change's description: > cppgc: Integrate conservative stack scan into GC > > With this change we support allocation of objects and keeping them alive via > conservative stack scan. > > Change-Id: Id94d7ced503ad0b1378643e0c13c2a8b65ad2327 > Bug: chromium:1056170 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135729 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67008} TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: I71bf7a9b7f54f0ec8d64b1b1781699adb0feb138 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2137401Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/master@{#67009}
-
Michael Lippautz authored
With this change we support allocation of objects and keeping them alive via conservative stack scan. Change-Id: Id94d7ced503ad0b1378643e0c13c2a8b65ad2327 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135729Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67008}
-
- 03 Apr, 2020 1 commit
-
-
Anton Bikineev authored
SourceLocation is needed to track Persistents. Bug: chromium:1056170 Change-Id: I4d5cf151a4d27b4c29582ff8195cdcb7453afe1c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2132790 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66974}
-
- 02 Apr, 2020 1 commit
-
-
Michael Lippautz authored
Use inline asm to generate the x64 PushAllRegistersAndIterateStack which is the trampoline for conservative stack scanning. Keep the function definition as C code to allow clang to generate the correct mangling for each platform. This approach has the benefit that it immediately works for all platforms that support clang. Bug: chromium:1056170 Change-Id: Ic7a1c1b57e67ae1442bd8bda4e55d89112facfc7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2132787Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66958}
-
- 31 Mar, 2020 1 commit
-
-
Anton Bikineev authored
This CL introduces - Member - WeakMember - UntracedMember interfaces. Remaining work is to add pointer verifier and write barrier implementation. Bug: chromium:1056170 Change-Id: Iddb8e4d002db0b1d1652f2946ddfa08a98a889c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124323 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66927}
-
- 30 Mar, 2020 1 commit
-
-
Michael Lippautz authored
Adds support for conservative stack scanning on x64. The trampolines saving callee-saved registers are compiled using clang (non-Windows) and MASM (Windows). This is using the default toolchain for assembly in Chromium/V8. This differs from Oilpan in Chromium where x86 and x64 are compiled using NASM [1]. V8 does not yet require this dependency and building the trampolines natively avoids it. (NASM also requires separate blocks for x64 Windows and non-Windows.) On non-x86/x64 platforms Chromium also uses clang, so there's little benefit in keeping the dependency. The trampolines are tested when building with clang. Other platforms follow in separate CLs. [1] https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/renderer/platform/heap/asm/SaveRegisters_x86.asm Change-Id: Ice2e23e44391aa94147abe75ee0b5afac458b8f8 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2124319 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66913}
-
- 27 Mar, 2020 1 commit
-
-
Michael Lippautz authored
This CL adds basic infrastructure for: - MakeGarbageCollected - GarbageCollected and related type traits - Heap (API / internal) - Basic allocation based on malloc - CollectGarbage without marking This allows for allocation and reclamation through an explicit GC call. No objects are held alive from any source (stack, globals, refs), yet. The exact wiring of platform is future work. Change-Id: I81b7c0ba7b525188f8c0bf9de3b7af35d34322af Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2120538 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66887}
-
- 25 Mar, 2020 1 commit
-
-
Michael Lippautz authored
This adds HeapObjectHeader, a meta object that is put in front of every managed object. HeapObjectHeader provides accessors for: 1. GCInfoIndex 2. In construction bit 3. size 4. Mark bit Meta info is distributed among two uint16_t fields as (1.,2.) and (3.,4.). This is convenient as the non-bit accessors (size, GCInfoIndex) are constant during marking. Object layout see heap-object-header.h. Note: The current implementation does not bypass ASAN poisoning and assumes an unpoisoned header whenever performing an access. Bug: chromium:1056170 Change-Id: I753f15467ed5c2b22b47e64d3aa5a3c1baddf8e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2116031 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#66861}
-
- 24 Mar, 2020 1 commit
-
-
Michael Lippautz authored
GCInfo and its related infrastructure is used to record information about types. Currently, we store finalization and vtable information. Future changes will introduce naming and tracing, similar to Oilpan in Blink. Information is stored in a process-wide global table that is maintained at runtime. For static builds such information can be recorded in the binary without the runtime overhead which is future work. This ports `third_party/blink/renderer/platform/heap/gc_info.{h,cc}` on a semantic level. In addition to adjusting to V8's needs, we also re-commit the already filled parts of the info table as read-only when possible, making it harder to override type information. Bug: chromium:1056170 Change-Id: Ib01eb24e6f8a94a4a647efde7af37689f8c20ba2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2111214 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#66847}
-
- 23 Mar, 2020 1 commit
-
-
Michael Lippautz authored
"By my deeds I honor him. V8." - Add basic build files for library and unittests. - Integrate unittests also in existing V8 unittests for simplicity. The CL also adds FinalizerTrait and unittests to allow building a testing target that executes code. FinalizerTrait is used to determine how managed C++ types are finalized. The trait should not be overridable by users but needs to be exposed on API-level to avoid including library-internal headers. Bug: chromium:1056170 Change-Id: I64d91053410a17a7835e50547f58990625d2da28 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2108549Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#66834}
-
- 16 Mar, 2020 1 commit
-
-
Dominik Inführ authored
Add safepoint mechanism to stop concurrent threads and bring them to a safepoint. Threads are stopped before the safepoint and after e.g. the GC resumed again. Each thread needs to be stopped in a safepoint, such that all roots can be iterated safely. Running threads need to be cooperative and are required to perform regular safepoint polls. The last version of this CL was reverted because safepoint_requested_ wasn't initialized (see https://crrev.com/c/2105634). Bug: v8:10315 Change-Id: I6ef244c0fb31c178589b5e3d1c62687a8dd65768 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2105635Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#66732}
-