- 24 Mar, 2022 1 commit
-
-
Anton Bikineev authored
Currently, OSB can not be safely accessed if sweeping is in progress. This can, however, be easily lifted with atomic stores. Having the consistent bitmap is needed for the generational barrier for source objects (to retrieve the source object beginning). Bug: chromium:1029379 Change-Id: I5fb8db579f881ddf240ce68ad51fa8264ee645dc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545071Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#79606}
-
- 23 Mar, 2022 1 commit
-
-
Tobias Tebbi authored
This reverts commit 164a040a. Reason for revert: roll failure: https://ci.chromium.org/ui/p/chromium/builders/try/cast_shell_linux/1164753/overview Original change's description: > cppgc: Add regression test and check for object start bitmap > > Access to the object start bitmap is only safe during marking until > sweeping is started as the concurrent sweeper may clear and rebuild > the bitmap at any time during sweeping. > > Adds a DCHECK and an additional test for a previously broken > pre-finalizer scenario. > > Bug: chromium:1307471 > Change-Id: If67ade43f7cdad6de4720c0efeac11bfe8c22b3c > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3535782 > Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79550} Bug: chromium:1307471 Change-Id: I181e63a34eae9369184fb86112bc64e53b8bfad5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545317 Owners-Override: Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#79590}
-
- 21 Mar, 2022 1 commit
-
-
Michael Lippautz authored
Access to the object start bitmap is only safe during marking until sweeping is started as the concurrent sweeper may clear and rebuild the bitmap at any time during sweeping. Adds a DCHECK and an additional test for a previously broken pre-finalizer scenario. Bug: chromium:1307471 Change-Id: If67ade43f7cdad6de4720c0efeac11bfe8c22b3c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3535782Reviewed-by:
Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79550}
-
- 12 Oct, 2021 1 commit
-
-
Michael Lippautz authored
Adds support for double-word aligned, i.e., 8 bytes on 32-bit platforms and 16 bytes on 64-bit platforms, objects in Oilpan. Changes: - Adds generic alignment APIs and overrides. - Internal logic to support double-word aligned allocations on LABs. - Adjusts natural alignment of large objects to follow double-word. - Adds a new static_assert() that suggests users file a bug if higher alignment is required. - Statically checks that no allocations with non-default alignment target custom spaces that support compaction. Bug: v8:12295 Change-Id: I05766ce2349055d5d78b68919be00e7ee91d5505 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3218150Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77348}
-
- 12 Jul, 2021 1 commit
-
-
Michael Lippautz authored
Add discarded of memory on memory reducing garbage collections. In addition, add tracking of discarded memory and properly adjust the resident memory of heap dumps. - Memory is discarded during sweeping and the counter is persistent across garbage collection cycles. - Subsequent sweep calls are not supposed to touch the memory anymore. - As a simplification, discarded memory is tracked on page granularity and assumed to be fully paged in as soon as a page's free list entries are reused for allocation. Change-Id: Icfd58f49f3400c4df0d482e20326a0c43c1ca9f5 Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3015563 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#75677}
-
- 09 Jun, 2021 1 commit
-
-
Michael Lippautz authored
Pass along the intended atomicity parameter for a getter in a DCHECK. Bug: chromium:1218072 Change-Id: Ib83c8f548d3de9c944546c74291cd148643e185c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2950242 Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#75060}
-
- 26 May, 2021 1 commit
-
-
Michael Lippautz authored
Also change: - {NormalPageSpace, LargePageSpace}::From() - ObjectAllocator::* Bug: v8:11822 Change-Id: I78a1a5379e16fc1e1c95136d7aa8cc34caed0413 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917042 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#74784}
-
- 25 May, 2021 1 commit
-
-
Michael Lippautz authored
Switches internals of BasePage and some getters to references that are guaranteed non-null. Bug: v8:11822 Change-Id: I484c4451720dc7e04f8b89dbe4fef03a3eaf817e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2917038Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#74756}
-
- 12 May, 2021 1 commit
-
-
Omer Katz authored
Replaces Payload* terminiology with Object* terminology. HoH::ObjectSize = just the object, without the header. HoH::AllocatedSize = both the object and the header. Payload terminology is retained only for pages. Bug: chromium:1056170 Change-Id: I568a324ae8728f098be642b024493c375ec873cb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2892079 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#74538}
-
- 07 May, 2021 1 commit
-
-
Ulan Degenbaev authored
The function will be used to implement the web memory measurement API. This adds an |allocated_bytes_at_last_gc| counter to each normal page. The counter is updated by the sweeper. Bug: chromium:1181269 Change-Id: If6612de06f373a839fce986c71ba3dfde4d9c9c2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2880534 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#74446}
-
- 14 Apr, 2021 1 commit
-
-
Omer Katz authored
Migrating unittests from Blink that were not already covered by cppgc. Bug: chromium:1056170 Change-Id: If31591c3f1e99562028087c2b818f5ceb8122ec9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2821542 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73960}
-
- 03 Mar, 2021 1 commit
-
-
Omer Katz authored
LargePage::PayloadSize inclues the heap object header. Keeping PayloadSize as is to keep it aligned with NormalPage::PayloadSize and introducing LargePage::ObjectSize as the counterpart for HeapObjectHeader::ObjectSize that will exclude the header. Bug: chromium:1056170 Change-Id: I8a5f50841fd9dbd6c9a4a4035d9040021944cacc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2731533Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73154}
-
- 11 Feb, 2021 1 commit
-
-
Omer Katz authored
HeapBase::CollectStatistics returns a HeapStatistics struct that can be used by blink to populate a memory dump. Bug: chromium:1056170 Change-Id: Ic147a02ba6b4aa77bf92cfca067da70b7e1af55b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2689181 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72660}
-
- 14 Jan, 2021 1 commit
-
-
Michael Lippautz authored
Adds support for Member<const T> by keeping the untyped storage in MemberBase const, which is stronger than the required constness. All accesses go through BasicMember which can re-add the appropriate constness specified by the user. The same concept is applied to all Member and Persistent handles. Bug: chromium:1056170 Change-Id: I5a620258be3acb6a1b4b1437e69b8d7d1ec5ce6f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2625871Reviewed-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@{#72090}
-
- 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}
-
- 02 Oct, 2020 1 commit
-
-
Omer Katz authored
This resolves several races identified by concurrent marking tests. These include: (*) Several instances of not using atomic accesses. (*) Synchronizing page on page creation. Bug: chromium:1056170 Change-Id: I4a32a44b93a6995a11e3cc75c9446fb8860ae780 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2423717 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70287}
-
- 10 Jul, 2020 2 commits
-
-
Omer Katz authored
This CL removes the GetTraceDescriptor virtual call from garbage collected mixins and replaces it with querying the object start bitmap. The CL also removes the mixin macros which are now no longer needed. Bug: chromium:1056170 Change-Id: I27ed299f93025d09a3bb3f0d17b14bed3c200565 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2287508Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68787}
-
Omer Katz authored
This CL ports the atomic object start bitmap from blink. Using the bitmap for mixin tracing is left as a followup. Bug: chromium:1056170 Change-Id: I4998a0d9d76708a7bab0634e04354809dfc8c78f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2287504Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68778}
-
- 01 Jul, 2020 1 commit
-
-
Michael Lippautz authored
Move inlined methods to .h files accordingly, follwing style guide rule: https://google.github.io/styleguide/cppguide.html#Self_contained_Headers Bug: chromium:1056170 Change-Id: Ia6c4f82bd4352d507eece36e540ad0d318e56920 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2273858Reviewed-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@{#68627}
-
- 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}
-
- 15 Jun, 2020 1 commit
-
-
Michael Lippautz authored
Introduce HeapBase as an internal base implementation for concrete heaps (unified, stand-alone). Change-Id: I0aa7185e23f83e01e4e2ca23d983b28e32bb610e Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238573 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68338}
-
- 11 Jun, 2020 1 commit
-
-
Michael Lippautz authored
Since the registration requires calling into the library, there's no reason to get the heap through a magic getter on API level. Bug: chromium:1056170 Change-Id: I8d2b1d0fcee8c855908bd26c71a22826c493ed29 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2238568 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68315}
-
- 10 Jun, 2020 1 commit
-
-
Anton Bikineev authored
This fixes two issues: - labs resetting didn't account bytes as beeing freed; - large object were not accounted. The CL introduces a single bottleneck for labs resetting in ObjectAllocator, which is aware of StatsCollector. This way NormalSpace is treated as a value object and all invariants are maintained by ObjectAllocator (and Sweeper). Bug: chromium:1056170 Change-Id: I027cc01fe5028a3dfa81905d7ea53dd12d1c1f20 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2237629 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68286}
-
- 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}
-
- 14 May, 2020 3 commits
-
-
Omer Katz authored
This reverts commit 580917d2. Reason for revert: fix in patchset 2 Original change's description: > Revert "cppgc: Stack scanning using ObjectStartBitmap" > > This reverts commit d3a72e3c. > > Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/32360) > > Original change's description: > > cppgc: Stack scanning using ObjectStartBitmap > > > > This CL implements stack scanning for cppgc. > > Given a value on the stack, the MarkingVisitor uses > > PageBackend::Lookup to checks whether that address is on > > the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress > > (introduced in this CL) is used to get the relevant object > > header. Note that random addresses on the heap might point to > > free memory, object-start-bitmap, etc. > > > > If a valid object header is found: > > * If the object is not in construction, the GCInfoIndex is used > > the get the relevant Trace method and the object is traced. > > * Otherwise, the object is conservatively scanned - i.e. the > > payload of the object is iterated word by word and each word is > > treated as a possible pointer. > > > > Only addresses pointing to the payload on non-free objects are > > traced. > > > > BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the > > relevant space, thus all LABs are reset before scanning the stack. > > > > Bug: chromium:1056170 > > Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426 > > Commit-Queue: Omer Katz <omerkatz@chromium.org> > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#67795} > > TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org > > Change-Id: I3caef6f9f55911fd1a86e895c3495d1b98b1eac2 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: chromium:1056170 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201136 > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67796} TBR=ulan@chromium.org,mlippautz@chromium.org,leszeks@chromium.org,bikineev@chromium.org,omerkatz@chromium.org # Not skipping CQ checks because this is a reland. Bug: chromium:1056170 Change-Id: If7ea4fe5cb794c07544d5545f5d6548e3375d3ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201137Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#67803}
-
Leszek Swirski authored
This reverts commit d3a72e3c. Reason for revert: MSAN failures (https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/32360) Original change's description: > cppgc: Stack scanning using ObjectStartBitmap > > This CL implements stack scanning for cppgc. > Given a value on the stack, the MarkingVisitor uses > PageBackend::Lookup to checks whether that address is on > the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress > (introduced in this CL) is used to get the relevant object > header. Note that random addresses on the heap might point to > free memory, object-start-bitmap, etc. > > If a valid object header is found: > * If the object is not in construction, the GCInfoIndex is used > the get the relevant Trace method and the object is traced. > * Otherwise, the object is conservatively scanned - i.e. the > payload of the object is iterated word by word and each word is > treated as a possible pointer. > > Only addresses pointing to the payload on non-free objects are > traced. > > BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the > relevant space, thus all LABs are reset before scanning the stack. > > Bug: chromium:1056170 > Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67795} TBR=ulan@chromium.org,mlippautz@chromium.org,bikineev@chromium.org,omerkatz@chromium.org Change-Id: I3caef6f9f55911fd1a86e895c3495d1b98b1eac2 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201136Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#67796}
-
Omer Katz authored
This CL implements stack scanning for cppgc. Given a value on the stack, the MarkingVisitor uses PageBackend::Lookup to checks whether that address is on the heap. If it is, BasePage::TryObjectHeaderFromInnerAddress (introduced in this CL) is used to get the relevant object header. Note that random addresses on the heap might point to free memory, object-start-bitmap, etc. If a valid object header is found: * If the object is not in construction, the GCInfoIndex is used the get the relevant Trace method and the object is traced. * Otherwise, the object is conservatively scanned - i.e. the payload of the object is iterated word by word and each word is treated as a possible pointer. Only addresses pointing to the payload on non-free objects are traced. BasePage::TryObjectHeaderFromInnerAddress assumes on LAB on the relevant space, thus all LABs are reset before scanning the stack. Bug: chromium:1056170 Change-Id: I172850f6f1bbb6f0efca8e44ad8fdfe222977b9f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2190426 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#67795}
-
- 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}
-
- 29 Apr, 2020 1 commit
-
-
Anton Bikineev authored
HeapVisitor is a simple visitor implementing both visitation and accept interfaces. HeapVisitor is aimed to replace functions that traverse the heap in Blink: PrepareForSweep, Sweep, FinalizeSweep, MakeConsistentForGC, ObjectPayloadSize, VerifyObjectStartBitmap, CollectStatistics, etc. This CL also introduces a Heap::ObjectPayloadSize function. Bug: chromium:1056170 Change-Id: I85a2b8b572486bea29704fc436b002d8f7405201 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2165733 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@{#67458}
-
- 28 Apr, 2020 1 commit
-
-
Anton Bikineev authored
This adds the following: 1) Heap object structure classes: RawHeap, BaseArena and BasePage. - freelist - linear allocation block 2) ObjectAllocator, a class responsible for object (and page) allocation. The design doc with UML design: https://bit.ly/2VVTcqc User defined arenas are followup. Bug: chromium:1056170 Change-Id: I69a82974bd08e3cf3da90041b1628297cc890891 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2167392 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@{#67425}
-
- 09 Apr, 2020 1 commit
-
-
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}
-