- 08 Mar, 2021 1 commit
-
-
Michael Lippautz authored
Reduce the granularity to 4 bytes: - Saves some memory on 32bit configurations - Allows uniformly reasoning about HoH::ObjectSize() with RoundUp<kAllocationGranularity>(sizeof(T)) Change-Id: Ic87aa25839d9b8a99916c07d64e5e49864a6cb53 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739628Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73267}
-
- 22 Oct, 2020 1 commit
-
-
Omer Katz authored
Bug: chromium:1056170 Change-Id: I697a33f51618c0b7b3b60a9a2abcb7bf4ab1d033 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2491032 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70709}
-
- 17 Jun, 2020 1 commit
-
-
Anton Bikineev authored
This adds the following things: - age table for 4K regions; - generational barrier for mixed 4K regions; - unmarking for major collections; - young generation flags. Bug: chromium:1029379 Change-Id: Ief1229f0dac5f90c5f06d3168c8ffb4b7d1f1b53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2246566 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68379}
-
- 29 May, 2020 1 commit
-
-
Anton Bikineev authored
This CL is an initial attempt to reuse BoundedPageAllocator for cppgc. The caged 4GB heap is needed for: - fast implementation of the generational barrier; - potential pointer compression project for Oilpan. Bug: chromium:1029379 Change-Id: Idfb0ab92c988e2045d4a0e9746bedf841d66e282 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2215818 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@{#68074}
-
- 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}
-
- 14 Apr, 2020 1 commit
-
-
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 4 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}
-
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}
-
- 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}
-