- 13 May, 2022 1 commit
-
-
Clemens Backes authored
Now that we require C++17 support, we can just use the standard static_assert without message, instead of our STATIC_ASSERT macro. R=leszeks@chromium.org Bug: v8:12425 Change-Id: I1d4e39c310b533bcd3a4af33d027827e6c083afe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647353Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#80524}
-
- 28 Mar, 2022 1 commit
-
-
Dominik Inführ authored
Define ctors for BasicMemoryChunk, ReadOnlyPage, MemoryChunk, Page and LargePage. We can use those with placement-new to initialize pages. We now initialize chunks at once either for ReadOnlyPage, Page or LargePage. Previously initialization happened in multiple locations starting with BasicMemoryChunk::Initialize. Adding ctors to these classes should improve debugging, since debug info for classes without ctors was removed with the compiler flag `-fuse-ctor-homing`. Change-Id: Ib842bb9b1e93a6576cad8299b7c5dbfe299baa33 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545092Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#79638}
-
- 19 Oct, 2021 1 commit
-
-
Igor Sheludko authored
... by explicitly passing pointer compression cage base value to various IsXXX() and map() calls in order to avoid using incorrect auto-computed cage base value when applied to objects allocated in external code space. This CL also introduces IsCodeObject(HeapObject) predicate which checks the IS_EXECUTABLE bit in the page header's flags. Bug: v8:11880 Change-Id: Ib44398c3125392e46e939044a9bd27e09d7944d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3229368Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#77459}
-
- 27 Aug, 2021 1 commit
-
-
Michael Lippautz authored
This is a reland of 80f10346 Original change's description: > Reland "heap: Use generic flags for main-thread only flags" > > This is a reland of 2a8e2a9b > > Original change's description: > > heap: Use generic flags for main-thread only flags > > > > BasicMemoryChunk flags should only be mutated from the main thread > > when no concurrent task can access them. For that purpose it is enough > > to use regular non-atomic flags as they are immutable while the GC is > > running. > > > > Change-Id: I0a9f8ecb2eb2aafaf17e77626ae27604abd1b618 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3107230 > > Reviewed-by: Hannes Payer <hpayer@chromium.org> > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#76471} > > Change-Id: Iaf495546f82291ab674537f5d39e10d0495ac612 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3117486 > Auto-Submit: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#76506} Change-Id: I662bccdf94fc53efcdd209f85d6b044786dee250 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123412 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#76528}
-
- 26 Aug, 2021 2 commits
-
-
Leszek Swirski authored
This reverts commit 80f10346. Reason for revert: Breaks build: https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket/8837831932745482705/+/u/build/compile/stdout?format=raw Original change's description: > Reland "heap: Use generic flags for main-thread only flags" > > This is a reland of 2a8e2a9b > > Original change's description: > > heap: Use generic flags for main-thread only flags > > > > BasicMemoryChunk flags should only be mutated from the main thread > > when no concurrent task can access them. For that purpose it is enough > > to use regular non-atomic flags as they are immutable while the GC is > > running. > > > > Change-Id: I0a9f8ecb2eb2aafaf17e77626ae27604abd1b618 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3107230 > > Reviewed-by: Hannes Payer <hpayer@chromium.org> > > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#76471} > > Change-Id: Iaf495546f82291ab674537f5d39e10d0495ac612 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3117486 > Auto-Submit: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#76506} Change-Id: I2a20c6f70f796e7f869bb2c9be0f8e80a89c98cf No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3122586 Owners-Override: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#76510}
-
Michael Lippautz authored
This is a reland of 2a8e2a9b Original change's description: > heap: Use generic flags for main-thread only flags > > BasicMemoryChunk flags should only be mutated from the main thread > when no concurrent task can access them. For that purpose it is enough > to use regular non-atomic flags as they are immutable while the GC is > running. > > Change-Id: I0a9f8ecb2eb2aafaf17e77626ae27604abd1b618 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3107230 > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#76471} Change-Id: Iaf495546f82291ab674537f5d39e10d0495ac612 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3117486 Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#76506}
-
- 24 Aug, 2021 2 commits
-
-
Shu-yu Guo authored
This reverts commit 2a8e2a9b. Reason for revert: Linking error on UBSan https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Clusterfuzz%20Linux64%20UBSan%20-%20release%20builder/17755/overview Original change's description: > heap: Use generic flags for main-thread only flags > > BasicMemoryChunk flags should only be mutated from the main thread > when no concurrent task can access them. For that purpose it is enough > to use regular non-atomic flags as they are immutable while the GC is > running. > > Change-Id: I0a9f8ecb2eb2aafaf17e77626ae27604abd1b618 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3107230 > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#76471} Change-Id: I5da7dff91549fd4aadd0bc9ae0a29c52748d9dcb No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3116810 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shu-yu Guo <syg@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Reviewed-by: Shu-yu Guo <syg@chromium.org> Owners-Override: Shu-yu Guo <syg@chromium.org> Auto-Submit: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#76472}
-
Michael Lippautz authored
BasicMemoryChunk flags should only be mutated from the main thread when no concurrent task can access them. For that purpose it is enough to use regular non-atomic flags as they are immutable while the GC is running. Change-Id: I0a9f8ecb2eb2aafaf17e77626ae27604abd1b618 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3107230Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#76471}
-
- 22 Mar, 2021 1 commit
-
-
Mike Stanton authored
When looking at Code objects from the compiler, we inquire whether the object is on a read only page. In TSAN builds, it's necessary to reload the memory because TSAN can't detect the safety of the operation. Fixed: v8:11590 Change-Id: Iaedd6e3f9f22241d4ef778f53a0405eaac8f76b6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2778276Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#73571}
-
- 10 Jul, 2020 1 commit
-
-
Ulan Degenbaev authored
Instead allocating the bitmap with malloc, we now reserve a block at the start of the memory chunk. This CL is a partial revert of https://chromium-review.googlesource.com/c/v8/v8/+/1254125 Additionally it refactors field offset computation and moves them to MemoryChunkLayout. Having the bitmap in the memory chunk simplifies sharing of RO pages and also solves the malloc fragmentation issues. Bug: chromium:1073140 Change-Id: Ibc04f48921fc9496370858ce4c25c56b31c93c89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2289979 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#68783}
-
- 18 Jun, 2020 1 commit
-
-
Dan Elphick authored
This reverts commit f78d69fa. With https://chromium-review.googlesource.com/c/v8/v8/+/2243216, incorrect MemoryChunk::FromHeapObject uses are now fixed. Original change's description: > Revert "[heap] Make ReadOnlySpace use bump pointer allocation" > > This reverts commit 81c34968 and also > 490f3580 which depends on the former. > > Reason for revert: Break CFI tests in chromium https://ci.chromium.org/p/chromium/builders/ci/Linux%20CFI/17438 > Original change's description: > > [heap] Make ReadOnlySpace use bump pointer allocation > > > > This changes ReadOnlySpace to no longer be a PagedSpace but instead it > > is now a BaseSpace. BasicSpace is a new base class that Space inherits > > from and which has no allocation methods and does not dictate how the > > pages should be held. > > > > ReadOnlySpace unlike Space holds its pages as a > > std::vector<ReadOnlyPage>, where ReadOnlyPage directly subclasses > > BasicMemoryChunk, meaning they do not have prev_ and next_ pointers and > > cannot be held in a heap::List. This is desirable since with pointer > > compression we would like to remap these pages to different memory > > addresses which would be impossible with a heap::List. > > > > Since ReadOnlySpace no longer uses most of the code from the other > > Spaces it makes sense to simplify its memory allocation to use a simple > > bump pointer and always allocate a new page whenever an allocation > > exceeds the remaining space on the final page. > > > > Change-Id: Iee6d9f96cfb174b4026ee671ee4f897909b38418 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2209060 > > Commit-Queue: Dan Elphick <delphick@chromium.org> > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#68137} > > TBR=ulan@chromium.org,delphick@chromium.org > > # Not skipping CQ checks because original CL landed > 1 day ago. > > Change-Id: I68c9834872e55eb833be081f8ff99b786bfa9894 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2232552 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Dan Elphick <delphick@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68211} TBR=ulan@chromium.org,delphick@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Id5b3cce41b5dec1dca816c05848d183790b1cc05 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2250254Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#68407}
-
- 17 Jun, 2020 1 commit
-
-
Dan Elphick authored
Since ReadOnlySpace pages will soon not be MemoryChunks, change most uses of MemoryChunk::FromHeapObject and FromAddress to use the BasicMemoryChunk variants and which use the new MemoryChunk::cast function that takes a BasicMemoryChunk and DCHECKs !InReadOnlySpace(). To enable this, it also moves into BasicMemoryChunk several MemoryChunk functions that just require a BasicMemoryChunk. Bug: v8:10454 Change-Id: I80875b2c2446937ac2c2bc9287d36e71cc050c38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2243216 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68390}
-
- 05 Jun, 2020 1 commit
-
-
Dan Elphick authored
This reverts commit 81c34968 and also 490f3580 which depends on the former. Reason for revert: Break CFI tests in chromium https://ci.chromium.org/p/chromium/builders/ci/Linux%20CFI/17438 Original change's description: > [heap] Make ReadOnlySpace use bump pointer allocation > > This changes ReadOnlySpace to no longer be a PagedSpace but instead it > is now a BaseSpace. BasicSpace is a new base class that Space inherits > from and which has no allocation methods and does not dictate how the > pages should be held. > > ReadOnlySpace unlike Space holds its pages as a > std::vector<ReadOnlyPage>, where ReadOnlyPage directly subclasses > BasicMemoryChunk, meaning they do not have prev_ and next_ pointers and > cannot be held in a heap::List. This is desirable since with pointer > compression we would like to remap these pages to different memory > addresses which would be impossible with a heap::List. > > Since ReadOnlySpace no longer uses most of the code from the other > Spaces it makes sense to simplify its memory allocation to use a simple > bump pointer and always allocate a new page whenever an allocation > exceeds the remaining space on the final page. > > Change-Id: Iee6d9f96cfb174b4026ee671ee4f897909b38418 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2209060 > Commit-Queue: Dan Elphick <delphick@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68137} TBR=ulan@chromium.org,delphick@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: I68c9834872e55eb833be081f8ff99b786bfa9894 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2232552 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68211}
-
- 03 Jun, 2020 2 commits
-
-
Dan Elphick authored
This changes ReadOnlySpace to no longer be a PagedSpace but instead it is now a BaseSpace. BasicSpace is a new base class that Space inherits from and which has no allocation methods and does not dictate how the pages should be held. ReadOnlySpace unlike Space holds its pages as a std::vector<ReadOnlyPage>, where ReadOnlyPage directly subclasses BasicMemoryChunk, meaning they do not have prev_ and next_ pointers and cannot be held in a heap::List. This is desirable since with pointer compression we would like to remap these pages to different memory addresses which would be impossible with a heap::List. Since ReadOnlySpace no longer uses most of the code from the other Spaces it makes sense to simplify its memory allocation to use a simple bump pointer and always allocate a new page whenever an allocation exceeds the remaining space on the final page. Change-Id: Iee6d9f96cfb174b4026ee671ee4f897909b38418 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2209060 Commit-Queue: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68137}
-
Dan Elphick authored
This moves several fields that will be needed by ReadOnlySpace pages when it stops using MemoryChunk into BasicMemoryChunk. Additionally AllocationStats is moved from spaces.h into allocation-stats.h. Bug: v8:10473, v8:10454 Change-Id: I76a66565a260126e629bd7588a5418267dfa8423 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2228722Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#68134}
-
- 13 May, 2020 1 commit
-
-
Dan Elphick authored
BasicMemoryChunk will become the base class for ReadOnlySpace pages which won't be MemoryChunks. Since ReadOnlySpace pages don't participate in GC they don't need slot_set_. Also some references to BasicMemoryChunk fields that were still prefixed with MemoryChunk:: Bug: v8:10454 Change-Id: If8ce40c7ee72d1617d2a1161ad9d4b7929f8a8e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2198988 Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#67774}
-
- 23 Oct, 2019 1 commit
-
-
Dominik Inführ authored
This function was only used for the write barrier since the store buffer only stored slots and needed a way to get to the object's start. Now that we insert into the remembered set directly from the write barrier this isn't an issue anymore: the write barrier knows the object start. Change-Id: I701465ea40b7c4ee20404ecbcf3750e5fa6fd219 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1876049Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#64518}
-
- 11 Jul, 2019 1 commit
-
-
Maciej Goszczycki authored
BasicMemoryChunk sits above the MemoryChunk in the chunk hierarchy and is responsible for storing the bare minimum data to identify a chunk of memory, without worrying about GC etc. This change also completes the MemoryChunk offset asserts, which were previously missing for few key properties. Bug: v8:7464 Change-Id: Id4c7716c4ed5722ceca3cbc66d668aed016c74b0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1688843 Commit-Queue: Maciej Goszczycki <goszczycki@google.com> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#62652}
-