- 11 Jul, 2022 1 commit
-
-
Anton Bikineev authored
With pointer compression enabled the compiler may not inline some Member functions on some platforms, because Member stores and loads become slightly more expensive. Inlining is however important with pointer compression - it allows to further optimize the code by eliminating the global load. Bug: chromium:1325007 Change-Id: Ia37d223e78853a8218e0b2732a3f08aa58929000 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3756141Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81648}
-
- 29 Jun, 2022 2 commits
-
-
Anton Bikineev authored
Shifting negative integrals is undefined behavior. The CL simply switches to uint64_t when decompressing, which anyway results in sign-extension (in standard terms, integral promotion must preserve the value and the sign of the source operand). The CL doesn't have any functional changes, the generated code is the same. It only fixes the ubsan report. Bug: chromium:1325007 Change-Id: I491a87b84d4e98b0225f76825dac2f9e85f168d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3736442 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81452}
-
Anton Bikineev authored
GCC doesn't have __attribute__((require_constant_initialization)). Use it only for clang. Bug: chromium:1325007 Change-Id: Ide5d428ed107d3244072774c0031c042ed0cee31 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3735125Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81447}
-
- 28 Jun, 2022 1 commit
-
-
Anton Bikineev authored
Before this CL, the caged heap was lazily initialized upon the first call of HeapBase ctor. CagedHeap keeps a pointer to PageAllocator which was provided from cppgc::Platform through the HeapBase ctor. This was not generally safe: the platform is not enforced to be singleton. If it happens to die first, then CagedHeap will have a stale pointer. The CL fixes it simply by moving caged-heap initialization to cppgc::InitializeProcess(), which already requires a constantly living PageAllocator. Bug: chromium:1338030 Change-Id: Ifb70a2db233ef36a99c919db09bed9ff9f3708ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3732107 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81422}
-
- 27 Jun, 2022 1 commit
-
-
Anton Bikineev authored
Since v8config.h already defines the related logic for OS detection, it should be fine to move arch detection also there. The CL also makes Oilpan use one of those macros to avoid discrepancy between the compiler and custom macros (the discrepancy occurs for host tools, e.g. mksnapshot). Bug: chromium:1336222 Change-Id: Ibe7d9116d27c3e816f4778fd4c149d8142d0f7a9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3726208 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81397}
-
- 15 Jun, 2022 1 commit
-
-
Anton Bikineev authored
The CL fixes PMF regressions that happend after increasing the AgeTable size. Bug: chromium:1336529 Change-Id: If1f099b43bfcb3a8c7dd4a1c229fcb08735eb744 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3707098Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81180}
-
- 14 Jun, 2022 1 commit
-
-
Anton Bikineev authored
This fixes an ODR violation: the macro V8_TARGET_ARCH_ARM64 was only visible when building V8, but not outside it. The CL implements a quick fix that relies on compiler-based macros (__aarch64__). The proper fix would be to make these target macros be part of the public config. Bug: chromium:1336222 Change-Id: I46ba6c1a3cd1ac4fcd3aced60ee112e6098eba6c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3705540 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81162}
-
- 13 Jun, 2022 3 commits
-
-
Anton Bikineev authored
The CL aims to improve write-barrier filtering and thereby reduce the current regressions. With 8MB AgeTable the card size becomes 512 bytes. The memory overhead of the 8MB AgeTable is 0.2%. Bug: chromium:1029379 Change-Id: I86f51361b9b9f0a1c22a1deef0b0540d1d9808bc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3700079Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81114}
-
Anton Bikineev authored
We don't need to reset the entire age table, but merely the pages that are known to contain young objects. This must improve memory use with generational GC enabled. The CL is a prerequisite for another CL that'll increase the size of the age-table. Bug: chromium:1029379 Change-Id: Ibb5b607af20380c3936b7396b3d9767f6f17c44b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695268 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81106}
-
Anton Bikineev authored
Currently, young generation assumes that all the on-heap pointers are compressed, which is currently not the case due to the backing-store pointers in Blink. Fixing collections to have Member<> is not easy, because the inlined collections may have the semantics that backing_pointer_ == inlined_buffer_; where the inlined_buffer_ can be off-heap (e.g. on stack). The CL introduces another type of barrier specifically for uncompressed pointers. The followup is to use that barrier from Blink. Bug: chromium:1029379 Change-Id: If0f519220658268dbdf915235c2e5afd7887dc0c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695358Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81105}
-
- 10 Jun, 2022 1 commit
-
-
Anton Bikineev authored
Compaction currently considers only backing store pointers as slots and those are uncompressed. The CL fixes the tests to use raw pointers instead of Members. Bug: chromium:1325007 Change-Id: I2ddfffeeab396552bb7cf31b2bd8502ebc2921fb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695590 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81056}
-
- 09 Jun, 2022 5 commits
-
-
Anton Bikineev authored
Add __attribute__((const)) so that the compiler may assume that the variable doesn't change across calls (basically treat the variable as const). Bug: chromium:1325007 Change-Id: I1ecd9a6b7b142cbb9da20a44f568465e1ca45fe7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3688400 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81043}
-
Anton Bikineev authored
This is done by making sure that LSB of the cage-base is 1. This way we know that on compression normal pointers after the shift will have the MSB set to 1. Bug: chromium:1325007 Change-Id: I8699aaa464f1a8c18d2092f5eb474266fb409fcb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3688399 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81039}
-
Anton Bikineev authored
This wraps CagedHeapLocalData in #if defined(CPPGC_CAGED_HEAP) Bug: v8:12231 Change-Id: I462ddbbde2308e8d786fb99d6a557c1dcaea8a4e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695586 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81038}
-
Anton Bikineev authored
Now that the cage is shared, we can remove the thread-local base and instead use a simple global. Bug: chromium:1325007 Change-Id: I05019de83868f823c66003740e277578f2a1d439 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3688051 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81037}
-
Anton Bikineev authored
The CL does the following: 1) Globalizes CagedHeap for all HeapBases; 2) Adds the global variable representing the cage base; 3) Changes all write-barriers to use this global variable for value/slot checks; 4) Removes no longer needed functionality introduced in previous CLs. Bug: v8:12231 Change-Id: I281a7b0bf67e349c988486fc2d43ec6d703fd292 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3688050 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81027}
-
- 08 Jun, 2022 2 commits
-
-
Anton Bikineev authored
This wraps CagedHeap in #if defined(CPPGC_CAGED_HEAP) Bug: v8:12231 Change-Id: I8407abdd88c6a96b6c79c08e7039b5eb6f8175f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695384Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#81010}
-
Anton Bikineev authored
The CL is a prerequisite for the shared cage. Instead of storing state variables (is_incremental_marking_in_progress, is_young_generation_enabled) in the cage metadata, the CL moves them to HeapHandle. The HeapHandle pointer is now retrieved from page-headers. To make sure that the write-barrier code is better optimized, the HeapHandle definition is moved to internal/ headers. The part of BasePage that contains HeapBase (i.e. HeapHandle) pointer is also extracted and moved to the headers. Bug: v8:12231 Change-Id: I44bf65d99a621d9548e4250386cf87476ca186ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3689730 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#81005}
-
- 05 Jun, 2022 1 commit
-
-
Anton Bikineev authored
The CL splits the Oilpan giga-cage in two 2GB reservations: one for normal pages and the other for large ones. The split enables fast page-header lookup (assuming most objects reside on normal pages), which is needed for: 1) the young generation project, where the remembered set will move to pages; 2) the shared-cage project, to find HeapBase* from page-headers. Bug: v8:12231, chromium:1029379 Change-Id: I4ae9e8a75a307ed0dff9a2ec4f1247b80e17ebd9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3688519 Auto-Submit: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80950}
-
- 16 May, 2022 1 commit
-
-
Anton Bikineev authored
1) In copy/move ctors and operator=() we can just copy raw compressed value; 2) For null check we don't need to decompress the value; 3) Same for operator==(). 4) Hashing can also be optimized in a followup. Bug: chromium:1325007 Change-Id: Ic1bf2c5049802c078b3e0121dcbe62d9ecea83b3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3647359Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80571}
-
- 13 May, 2022 2 commits
-
-
Anton Bikineev authored
With this CL, the decompression simply becomes: movsxd rax, edi add rax, rax and rax, qword ptr fs:[base@TPOFF] Bug: chromium:1325007 Change-Id: I931e4e667a9b9697671bccf14575420f8cb705e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3629871Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80521}
-
Anton Bikineev authored
With caged heap enabled, we can halve Member<> by storing only the least significant half. The base of the heap is stored in a thread local variable. The feature has therefore an implication that only single heap is allowed per thread. The feature is gated by the new GN arg: cppgc_enable_pointer_compression. Bug: chromium:1325007 Change-Id: Ic7f1ecb7b9ded57caad63d95bbc8e8ad6ad65031 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739979Reviewed-by:
Almothana Athamneh <almuthanna@chromium.org> Commit-Queue: Almothana Athamneh <almuthanna@chromium.org> Commit-Queue: Tamer Tas <tmrts@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Tamer Tas <tmrts@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80518}
-
- 09 May, 2022 1 commit
-
-
Anton Bikineev authored
Allocation granularity (8 bytes on 64bit platforms) is already subsumed by whatever range size we choose. Bug: chromium:1029379 Change-Id: Iab95e6f36955c9ffbbe9ea0c98cb9d1f8dd0337b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3629869Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80415}
-
- 04 May, 2022 1 commit
-
-
Michael Lippautz authored
Bug: chromium:1322318 Change-Id: Id3899a493eb1519e2f7498dcad1e607cc2b6a5db Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3627509Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80353}
-
- 03 May, 2022 1 commit
-
-
Michael Lippautz authored
Before this CL, the heap object name of unnamed objects(those not inheriting from NameProvider) would be solely determined by whether the build-time configuration cppgc_enable_object_names is enabled. This patch adds a way to override that value at runtime. This is useful for preserving default behavior with custom builds but at the same time allow them to still enable the feature. Bug: chromium:1321620 Change-Id: I3aa06db15e58d9ba9773be6797572f17f007e9ee Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3620279Reviewed-by:
Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80338}
-
- 02 May, 2022 1 commit
-
-
Anton Bikineev authored
The CL prepares the sources and the tests for enabling cppgc_enable_young_generation by default. The static initializer in YoungGenerationEnabler (due to v8::base::Mutex) changed to be lazy. The tests are now checking the runtime flag. Bug: chromium:1029379 Change-Id: I1497a3dd2b8d62c1acd48496821f07324b7944d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3616726Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80304}
-
- 29 Apr, 2022 1 commit
-
-
Anton Bikineev authored
The CL introduces a new option --cppgc-young-generation. This option can't be enabled statically, because V8 options are parsed after heap initialization. The CL changes minor GC so that it can be enabled dynamically. The way it works is as follows: - the user calls YoungGenerationEnabler::Enable(); - a heap checks in the next atomic pause whether the flag was enabled; - if so, the heap enables young generation for itself. To avoid barrier regressions without young-generation enabled, the CL changes the meaning of the global flag is-any-incremental-or-concurrent-marking to is-barrier-enabled. The runtime option would enable us to test young generation on try- and performance-bots. Bug: chromium:1029379 Change-Id: I664cccdcd208225ffcbf9901f1284b56d088c5c3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3607993 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80274}
-
- 27 Apr, 2022 1 commit
-
-
Anton Bikineev authored
If the following conditions hold: 1) value is kSentinel, 2) slot is on stack, 3) stack is allocated below 4GB, then the generational barrier would be erroneously triggered for the stack object object. This CL fixes it. At the same time, it aims to simplify the code and potentially optimizes it (by having 'and' instead of 'sub'). Bug: chromium:1029379 Change-Id: Iafd91d50b0a1c3d97647f7bf3643dfcc7e9fb48f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3608629Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80202}
-
- 26 Apr, 2022 1 commit
-
-
Anton Bikineev authored
When setting a range for a newly allocated lab, consider adjacent cards. If either is young, don't mark it as kMixed. Bug: chromium:1029379 Change-Id: If7d1d920dd5769679de68800eae61f3a8dc1eb17 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3584116Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#80175}
-
- 13 Apr, 2022 1 commit
-
-
Anton Bikineev authored
This reduces card granularity from 4096 to 512 bytes with the goal to improve write barrier filtering. Bug: chromium:1029379 Change-Id: I22e2a9c61ef4c36c3db65404370213d0a8048e08 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3582393Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#79960}
-
- 06 Apr, 2022 2 commits
-
-
Leszek Swirski authored
Change the unittest runner to no longer uncondtionally set up a default platform in the "environment", but to instead make platform set-up part of the "mixin" framework for test fixtures. Requires modifying some tests that expect the platform to be available, and all flag implications resolved, before the mixin constructors run. We still keep the environment for setting up the process for cppgc. This process setup can only be done once per process, so it can no longer use the platform -- that's ok though, the page allocator used by cppgc's process initialisation doesn't have to be the same as the platform's so we can just pass in a separate new one. Change-Id: Ic8ccf39722e8212962c5bba87350c4b304388a7c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571886Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#79820}
-
Clemens Backes authored
Remove the pre-C++17 implementation of void_t, just use std::void_t now. R=omerkatz@chromium.org Bug: v8:12425 Change-Id: Iabf72f1540ddb4db666e5a74f169f73546241c1f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3571888Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#79812}
-
- 18 Mar, 2022 1 commit
-
-
Michael Lippautz authored
This reverts commit cf25b3bc. Reason for revert: https://crbug.com/1307471. TraceTrait must only be used during marking. Original change's description: > cppgc: Rework prefinalizers > > Move the check for whether an object is live or dead out of the > prefinalizer trampoline. Moving it into the backend allows for > inlining the check which avoids a call to the trampoline for live > objects. > > On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often > ~2k finalizers registered. In order to avoid memory overhead in the > range of a few KB, we store the fact whether the object points to the > base object payload in the LSB of the pointer. For caged builds this > is replaced with just storing the index into the cage for both object > and base object payload. > > Locally saves around ~10% of atomic sweeping processing time which is > in the order of .05ms. > > Bug: v8:12698 > Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764 > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#79442} Bug: v8:12698, chromium:1307471 Change-Id: I5c4e70d46cb99af66c77f0c013625b6af6c6eb8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3535781 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79527}
-
- 10 Mar, 2022 1 commit
-
-
Michael Lippautz authored
Move the check for whether an object is live or dead out of the prefinalizer trampoline. Moving it into the backend allows for inlining the check which avoids a call to the trampoline for live objects. On catapult benchmarks (e.g. cnn:2021, nytimes:2020), there's often ~2k finalizers registered. In order to avoid memory overhead in the range of a few KB, we store the fact whether the object points to the base object payload in the LSB of the pointer. For caged builds this is replaced with just storing the index into the cage for both object and base object payload. Locally saves around ~10% of atomic sweeping processing time which is in the order of .05ms. Bug: v8:12698 Change-Id: I198205a6b1d57fc2df821ee4e73e53dc6f825ff5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497764Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79442}
-
- 09 Mar, 2022 1 commit
-
-
Michael Lippautz authored
The only user of OverrideEmbedderStackStateScope is Blink where it is used to override stack state of top-level tasks. Adjust the behavior here to allow using this scope broadly while still supporting explicit garbage collection calls. Bug: chromium:1300492 Change-Id: I78c418c5f08991bf6857147cd4a537246bfcc556 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497744Reviewed-by:
Omer Katz <omerkatz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79420}
-
- 02 Mar, 2022 1 commit
-
-
Michael Lippautz authored
- Add a comment on the macro that registers a prefinalizer. - Refactor the API to avoid exposing internal types needlessly. Change-Id: Ia88e786304616848556263410a8f5398c5374533 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497766Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79334}
-
- 01 Mar, 2022 1 commit
-
-
Michael Lippautz authored
Before this CL Oilpan would schedule concurrent marking and sweeping even in the presence of --single-threaded-gc. This e.g. flakily breaks Blink tests that do not set up a thread-pool in certain configurations where they pass --single-threaded (implying --single-threaded-gc). Bug: chromium:1300492 Change-Id: I64f0c6a20f9c29d689a62e63cc5a8d024962ff2c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497760Reviewed-by:
Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79321}
-
- 17 Feb, 2022 1 commit
-
-
Omer Katz authored
Outside of unittests, if someone tried to delete a GCed object manually they would get a silent crash without a stacktrace or any error messages. This CL replaces the silent crash with an informative message. Change-Id: Ied8895dab43ce7e3a9bf778b13e77d377d269fce Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3468346 Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Omer Katz <omerkatz@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#79141}
-
- 14 Feb, 2022 1 commit
-
-
Anton Bikineev authored
The generational barrier for source objects records the entire source object to be processed later during remembered set visitation. It's planned to be used for Blink backing stores when an inlined object (or a range thereof) is added (HeapAllocator::NotifyNewObject(s)). An alternative approach would be to eagerly process the inlined objects using a custom callback. However, this requires changing Visitors to bring slots into the context. This approach should better work for scenarios where small ranges or single elements are added, to avoid processing potentially large backing stores. The followup CL implements this idea. Bug: chromium:1029379 Change-Id: Iacb59e4b10a66354526ed293d7f43f14d8761a8f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3460402Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#79073}
-
- 04 Feb, 2022 1 commit
-
-
Anton Bikineev authored
This is needed to support minor gc tests on the Blink side. Bug: chromium:1029379 Change-Id: Ic7ce1ae8e626b87738d76663ceecf7198e425d18 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3437050Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Auto-Submit: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#78943}
-