- 01 Feb, 2021 1 commit
-
-
Ulan Degenbaev authored
The flags are enabled by default and have stable coverage. This also removes the corresponding bots. Bug: v8:10315 Change-Id: Icce01383050dff758b6554db8e0c3589d6e5459c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2658324 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#72457}
-
- 11 Nov, 2020 1 commit
-
-
Ulan Degenbaev authored
The new predicate allows a background thread to check if the given object was recently allocated and may potentially be unsafe to read from the background thread. The current implementation has relatively high overhead as it loads two pointers per heap space. It will be optimized in the future. Bug: v8:11148 Change-Id: I2a9dfb2c70de4b8214b8f8a35681a8bab1a63ca8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2532296 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#71130}
-
- 29 Oct, 2020 1 commit
-
-
Ulan Degenbaev authored
This allows GC to go slightly over the max heap limit in order to give NearHeapLimitCallback a chance to run and increase the limit. Based on the suggestion by Kenton Varda. Change-Id: I9c084b5a4c8fb7b9ce331b565958391c1be56add Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2505724 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#70884}
-
- 01 Oct, 2020 1 commit
-
-
Dominik Inführ authored
MapSpace was using a separate FreeList implementation since all maps have the save exact same size. Remove FreeListMap and use the regular free list which is also used for the old space. This will allow to use LABs in the map space. Bug: v8:10315 Change-Id: I00cfcb260edb20f044ad74a24772f810e1f93afd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2442789Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#70256}
-
- 21 Sep, 2020 1 commit
-
-
Ulan Degenbaev authored
When a compaction space allocates a new code page, that pages needs to be added to the Isolate::code_pages_ array used for stack unwinding. Since the array is owned by the main thread, compaction thread cannot directly modify it. Because of that code pages are added upon merging of the compaction space to the main space in MergeLocalSpace. The bug was that all code pages coming from the compaction space were added to the code_pages_ array. However, some of the pages are not newly allocated but merely borrowed from the main space. This CL keeps track of all newly allocated paged by a compaction space. Bug: v8:10900 Change-Id: Iff3ff5d608df60fb752d2e0ffc29e51f2d967936 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2418718 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#70023}
-
- 18 Sep, 2020 2 commits
-
-
Maya Lekova authored
This reverts commit af5f437c. Reason for revert: Seems to break TSAN - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/33286? Original change's description: > [heap] Fix tracking of code pages for V8 stack unwinder > > When a compaction space allocates a new code page, that pages needs to > be added to the Isolate::code_pages_ array used for stack unwinding. > Since the array is owned by the main thread, compaction thread cannot > directly modify it. Because of that code pages are added upon merging > of the compaction space to the main spage in MergeLocalSpace. > > The bug was that all code pages coming from the compaction space > were added to the code_pages_ array. However, some of the pages are > not newly allocated but merely borrowed from the main space. > > This CL introduces a new page flag for marking pages that are borrowed > during compaction and skips them in MergeLocalSpace. > > Bug: v8:10900 > Change-Id: I786dc5747bd7c785ae58dfd8b841c00774efb15e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2416500 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69992} TBR=ulan@chromium.org,jkummerow@chromium.org,dinfuehr@chromium.org Change-Id: I13f8b64014750af95423166152dc9bee8cec12d0 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10900 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2418395Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#69993}
-
Ulan Degenbaev authored
When a compaction space allocates a new code page, that pages needs to be added to the Isolate::code_pages_ array used for stack unwinding. Since the array is owned by the main thread, compaction thread cannot directly modify it. Because of that code pages are added upon merging of the compaction space to the main spage in MergeLocalSpace. The bug was that all code pages coming from the compaction space were added to the code_pages_ array. However, some of the pages are not newly allocated but merely borrowed from the main space. This CL introduces a new page flag for marking pages that are borrowed during compaction and skips them in MergeLocalSpace. Bug: v8:10900 Change-Id: I786dc5747bd7c785ae58dfd8b841c00774efb15e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2416500Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69992}
-
- 14 Aug, 2020 1 commit
-
-
Leszek Swirski authored
This patch introduces a new LocalIsolate and LocalFactory, which use LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows us to remove those classes, as well as the related OffThreadSpace, OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle. OffThreadLogger becomes LocalLogger. LocalHeap behaves more like Heap than OffThreadHeap did, so this allows us to additionally remove the concept of "Finish" and "Publish" that the OffThreadIsolate had, and allows us to internalize strings directly with the newly-concurrent string table (where the implementation can now move to FactoryBase). This patch also removes the off-thread support from the deserializer entirely, as well as removing the LocalIsolateWrapper which allowed run-time distinction between Isolate and OffThreadIsolate. LocalHeap doesn't support the reservation model used by the deserializer, and we will likely move the deserializer to use LocalIsolate unconditionally once we figure out the details of how to do this. Bug: chromium:1011762 Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990 Commit-Queue: Andreas Haas <ahaas@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69397}
-
- 13 Aug, 2020 2 commits
-
-
Dominik Inführ authored
Remove allocation_mutex_ and use the already existing space_mutex to protect the free list from concurrent allocation. Bug: v8:10315 Change-Id: I8d823bcb80dfa49c6431a6db875488bc8d6ee8b6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352783Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69384}
-
Dominik Inführ authored
Locks the allocation mutex if SupportsConcurrentAllocation() returns true. Unifies code/condition from multiple usages. Bug: v8:10315 Change-Id: I684d12284e862df5d68986841e04ff25527422eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2352775 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69379}
-
- 12 Aug, 2020 1 commit
-
-
Dominik Inführ authored
ArrayBufferTracker was superseded by ArrayBufferList and ArrayBufferSweeper. Now that ArrayBufferSweeper is used in production, we can remove the unused ArrayBufferTracker mechanism. Bug: v8:10064 Change-Id: I479169c76b6c5c634672024f77e689bb64a36504 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2339105Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69351}
-
- 11 Aug, 2020 1 commit
-
-
Dominik Inführ authored
Isolate::GetHeapStatistics uses PagedSpace::Available, which races with allocating background threads. Bug: v8:10315 Change-Id: I6e0dc37d90e0c7a3e3dd2b8bdb77f2ea82372c13 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2349294Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69337}
-
- 05 Aug, 2020 1 commit
-
-
Dominik Inführ authored
PagedSpace::SizeOfObjects() then returns exactly the same value as PagedSpace::Size(). SizeOfObjects() used to deduct the current LAB, however this is now more difficult with local heaps. Accessing the main thread LAB from concurrent threads causes a data race. Also LocalHeaps have their own LAB, which should be deducted as well to be uniform with the main thread. However this would be tricky and expensive. The simpler solution is to do not deduct the main thread LAB anymore. Bug: v8:10315 Change-Id: I3c47e1a65caca9395737251aa694b295e78c7fb5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2336090 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69245}
-
- 04 Aug, 2020 1 commit
-
-
Dominik Inführ authored
This is a reland of b354e344 This CL adds 3 fixes: * Unprotect code object before creating filler * Allows AllocationObserver::Step to add more AllocationObservers * Update limit in NewSpace::UpdateLinearAllocationArea Original change's description: > [heap] Refactor allocation observer in AllocationCounter > > Moves accounting of allocation observers into the AllocationCounter > class. This CL removes top_on_previous_step_ for counters that are > increased regularly in the slow path of the allocation functions. > > AdvanceAllocationObservers() informs the AllocationCounter about > allocated bytes, InvokeAllocationObservers() needs to be invoked when > an allocation step is reached. NextBytes() returns the number of bytes > until the next AllocationObserver::Step needs to run. > > Bug: v8:10315 > Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69170} Bug: v8:10315 Change-Id: I89ab4d5069a234a293471f613dab16b47d8fff89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332805Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69216}
-
- 01 Aug, 2020 1 commit
-
-
Dominik Inführ authored
This reverts commit b354e344. Reason for revert: Clusterfuzz found issues with this CL. Original change's description: > [heap] Refactor allocation observer in AllocationCounter > > Moves accounting of allocation observers into the AllocationCounter > class. This CL removes top_on_previous_step_ for counters that are > increased regularly in the slow path of the allocation functions. > > AdvanceAllocationObservers() informs the AllocationCounter about > allocated bytes, InvokeAllocationObservers() needs to be invoked when > an allocation step is reached. NextBytes() returns the number of bytes > until the next AllocationObserver::Step needs to run. > > Bug: v8:10315 > Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69170} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: Icd713207bfb2085421fd82009be24a0211ae86da No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10315 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332667Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69187}
-
- 31 Jul, 2020 1 commit
-
-
Dominik Inführ authored
Moves accounting of allocation observers into the AllocationCounter class. This CL removes top_on_previous_step_ for counters that are increased regularly in the slow path of the allocation functions. AdvanceAllocationObservers() informs the AllocationCounter about allocated bytes, InvokeAllocationObservers() needs to be invoked when an allocation step is reached. NextBytes() returns the number of bytes until the next AllocationObserver::Step needs to run. Bug: v8:10315 Change-Id: I8b6eb8719ab032d44ee0614d2a0f2645bfce9df6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2320650 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69170}
-
- 27 Jul, 2020 1 commit
-
-
Dominik Inführ authored
Add methods NotifyBytes(), NotifyObject() and NextBytes() to AllocationCounter. Methods are unused for now. Move AllocationObserver::Step after AllocationCounter methods as well. Use SetTopAndLimit as bottleneck instead of allocation_info_.Reset. Bug: v8:10315 Change-Id: I30049cb02e873bb08ebce606a491d99130421227 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2316103 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#69060}
-
- 24 Jul, 2020 1 commit
-
-
Dominik Inführ authored
We don't use the updated size anywhere. Bug: v8:10315 Change-Id: Iba1fd484fef062d109aa4e5a2c1b40d0a838f80b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2317320Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69048}
-
- 14 Jul, 2020 1 commit
-
-
Dominik Inführ authored
Before actually failing to allocate, let the background thread help to sweep all pages of that space. As a drive-by also rename allocation functions to make background and main thread allocation more similar. Bug: v8:10315 Change-Id: I26d4b622de949d4943e35071cee1df8b3d2889c2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2297383Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#68843}
-
- 13 Jul, 2020 1 commit
-
-
Dominik Inführ authored
Rename functions for main thread allocation to indicate that they are used for main thread allocation. Bug: v8:10315 Change-Id: Idd359a7a439ec2e93f0bdc2f1bed987755790bbe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2292308Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#68828}
-
- 03 Jul, 2020 1 commit
-
-
Dominik Inführ authored
Introduce explicit fast path for allocation in PagedSpace. The slow path is moved into AllocateRawSlow which refills the LAB and retries the allocation. Reland of https://crrev.com/c/2277808, reverted because it broke the MSAN build in https://crrev.com/c/2275969. Bug: v8:10315 Change-Id: I7a3d32525fa12ea672c62f6297c92aaafc3d8157 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2280081Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#68667}
-
- 02 Jul, 2020 2 commits
-
-
Maya Lekova authored
This reverts commit 099b1cf3. Reason for revert: Fails on MSAN - https://ci.chromium.org/p/v8/builders/ci/V8%20Clusterfuzz%20Linux%20MSAN%20no%20origins/16034? Original change's description: > [heap] Introduce fast path in PagedSpace::AllocateRaw > > Introduce explicit fast path for allocation in PagedSpace. The slow path > is moved into AllocateRawSlow which refills the LAB and retries the > allocation. > > Bug: v8:10315 > Change-Id: I807e56ccde833b0e9a42166b4883c1978d01e828 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2277808 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#68653} TBR=ulan@chromium.org,dinfuehr@chromium.org Change-Id: I11ce25da69a24a0a5ccc5e0324d1dfe71cdeaca0 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10315 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2275969Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#68654}
-
Dominik Inführ authored
Introduce explicit fast path for allocation in PagedSpace. The slow path is moved into AllocateRawSlow which refills the LAB and retries the allocation. Bug: v8:10315 Change-Id: I807e56ccde833b0e9a42166b4883c1978d01e828 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2277808Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#68653}
-
- 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}
-
- 09 Jun, 2020 1 commit
-
-
Dominik Inführ authored
Rename CreateFillerObjectFromSweeper to CreateFillerObjectAtBackground. Also use CreateFillerObjectAtBackground in PagedSpace::Free since this is used from both main and background threads. Bug: v8:10315 Change-Id: I1dc8ca2b1c81bdfd192c0ae8d8547eb577f3f8c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235534 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68255}
-
- 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}
-
- 04 Jun, 2020 1 commit
-
-
Dominik Inführ authored
Introduce ParkedMutexGuard which is similar to base::MutexGuard but also parks the LocalHeap while the thread is blocked. Bug: v8:10315 Change-Id: I149673511df013881ed2fbb42cf22d3f9b17b92d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2230518 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#68173}
-
- 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}
-
- 20 May, 2020 1 commit
-
-
Dominik Inführ authored
Instead of skipping LAB in PagedSpaceObjectIterator, make the space iterable by inserting a filler object into the LAB. Bug: v8:10315 Change-Id: I6d79c309b7b8180b2a173ebd5ebdf8a893e88c4d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2210234Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#67928}
-
- 19 May, 2020 1 commit
-
-
Dominik Inführ authored
Do not lock mutex for the full duration of the slow path of allocation on background threads. For example sweeping and allocation of a new page is now performed outside of the lock. Bug: v8:10315 Change-Id: Ifee9bc1569d1ec53fdced965bd222dd1eab11b24 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2207131Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#67898}
-
- 18 May, 2020 2 commits
-
-
Dan Elphick authored
Splits out MemoryAllocator and CodeRangeAddressHint into memory-allocator.h Bug: v8:10473, v8:10506 Change-Id: I0855f23dd0374ddd68493ee05af7a3a00c84660d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2203206 Auto-Submit: Dan Elphick <delphick@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#67857}
-
Ulan Degenbaev authored
This moves page post-processinng into NotifyOldGenerationExpansion and introduces a new CanExpandOldGenerationBackground. Bug: v8:10536 Change-Id: I54761226487434955f8a0dadf7c4dbb31c7955e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2204283Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67853}
-
- 15 May, 2020 1 commit
-
-
Dan Elphick authored
Splits out all of SemiSpace, NewSpaces and related classes into paged-spaces.h. Bug: v8:10473, v8:10506 Change-Id: I97ecceaf5df41263cc8ea75ff0018442bfeffa66 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2202903 Auto-Submit: Dan Elphick <delphick@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#67831}
-
- 14 May, 2020 1 commit
-
-
Dan Elphick authored
Splits out all of PagedSpace and subclasses into paged-spaces.h. Also moves CodeObjectRegistry to code-object-registry.h. Bug: v8:10473, v8:10506 Change-Id: I35fab1e545e958eb32f3e39a5e2ce8fb087c2a53 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201763Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#67811}
-