| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Reland "[tracing] Remove base/trace_event/common dependency" This reland additionally removes base from generate-header-include-checks.py, as the root directory got removed. See https://crrev.com/c/5529240/1..3. Original change's description: > Revert "[tracing] Remove base/trace_event/common dependency" > > This reverts commit 993b79e7f5121bc1ff81cbc31ccdd42729b4f054. > > Reason for revert: > https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20debug%20-%20header%20includes%20-%20builder/15361/overview > > And this, but not consistent it seems. Maybe an incremental > build problem: > https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20builder/73951/overview > > Original change's description: > > [tracing] Remove base/trace_event/common dependency > > > > Currently, V8 depends on base/trace_event/common which includes a single > > file being shared. It contains two tracing macro implementations: one > > which is based on perfetto, and a second legacy one. > > > > V8 is the only client of the legacy version, which got removed in > > https://crrev.com/c/5505657 and causes a failure of our roll (e.g. > > https://crrev.com/c/5512234). > > > > This change moves the legacy code into V8, removes the obsolete > > dependency, and refactors the build configurations. > > > > Bug: 338608342 > > Change-Id: I9254592b5c581d64807fe25c92ac931356569453 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5522493 > > Commit-Queue: Alexander Schulze <alexschulze@chromium.org> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#93823} > > Bug: 338608342 > Change-Id: Iefbd2c7e9a8c0af0f437a60faa345db72879d50d > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5529239 > Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> > Commit-Queue: Alexander Schulze <alexschulze@chromium.org> > Owners-Override: Michael Achenbach <machenbach@chromium.org> > Auto-Submit: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/main@{#93825} Bug: 338608342 Change-Id: I90b8def2f3bf0142b3bc545b95cb3ebb689ec46c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5529240 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Alexander Schulze <alexschulze@chromium.org> Cr-Commit-Position: refs/heads/main@{#93832} | 2 年前 | |
[heap] Fix cppgc architecture macros Most code was using V8_TARGET_* when really this macro is used for determining the JIT target. All of Oilpan runs on the host though, so we should use the V8_HOST_* macros. A side effect of this is fixing a cross-compilation issue. Previously, when setting target_cpu=x64 on arm64, we would get write barriers in cppgc's public API wrong because the macro override is not propagated to the API and the information about guard pages got out of sync. Using the host macro fixes this because it is never overriden using GN (but only via compilers directly). Bug: chromium:1520621 Change-Id: Iba034f53b90b6f76f24d57f584e957cdde9d2177 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5257317 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#92134} | 2 年前 | |
[cleanup] Use type trait typedefs (foo_t<T> over foo<T>::type) Run clang-tidy modernize-type-traits. Change-Id: Ie196acc5bfe1ee4a20a6e07aa0bec8fceb5844d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6087924 Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#97729} | 1 年前 | |
2026.03.30 arkweb_144代码蓝黄同步 Signed-off-by: jiujiaoxiaogula <sujiahao10@huawei.com> Change-Id: I00194d339064f999dedfc211cd5af5501cbed0fb | 3 个月前 | |
Reland "cppgc: Mitigate Oilpan VA exhaustions" Fix the issue on Fuchsia by always providing an allocation hint. Bug: 444613347 Change-Id: I0a2fd7ec7fe31fa27ed73244bdc30ef7d0f0488e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7062034 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#103213} | 8 个月前 | |
Reland "cppgc: Port backing store compaction." This is a reland of 90ea9b35cb412cd80c9d42edb37eecf0aadc097b Original change's description: > cppgc: Port backing store compaction. > > This CL ports the existing backing store compaction algorithm from > blink. It does not attempt to improve on the existing algorithm. > > Currently only unified heap uses the compaction implementation. It is > never triggered through standalone GCs. > > The compaction implementation resides within an internal "subtle" namespace. > > Bug: v8:10990 > Change-Id: I4aa781db1b711e7aafc34234c4fb142de84394d7 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2485228 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70714} Bug: v8:10990 Change-Id: I527c2042a26648d058bfe4d355527cce9a3eeadc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2492331 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70736} | 5 年前 | |
cppgc: Random style fixes and comment updates Bug: chromium:1056170 Change-Id: I00511c69e9681a80993bcb8ddb370030fc3d208c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649030 Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72343} | 5 年前 | |
Reland "[handles] Migration to direct handles, part 12" This is a reland of commit 5fa54d85a10049a55ba2fa02bc05145ddee7d19a Original change's description: > [handles] Migration to direct handles, part 12 > > This CL migrates a large number of handles to direct handles. The > changes are only relevant for builds with v8_enable_direct_handle=true. > > Affected source directories: api, asmjs, ast, builtins, codegen, > compiler, d8, debug, deoptimizer, diagnostics, execution, extensions, > heap, ic, init, interpreter, json, maglev, objects, parsing, profiler, > regexp, runtime, snapshot, strings, wasm, and tests. > > Bug: 42203211 > Change-Id: I2334b3295e5780e8f52d0b13d1545dce29fcf81e > Cq-Include-Trybots: luci.v8.try:v8_linux64_css_dbg > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6181904 > Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#98240} Bug: 42203211 Change-Id: Ie21acd681c12e7212185d61a19bd858365650204 Cq-Include-Trybots: luci.v8.try:v8_linux64_css_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6187462 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98249} | 1 年前 | |
cppgc: Move configs to heap-config.h Change-Id: Ibaea8f237d3bbee983f763a178eda0f7ca97d419 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3911515 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#83397} | 3 年前 | |
[heap,cppgc] Refactor marking schedule - Align the way we create a dependency on the schedule. - Allow for incrementally adding marked bytes. - Removes getters for getting overall marked bytes. - Fix method to increase priority only after concurrent marking has been started. - Use RecentlyMarkedBytes() on the mutator marker, very similar to how it is used on the concurrent marker. Drive-by: Allocate allocation observer inline as the marker object itself is already dynamically allocated. This is a partial reland of https://crrev.com/c/6239636 Bug: 391118563 Change-Id: Ie0eaebc235c11235bfab1300124cf8b1ddaf1227 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6237082 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98572} | 1 年前 | |
[heap,cppgc] Refactor marking schedule - Align the way we create a dependency on the schedule. - Allow for incrementally adding marked bytes. - Removes getters for getting overall marked bytes. - Fix method to increase priority only after concurrent marking has been started. - Use RecentlyMarkedBytes() on the mutator marker, very similar to how it is used on the concurrent marker. Drive-by: Allocate allocation observer inline as the marker object itself is already dynamically allocated. This is a partial reland of https://crrev.com/c/6239636 Bug: 391118563 Change-Id: Ie0eaebc235c11235bfab1300124cf8b1ddaf1227 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6237082 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98572} | 1 年前 | |
[cppgc] Harden marked bytes Marked bytes on a page are supposed to represent the size of the marked objects. Improve the checks and fix tests. Bug: 333981063 Change-Id: I9b0a68655f523808e7a3b008045f228fd0f07da9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5675274 Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#94842} | 1 年前 | |
cppgc: Add check to FreeList::Append Appending a free list to itself should not be allowed. This CL adds a DCHECK and a test. Change-Id: I397ce282d4c3a256aa199d1162ae605549d29c9a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5033020 Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#91090} | 2 年前 | |
[heap] Clang tidy fixes Change-Id: I10a5750a7a1311d59122ca8487f3594be613792c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4660661 Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#88595} | 2 年前 | |
Reland "[Heap] Unify allocation retry loops" This is a reland of commit 8ad091e5727571d635aca4ce37cf134ca235140c Revert: https://chromium-review.googlesource.com/c/v8/v8/+/7021158 Fix: https://chromium-review.googlesource.com/c/chromium/src/+/7026578 Original change's description: > [Heap] Unify allocation retry loops > > This CL reuses HeapAllocator retry loop in several places, including > oilpan. This ensure they are all aligned under 1 implementation. > Follow-up: this should also be exposed on v8-isolate so that it can be used here: https://chromium-review.googlesource.com/c/chromium/src/+/6164814 > > Bug: 448848875 > Change-Id: I646f05b052fa70cae151c1c5ba019f3e9aa5aa37 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7011414 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/main@{#102997} Bug: 448848875, 450361757 Change-Id: If8e317d590b5f465828836232bd69b49709a390e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7026473 Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#103089} | 8 个月前 | |
[base] Merge SpinningMutex back into Mutex They are now the same; beyond that we can't do ave THREAD_SAFETY_ANALYSIS on a bunch of previous SpinningMutex cases, so we'll need to propagate this into Mutex. Bug: 384940357 Change-Id: Ifbd4ffc4090738455036f32d9a5cf813b9f15781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6244422 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#98597} | 1 年前 | |
[base] Merge SpinningMutex back into Mutex They are now the same; beyond that we can't do ave THREAD_SAFETY_ANALYSIS on a bunch of previous SpinningMutex cases, so we'll need to propagate this into Mutex. Bug: 384940357 Change-Id: Ifbd4ffc4090738455036f32d9a5cf813b9f15781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6244422 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#98597} | 1 年前 | |
Include InternalNodes in heap snapshots when exposing internals Currently, heap snapshots represent many Blink objects as "InternalNode" with size zero, and omit those objects entirely unless they point to something with a more meaningful name. This improves the readability of heap snapshots, but can hide a substantial amount of memory usage. This CL changes the heap snapshot generator to include those InternalNodes and their sizes if the user has enabled and checked the box titled "Expose internals (includes additional implementation-specific details)", because such users have explicitly opted in to see a more detailed snapshot. The InternalNodes shown are not immediately actionable, but there is a plausible pathway to success: InternalNodes have a tooltip with a "learn more" link which explains how to see class names in Chrome for Testing. This change also includes a drive-by improvement to shrink EmbedderNode by one pointer. Bug: 340200025 Change-Id: Ic7b2fba8c3f45eedbc9a2fbeb33484c2c624cdaa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5542948 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#94083} | 2 年前 | |
Reland "[Heap] Unify allocation retry loops" This is a reland of commit 8ad091e5727571d635aca4ce37cf134ca235140c Revert: https://chromium-review.googlesource.com/c/v8/v8/+/7021158 Fix: https://chromium-review.googlesource.com/c/chromium/src/+/7026578 Original change's description: > [Heap] Unify allocation retry loops > > This CL reuses HeapAllocator retry loop in several places, including > oilpan. This ensure they are all aligned under 1 implementation. > Follow-up: this should also be exposed on v8-isolate so that it can be used here: https://chromium-review.googlesource.com/c/chromium/src/+/6164814 > > Bug: 448848875 > Change-Id: I646f05b052fa70cae151c1c5ba019f3e9aa5aa37 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7011414 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/main@{#102997} Bug: 448848875, 450361757 Change-Id: If8e317d590b5f465828836232bd69b49709a390e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7026473 Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#103089} | 8 个月前 | |
Reland "[Heap] Unify allocation retry loops" This is a reland of commit 8ad091e5727571d635aca4ce37cf134ca235140c Revert: https://chromium-review.googlesource.com/c/v8/v8/+/7021158 Fix: https://chromium-review.googlesource.com/c/chromium/src/+/7026578 Original change's description: > [Heap] Unify allocation retry loops > > This CL reuses HeapAllocator retry loop in several places, including > oilpan. This ensure they are all aligned under 1 implementation. > Follow-up: this should also be exposed on v8-isolate so that it can be used here: https://chromium-review.googlesource.com/c/chromium/src/+/6164814 > > Bug: 448848875 > Change-Id: I646f05b052fa70cae151c1c5ba019f3e9aa5aa37 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7011414 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/main@{#102997} Bug: 448848875, 450361757 Change-Id: If8e317d590b5f465828836232bd69b49709a390e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7026473 Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#103089} | 8 个月前 | |
cppgc: Remove guard pages Guard pages have effectively been disabled in https://crrev.com/c/6074477 This change merely removes the underlying GC infrastructure. Bug: 378017037 Change-Id: I425ffa924cf2797e0abf88483054334528583d62 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6074521 Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#97980} | 1 年前 | |
[cppgc] Fix how the heap thread is determined A CppHeap is supposed to be used only by a single thread, the heap thread. So far, the heap thread was that thread the CppHeap was created on, or, if the CppHeap was attached to an isolate, the last thread that acquired the isolate with an Isolate::Locker. This definition of the heap thread caused problems when the heap thread changed while the CppHeap was attached to the isolate, but then got detached from the isolate. Since the CppHeap was not attached to an isolate anymore, the heap thread was again the thread the CppHeap was created on, which was incorrect. With this CL the thread the isolate gets detached on is considered the new heap thread, and the CppHeap is only allowed to be used on that thread until it gets terminated, or attached to a new isolate. R=omerkatz@chromium.org Bug: 42203693 Change-Id: Ibdc8cf50377eaa4be8bca1621d6fe12f25883005 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6187533 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#98250} | 1 年前 | |
[cppgc] Fix how the heap thread is determined A CppHeap is supposed to be used only by a single thread, the heap thread. So far, the heap thread was that thread the CppHeap was created on, or, if the CppHeap was attached to an isolate, the last thread that acquired the isolate with an Isolate::Locker. This definition of the heap thread caused problems when the heap thread changed while the CppHeap was attached to the isolate, but then got detached from the isolate. Since the CppHeap was not attached to an isolate anymore, the heap thread was again the thread the CppHeap was created on, which was incorrect. With this CL the thread the isolate gets detached on is considered the new heap thread, and the CppHeap is only allowed to be used on that thread until it gets terminated, or attached to a new isolate. R=omerkatz@chromium.org Bug: 42203693 Change-Id: Ibdc8cf50377eaa4be8bca1621d6fe12f25883005 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6187533 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#98250} | 1 年前 | |
[heap] Remove incremental_marking_bailout_when_ahead_of_schedule The flag results in quick 0-bytes marking steps as long as we are ahead of schedule. The flag has been default enabled for many months now and can be removed. Bug: 391118563 Change-Id: I32d091b89badd157a34be0f7856fbed9853b8b2f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6250137 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98744} | 1 年前 | |
[heap] Check that we do not allocate in fast c calls Fast c calls are not allowed to allocate or start a GC. Add DCHECKs and CHECKs to ensure that this is indeed the case through all of V8. Wasm-c-api was using fast c calls with allocation as well. We could either disable the checks for it or simply do not set fast_c_call_caller_fp for those calls. I chose the latter approach because then we can ensure the (D)CHECKs hold all the time. Bug: chromium:1523607 Change-Id: Iebc0ee3eae791ed2ae2435d2ca6f1d34937b3476 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5253159 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#92153} | 2 年前 | |
[heap] Move IncrementalMarkingSchedule to heap/base This is prework for reusing IncrementalMarkingSchedule from V8's incremental marker. Drive-by: - Rely on v8::base::TimeDelta instead of double where possible - Avoid '-1' constants and instead rely on 0 initialization and base::Optional. Bug: v8:14140 Change-Id: I26aa280981a4a92eb556c63faf83dcd6fdd4edba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4665310 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#88689} | 2 年前 | |
cppgc: Allow to disable incremental marking/sweeping Add fields to HeapOptions to denote on heap creation that the heap does not support incremental/concurrent marking/sweeping. This only applies to standalone heaps. When triggering a GC (either explicitly or by the heap growing heuristics), the given config is limited to not trigger unsupported marking/sweeping types. Bug: chromium:1156170 Change-Id: Id7b5cf82962e7c40920f942df9415d798e2b6686 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2581961 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#71698} | 5 年前 | |
cppgc: Avoid transitively including cppgc/allocation.h The include is mostly not necessary and gates using CppHeap. The CL also updates AlignVal to use std::align_val_t. Bug: 42203693 Change-Id: I010b0ec147441d749c75b7409e7000e09ccef178 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6309525 Reviewed-by: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#99012} | 1 年前 | |
Reland "[cppgc] Use blink_gc_plugin in v8" This is a reland of commit 017b2a51329d9aa43c978c4e6a5e127e5dcc2222 Original change's description: > [cppgc] Use blink_gc_plugin in v8 > > This CL enables the plugin for v8 builds and fixes various violations > found in the v8 codebase. > > Some ignore annotations remain for changes required in the plugin (e.g. > treat TraceMultiple and TraceEphemeron as trace methods). > > Bug: 402564649 > Change-Id: I3f995cf2bf31672b7c5702338286cfb850af2dcf > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6366816 > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#99316} Bug: 402564649 Change-Id: Ibb4c9efdd6f26a9d7de234c4f341b754c96fc345 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6369299 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#99323} | 1 年前 | |
[ArkWeb][安全][自动提交] 修复 Chromium issue 515275150: [cppgc] Fix memory ordering race in ObjectStartBitmap Signed-off-by: ringking <renkang2@huawei.com> | 12 天前 | |
[ArkWeb][安全][自动提交] 修复 Chromium issue 515275150: [cppgc] Fix memory ordering race in ObjectStartBitmap Signed-off-by: ringking <renkang2@huawei.com> | 12 天前 | |
[base] Merge SpinningMutex back into Mutex They are now the same; beyond that we can't do ave THREAD_SAFETY_ANALYSIS on a bunch of previous SpinningMutex cases, so we'll need to propagate this into Mutex. Bug: 384940357 Change-Id: Ifbd4ffc4090738455036f32d9a5cf813b9f15781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6244422 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#98597} | 1 年前 | |
[base] Merge SpinningMutex back into Mutex They are now the same; beyond that we can't do ave THREAD_SAFETY_ANALYSIS on a bunch of previous SpinningMutex cases, so we'll need to propagate this into Mutex. Bug: 384940357 Change-Id: Ifbd4ffc4090738455036f32d9a5cf813b9f15781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6244422 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#98597} | 1 年前 | |
cppgc: Allow querying whether sweeping is active on owning thread This allows the embedder to determine whether some function has been called from a destructor. See discussion in https://crrev.com/c/3302810 Bug: chromium:1273928 Change-Id: Icb5d98eff777574488a7d6de5e693c502c2fb53e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3303793 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78113} | 4 年前 | |
Display size and count of blink dom objects in memory-infra. The blink contains two type of object: the dom objects have explicitly specified names via using NameProvider, and other cpp internal objects have hide names 'InternalNode'. Now we must enable CPPGC_SUPPORTS_OBJECT_NAMES macro to show the name and size of all blink objects in memory-infra. I think it is better that display the count and size of these dom objects inherited from NameProvider without enabling CPPGC_SUPPORTS_OBJECT_NAMES macro in release version. It will provide great convenience to help us debug the memory issues of the blink object. Bug: 445232188 Change-Id: I436cd08e0ec337f72ac95529f0a73d734d2c0bd3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6950858 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#103057} | 8 个月前 | |
[heap] undo the cppgc rename of LargePage crrev.com/c/5335159 renamed the cppgc LargePage by accident, undo. Bug: v8:13355 chromium:40849120 Change-Id: Ifd8a1b944bc1630cb0d9e5bda20dd7cd92dc5566 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5331695 Commit-Queue: Stephen Röttger <sroettger@google.com> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#92612} | 2 年前 | |
[heap] undo the cppgc rename of LargePage crrev.com/c/5335159 renamed the cppgc LargePage by accident, undo. Bug: v8:13355 chromium:40849120 Change-Id: Ifd8a1b944bc1630cb0d9e5bda20dd7cd92dc5566 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5331695 Commit-Queue: Stephen Röttger <sroettger@google.com> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#92612} | 2 年前 | |
Reland "[Heap] Unify allocation retry loops" This is a reland of commit 8ad091e5727571d635aca4ce37cf134ca235140c Revert: https://chromium-review.googlesource.com/c/v8/v8/+/7021158 Fix: https://chromium-review.googlesource.com/c/chromium/src/+/7026578 Original change's description: > [Heap] Unify allocation retry loops > > This CL reuses HeapAllocator retry loop in several places, including > oilpan. This ensure they are all aligned under 1 implementation. > Follow-up: this should also be exposed on v8-isolate so that it can be used here: https://chromium-review.googlesource.com/c/chromium/src/+/6164814 > > Bug: 448848875 > Change-Id: I646f05b052fa70cae151c1c5ba019f3e9aa5aa37 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7011414 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/main@{#102997} Bug: 448848875, 450361757 Change-Id: If8e317d590b5f465828836232bd69b49709a390e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7026473 Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#103089} | 8 个月前 | |
Reland "[Heap] Unify allocation retry loops" This is a reland of commit 8ad091e5727571d635aca4ce37cf134ca235140c Revert: https://chromium-review.googlesource.com/c/v8/v8/+/7021158 Fix: https://chromium-review.googlesource.com/c/chromium/src/+/7026578 Original change's description: > [Heap] Unify allocation retry loops > > This CL reuses HeapAllocator retry loop in several places, including > oilpan. This ensure they are all aligned under 1 implementation. > Follow-up: this should also be exposed on v8-isolate so that it can be used here: https://chromium-review.googlesource.com/c/chromium/src/+/6164814 > > Bug: 448848875 > Change-Id: I646f05b052fa70cae151c1c5ba019f3e9aa5aa37 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7011414 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/main@{#102997} Bug: 448848875, 450361757 Change-Id: If8e317d590b5f465828836232bd69b49709a390e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7026473 Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#103089} | 8 个月前 | |
cppgc: Rename HoH methods 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} | 5 年前 | |
cppgc: Move LivenessBrokerFactory to corresponding file Bug: chromium:1056170 Change-Id: I24442979954f63dc8a2f8fd0494cc5d537b733a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2273131 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#68587} | 5 年前 | |
[debug] Only pass SourceLocation in debug in TurboShaft SourceLocation is almost only used for debug messages in TurboShaft, so pass it only in debug mode. Additionally, std::source_location (that it wraps) is a single pointer, so we can efficiently pass it by value rather than const ref. This reduces release build d8 by ~170kb, of which ~4kb is the by-value passing. Change-Id: Ia6b592f094dad0987b8a886bf16a7d3fe8611eb1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6888815 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#102072} | 10 个月前 | |
[heap] Fix incremental marking scheduling - Bugfix: Let CppHeap computes its own marked bytes limit for its own separate schedule. Using V8's marked bytes limit is just wrong. - Fox unified schedule: Don't recompute a bogus marked bytes limit when passing 0 bytes as limit. Drive-by fixes for logging: - Avoid overflow in v8 marked bytes limit during printing. - Fix type in printing. Bug: 391118563 Change-Id: I39e75e44efa66e065e67f89c30318c9206ffdc00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6669233 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#101068} | 1 年前 | |
[heap] Fix incremental marking scheduling - Bugfix: Let CppHeap computes its own marked bytes limit for its own separate schedule. Using V8's marked bytes limit is just wrong. - Fox unified schedule: Don't recompute a bogus marked bytes limit when passing 0 bytes as limit. Drive-by fixes for logging: - Avoid overflow in v8 marked bytes limit during printing. - Fix type in printing. Bug: 391118563 Change-Id: I39e75e44efa66e065e67f89c30318c9206ffdc00 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6669233 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#101068} | 1 年前 | |
[heap,cppgc] Refactor marking schedule - Align the way we create a dependency on the schedule. - Allow for incrementally adding marked bytes. - Removes getters for getting overall marked bytes. - Fix method to increase priority only after concurrent marking has been started. - Use RecentlyMarkedBytes() on the mutator marker, very similar to how it is used on the concurrent marker. Drive-by: Allocate allocation observer inline as the marker object itself is already dynamically allocated. This is a partial reland of https://crrev.com/c/6239636 Bug: 391118563 Change-Id: Ie0eaebc235c11235bfab1300124cf8b1ddaf1227 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6237082 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98572} | 1 年前 | |
Reland "[cppgc] Use blink_gc_plugin in v8" This is a reland of commit 017b2a51329d9aa43c978c4e6a5e127e5dcc2222 Original change's description: > [cppgc] Use blink_gc_plugin in v8 > > This CL enables the plugin for v8 builds and fixes various violations > found in the v8 codebase. > > Some ignore annotations remain for changes required in the plugin (e.g. > treat TraceMultiple and TraceEphemeron as trace methods). > > Bug: 402564649 > Change-Id: I3f995cf2bf31672b7c5702338286cfb850af2dcf > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6366816 > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#99316} Bug: 402564649 Change-Id: Ibb4c9efdd6f26a9d7de234c4f341b754c96fc345 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6369299 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#99323} | 1 年前 | |
Reland "[cppgc] Use blink_gc_plugin in v8" This is a reland of commit 017b2a51329d9aa43c978c4e6a5e127e5dcc2222 Original change's description: > [cppgc] Use blink_gc_plugin in v8 > > This CL enables the plugin for v8 builds and fixes various violations > found in the v8 codebase. > > Some ignore annotations remain for changes required in the plugin (e.g. > treat TraceMultiple and TraceEphemeron as trace methods). > > Bug: 402564649 > Change-Id: I3f995cf2bf31672b7c5702338286cfb850af2dcf > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6366816 > Reviewed-by: Anton Bikineev <bikineev@chromium.org> > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#99316} Bug: 402564649 Change-Id: Ibb4c9efdd6f26a9d7de234c4f341b754c96fc345 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6369299 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#99323} | 1 年前 | |
[cppgc] Print debug information if marking verifier fails In debug builds or with cppgc_enable_verify_heap = true, the marking verifier may fail if the total size of the objects that were found to be marked in all pages is not equal to the expected total size of marked objects. In the unlikely case that this happens, this CL outputs a list of the objects (marked and unmarked) that were found on the pages for which there was a mismatch between the expected size of marked objects and the actual size. This output may be helpful for debugging purposes, especially when cppgc_enable_object_names = true is also used. Change-Id: I60979cdacca28805805c1c152cfc3ea784994826 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5898695 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#96869} | 1 年前 | |
[debug] Only pass SourceLocation in debug in TurboShaft SourceLocation is almost only used for debug messages in TurboShaft, so pass it only in debug mode. Additionally, std::source_location (that it wraps) is a single pointer, so we can efficiently pass it by value rather than const ref. This reduces release build d8 by ~170kb, of which ~4kb is the by-value passing. Change-Id: Ia6b592f094dad0987b8a886bf16a7d3fe8611eb1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6888815 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#102072} | 10 个月前 | |
[debug] Only pass SourceLocation in debug in TurboShaft SourceLocation is almost only used for debug messages in TurboShaft, so pass it only in debug mode. Additionally, std::source_location (that it wraps) is a single pointer, so we can efficiently pass it by value rather than const ref. This reduces release build d8 by ~170kb, of which ~4kb is the by-value passing. Change-Id: Ia6b592f094dad0987b8a886bf16a7d3fe8611eb1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6888815 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#102072} | 10 个月前 | |
unified-young-gen: Filter custom weak callbacks Oilpan young generation currently remembers all weak callbacks to be processed on each GC. This is needed to support UntracedMembers in the old space. If the old object with UntracedMember (e.g. ActiveScriptWrappableManager) holds a pointer to a young object, the custom weak callback must be reexecuted on each minor GC, because the custom callback is responsible for clearing UntracedMembers. This is not necessary for weak containers. They hold WeakMembers, for which we issue the regular write barrier. The CL distinguishes between callbacks for weak containers and for custom objects. This aims to speeds up weak processing, which currently may take >10ms. Bug: v8:13475 Change-Id: I6964a6835dc84febddbefb5e2952d57f108d1232 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4080470 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#84895} | 3 年前 | |
[base] Merge SpinningMutex back into Mutex They are now the same; beyond that we can't do ave THREAD_SAFETY_ANALYSIS on a bunch of previous SpinningMutex cases, so we'll need to propagate this into Mutex. Bug: 384940357 Change-Id: Ifbd4ffc4090738455036f32d9a5cf813b9f15781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6244422 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#98597} | 1 年前 | |
[debug] Try harder to preserve functions used for debugging In particular the attribute optnone seems to help with the cases where gdb ends up having an incorrect signature for the function. Change-Id: Icd8e94c81dad7cc2c0981f174d22bf22cf6dba08 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6360837 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Olivier Flückiger <olivf@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#99293} | 1 年前 | |
cppgc: Allocate CageBaseGlobal in a separate cacheline The linker puts CageBaseGlobal into the .data (i.e. modifiable) section together with other potentially frequently modifiable global variables. Make sure false sharing doesn't happen for CageBaseGlobal by storing it in a dedicated cacheline. Bug: chromium:1418300 Change-Id: I1ed9bce5ae61eb295a7c20b7a21b19271fa6e5bb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4280186 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#86087} | 3 年前 | |
[cppgc] Move implementations of from .h to .cc Compile times are heavily affected by whether functions are in .h or .cc files. Sometimes for release mode we need stub functions in the .h file, but that means it's painful to modify the debug versions when chasing an issue. This change moves some debug functions from Oilpan to the .cc file while keeping the inlinable trivial cases in the .h file. Change-Id: Ibb290e162a906332dd72161184fb630dfabd4f58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5827530 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Erik Corry <erikcorry@chromium.org> Cr-Commit-Position: refs/heads/main@{#95896} | 1 年前 | |
[cppgc] Move implementations of from .h to .cc Compile times are heavily affected by whether functions are in .h or .cc files. Sometimes for release mode we need stub functions in the .h file, but that means it's painful to modify the debug versions when chasing an issue. This change moves some debug functions from Oilpan to the .cc file while keeping the inlinable trivial cases in the .h file. Change-Id: Ibb290e162a906332dd72161184fb630dfabd4f58 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5827530 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Erik Corry <erikcorry@chromium.org> Cr-Commit-Position: refs/heads/main@{#95896} | 1 年前 | |
cppgc: young-gen: Extract and report metrics for young GC cycles The CL makes sure to extract and copy Oilpan young GC metrics to v8::metrics::GarbageCollectionYoungCycle. In addition, it makes sure that metrics are not reported twice by bailing out from GCTracer::NotifyCppGCCompleted() for young GC cycles (the metrics are reported later in Heap::CollectGarbage() by calling GCTracer::StopCycle()). Bug: chromium:1029379 Change-Id: I07bf51e85a76a7cdbeeb8d87c9072edf2634158b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545168 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#79766} | 4 年前 | |
Remove stray c_str() calls from v8. None of these would seem to require a truncation at an embedded NUL, so we can create strings/string_views directly. Bug: 412730353 Change-Id: I24aab7b376855000afbfe0d8bcc20865dc617890 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6484712 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Auto-Submit: Tom Sepez <tsepez@chromium.org> Cr-Commit-Position: refs/heads/main@{#100129} | 1 年前 | |
Reland "[Heap] Unify allocation retry loops" This is a reland of commit 8ad091e5727571d635aca4ce37cf134ca235140c Revert: https://chromium-review.googlesource.com/c/v8/v8/+/7021158 Fix: https://chromium-review.googlesource.com/c/chromium/src/+/7026578 Original change's description: > [Heap] Unify allocation retry loops > > This CL reuses HeapAllocator retry loop in several places, including > oilpan. This ensure they are all aligned under 1 implementation. > Follow-up: this should also be exposed on v8-isolate so that it can be used here: https://chromium-review.googlesource.com/c/chromium/src/+/6164814 > > Bug: 448848875 > Change-Id: I646f05b052fa70cae151c1c5ba019f3e9aa5aa37 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7011414 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> > Cr-Commit-Position: refs/heads/main@{#102997} Bug: 448848875, 450361757 Change-Id: If8e317d590b5f465828836232bd69b49709a390e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7026473 Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Cr-Commit-Position: refs/heads/main@{#103089} | 8 个月前 | |
cppgc: Avoid transitively including cppgc/allocation.h The include is mostly not necessary and gates using CppHeap. The CL also updates AlignVal to use std::align_val_t. Bug: 42203693 Change-Id: I010b0ec147441d749c75b7409e7000e09ccef178 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6309525 Reviewed-by: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#99012} | 1 年前 | |
Reland "cppgc: Fix data race ObjectSizeTrait" This is a reland of 76f6c276748ace21b357ada700d4a0650f2c2a03 Original change's description: > cppgc: Fix data race ObjectSizeTrait > > Fix benign race in > https://clusterfuzz.com/testcase-detail/5203237072076800 > > Change-Id: I558b230e4905a48342d8e7cf70d39be5a1b7fdb8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306375 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Auto-Submit: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78121} Change-Id: Ifa50f35591b2ae40f11a384f0fb2ff50115b2511 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306379 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78124} | 4 年前 | |
Reland "cppgc: Fix data race ObjectSizeTrait" This is a reland of 76f6c276748ace21b357ada700d4a0650f2c2a03 Original change's description: > cppgc: Fix data race ObjectSizeTrait > > Fix benign race in > https://clusterfuzz.com/testcase-detail/5203237072076800 > > Change-Id: I558b230e4905a48342d8e7cf70d39be5a1b7fdb8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306375 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Auto-Submit: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78121} Change-Id: Ifa50f35591b2ae40f11a384f0fb2ff50115b2511 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3306379 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78124} | 4 年前 | |
[ArkWeb][安全][自动提交] 修复 Chromium issue 515275150: [cppgc] Fix memory ordering race in ObjectStartBitmap Signed-off-by: ringking <renkang2@huawei.com> | 12 天前 | |
[heap] undo the cppgc rename of LargePage crrev.com/c/5335159 renamed the cppgc LargePage by accident, undo. Bug: v8:13355 chromium:40849120 Change-Id: Ifd8a1b944bc1630cb0d9e5bda20dd7cd92dc5566 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5331695 Commit-Queue: Stephen Röttger <sroettger@google.com> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#92612} | 2 年前 | |
2026.03.30 arkweb_144代码蓝黄同步 Signed-off-by: jiujiaoxiaogula <sujiahao10@huawei.com> Change-Id: I00194d339064f999dedfc211cd5af5501cbed0fb | 3 个月前 | |
[base] Merge SpinningMutex back into Mutex They are now the same; beyond that we can't do ave THREAD_SAFETY_ANALYSIS on a bunch of previous SpinningMutex cases, so we'll need to propagate this into Mutex. Bug: 384940357 Change-Id: Ifbd4ffc4090738455036f32d9a5cf813b9f15781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6244422 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#98597} | 1 年前 | |
cppgc: Narrow critical section for process-global lock The process global lock guards CrossThreadPersistent and CrossThreadWeakPersistent during marking and weakness clearing. We already take the lock only at the very end of marking when we process cross-thread persistent references. So far we would then process V8's regular weakness only before starting Oilpan weakness processing. This patch frontloads processing of CrossThreadWeakPersistent to narrow down the critical section to the absolute minimum. We leave the rest of Oilpan's weakness processing after V8's regular processing as Oilpan allows for custom weakness callbacks that call back into Blink. Drive-by: Add a CppGC.ProcessGlobalLock track that shows when the lock is taken. Bug: 393500942 Change-Id: I5167da2abe4ec2f208cd9a1fd6562130cab8f51d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6218847 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98463} | 1 年前 | |
[debug] Only pass SourceLocation in debug in TurboShaft SourceLocation is almost only used for debug messages in TurboShaft, so pass it only in debug mode. Additionally, std::source_location (that it wraps) is a single pointer, so we can efficiently pass it by value rather than const ref. This reduces release build d8 by ~170kb, of which ~4kb is the by-value passing. Change-Id: Ia6b592f094dad0987b8a886bf16a7d3fe8611eb1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6888815 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#102072} | 10 个月前 | |
[debug] Only pass SourceLocation in debug in TurboShaft SourceLocation is almost only used for debug messages in TurboShaft, so pass it only in debug mode. Additionally, std::source_location (that it wraps) is a single pointer, so we can efficiently pass it by value rather than const ref. This reduces release build d8 by ~170kb, of which ~4kb is the by-value passing. Change-Id: Ia6b592f094dad0987b8a886bf16a7d3fe8611eb1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6888815 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#102072} | 10 个月前 | |
cppgc: Introduce subtle::TaggedUncompressedMember<>. The new class allows to use one alignment bit for tagging. Bug: 413291844 Change-Id: I00fb1b4f52c5e8830a3c69463f63192ab199986a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6488987 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#99923} | 1 年前 | |
[cppgc] Make CppHeap accessible to multiple threads with v8::Locker Documentation states that CppHeap can be used with V8::Locker. However, in several cases, the implementation enforced checks that disallowed the switching of threads. In particular: 1. Finalizers and pre-finalizers were expected to run on the same thread where the object was created. 2. Persistents were expected to be allocated and used by the thread that created the heap (this was enforced either explicitly or by some pointer policies). This CL fixes this issue by loosening the checks, if the v8::Locker has been used. Bug: 373263965 Change-Id: I82b5ae5f2adc421ab33d283cf2c640edfa0915b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5934624 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#96646} | 1 年前 | |
[cppgc] Make CppHeap accessible to multiple threads with v8::Locker Documentation states that CppHeap can be used with V8::Locker. However, in several cases, the implementation enforced checks that disallowed the switching of threads. In particular: 1. Finalizers and pre-finalizers were expected to run on the same thread where the object was created. 2. Persistents were expected to be allocated and used by the thread that created the heap (this was enforced either explicitly or by some pointer policies). This CL fixes this issue by loosening the checks, if the v8::Locker has been used. Bug: 373263965 Change-Id: I82b5ae5f2adc421ab33d283cf2c640edfa0915b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5934624 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#96646} | 1 年前 | |
cppgc: Implement process-global state accessors. Process global accessors for total physical size and used size are needed for blink. These are implemented via an allocation observer that atomically updates static counters. The public api only provides getters for the counters. An internal class is in charge of updating the counters as needed. A similar split is also applied to IsAnyIncrementalOrConcurrentMarking(). Drive-by: ProcessHeap is merged into cppgc::internal::WriteBarrier. Bug: chromium:1056170 Change-Id: Iaedebd1ac9d49238ce6bdd52ffa5d1ef4d28203d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2695394 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#72832} | 5 年前 | |
cppgc: Smaller fixes Bug: chromium:1056170 Change-Id: Ifa1f8d4c1b1003e9d33f1c9b42e6647388c56d01 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2878746 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#74438} | 5 年前 | |
cppgc: Narrow critical section for process-global lock The process global lock guards CrossThreadPersistent and CrossThreadWeakPersistent during marking and weakness clearing. We already take the lock only at the very end of marking when we process cross-thread persistent references. So far we would then process V8's regular weakness only before starting Oilpan weakness processing. This patch frontloads processing of CrossThreadWeakPersistent to narrow down the critical section to the absolute minimum. We leave the rest of Oilpan's weakness processing after V8's regular processing as Oilpan allows for custom weakness callbacks that call back into Blink. Drive-by: Add a CppGC.ProcessGlobalLock track that shows when the lock is taken. Bug: 393500942 Change-Id: I5167da2abe4ec2f208cd9a1fd6562130cab8f51d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6218847 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98463} | 1 年前 | |
cppgc: Narrow critical section for process-global lock The process global lock guards CrossThreadPersistent and CrossThreadWeakPersistent during marking and weakness clearing. We already take the lock only at the very end of marking when we process cross-thread persistent references. So far we would then process V8's regular weakness only before starting Oilpan weakness processing. This patch frontloads processing of CrossThreadWeakPersistent to narrow down the critical section to the absolute minimum. We leave the rest of Oilpan's weakness processing after V8's regular processing as Oilpan allows for custom weakness callbacks that call back into Blink. Drive-by: Add a CppGC.ProcessGlobalLock track that shows when the lock is taken. Bug: 393500942 Change-Id: I5167da2abe4ec2f208cd9a1fd6562130cab8f51d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6218847 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98463} | 1 年前 | |
cppgc: Mark custom spaces as compactable To support compaction of backing stores in blink, we need to distinguish custom spaces holding backing stores from other custom spaces. Custom space compactablity is explicitly declared as an enum value and propagated to BaseSpace as a bool flag. Note that even if/when general compaction is implemented/enabled for normal pages we will still need such a marking for supporting non-compactable custom spaces. Bug: v8:10990 Change-Id: I165a0268ded121e91399834a4091e88e57f2565c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2449973 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70345} | 5 年前 | |
cppgc: Mark custom spaces as compactable To support compaction of backing stores in blink, we need to distinguish custom spaces holding backing stores from other custom spaces. Custom space compactablity is explicitly declared as an enum value and propagated to BaseSpace as a bool flag. Note that even if/when general compaction is implemented/enabled for normal pages we will still need such a marking for supporting non-compactable custom spaces. Bug: v8:10990 Change-Id: I165a0268ded121e91399834a4091e88e57f2565c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2449973 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#70345} | 5 年前 | |
Fix OldToNewRememberedSet being undefined when using v8-gn.h Similar to https://crrev.com/c/6732775, we need to include v8config.h before checking if CPPGC_YOUNG_GENERATION is defined. Change-Id: Ib76636ef7e778bfd2bad19b9dbcb550c1e4c1011 Bug: None Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6760417 Auto-Submit: Max Ihlenfeldt <max@igalia.com> Commit-Queue: Max Ihlenfeldt <max@igalia.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#101578} | 11 个月前 | |
Fix OldToNewRememberedSet being undefined when using v8-gn.h Similar to https://crrev.com/c/6732775, we need to include v8config.h before checking if CPPGC_YOUNG_GENERATION is defined. Change-Id: Ib76636ef7e778bfd2bad19b9dbcb550c1e4c1011 Bug: None Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6760417 Auto-Submit: Max Ihlenfeldt <max@igalia.com> Commit-Queue: Max Ihlenfeldt <max@igalia.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#101578} | 11 个月前 | |
[GC] Fix collection_rate metrics What was reported is actually survival rate. Because bucketing is exponential, this yields low signal where most values are far from 0. Fixing the metrics to report the collection rate should yield more useful bucketing around 0. Change-Id: I5d2001d7874a0472473fedf0bca9baa3533a6fac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5696288 Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org> Reviewed-by: Nikolaos Papaspyrou <nikolaos@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#95202} | 1 年前 | |
[heap] Refactor incremental marking - Refactor write barrier to have a common path and apply it to all barriers. This allows for restarting tasks in follow up work. - Add max bytes tracing argument. - Refactor scopes to be only opened when actual work is to be done. This change is expected to be perf neutral or slightly positive (due to less scopes). Bug: 391118563 Change-Id: I374aabde007951af9ad77cea58fdc8f41a6b6fed Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6181903 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98218} | 1 年前 | |
Fix various typos in comments This patch fixes several spelling mistakes in comments across the codebase. R=clemensb@chromium.org Change-Id: I4a2bfaabfc557d5e18d98ec384ec055c44652708 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6998776 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Darius Mercadier <dmercadier@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#102901} | 9 个月前 | |
cppgc: Actually avoid discarding on Windows Fix the define that controls discarding in the free list. Bug: 378017037 Change-Id: I104436d914164fc05c678740a165e21f5bdd836a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6088019 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#97717} | 1 年前 | |
cppgc: Prefer sweeping in idle tasks This patch changes the strategy used for cppgc (Oilpan) sweeping. Until now we preferred finishing sweeping as soon as possible using regular main trhead tasks and also reusing memory as much as possible on allocation. This apporach essentially minimizes RSS. This change moves us in the tradeoff space towards a strategy where we try to get out of the way of the mutator (e.g. main renderer) as much as possible at the expense of possibly using slightly more memory. In particular this change: a. Uses idle tasks to sweep memory and run finalizers as much as possible. We still preserve a fallback in case idle tasks are not enabled or there's no idle time. The fallback is ensured via running a delayed task that checks for progress. b. Avoids synchronously sweeping on allocation when we are further away from the next GC (via checking the allocation limit). Synchronous sweeping is enabled when getting closer to the actual heap limit to split up sweeping work and avoiding a huge pause at the start of marking. Change-Id: Ie516c67c9a2151d150b65f82229dba8aa754b43c Bug: chromium:333981063 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5454401 Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#93612} | 2 年前 | |
[heap] Refactor scopes for overriding embedder stack state This CL refactors the scopes for overriding the embedder stack state, which are used for testing and other purposes to control whether conservative stack scanning is performed, - A distinction is made in internal::EmbedderStackStateScope between implicit and explicit scopes. The latter take precedence over the former. - Explicit scopes are required to force the scanning of the stack, in case a stackless GC is implicitly invoked by pumping the message queue from a point where the stack is non-trivial. Such a case is fixed in Shell::DoHostImportModuleDynamically, in d8. - In Oilpan, cppgc::testing::OverrideEmbedderStackStateScope uses internal::EmbedderStackStateScope as the underlying implementation, unless in stand-alone heaps. Change-Id: Ibab78f89be16d0e856dac09cb13efc2f1a3ae8a9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5306761 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#92517} | 2 年前 | |
[cleanup] Modernize std::*::value and ::type Mechanically replacing std::foo<X>::value with std::foo_v<X>, and the same for ::type -> _t. Change-Id: I543dda07ba4c95534cdcd51f1f438f2626be8273 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6491388 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#99940} | 1 年前 | |
Revert "cppgc: Add regression test and check for object start bitmap" This reverts commit 164a040a2a06b854b19cb11fee4be6f81d1ce55f. 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} | 4 年前 | |
[cppgc] Harden marked bytes Marked bytes on a page are supposed to represent the size of the marked objects. Improve the checks and fix tests. Bug: 333981063 Change-Id: I9b0a68655f523808e7a3b008045f228fd0f07da9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5675274 Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#94842} | 1 年前 | |
Reland "cppgc: Mitigate Oilpan VA exhaustions" Fix the issue on Fuchsia by always providing an allocation hint. Bug: 444613347 Change-Id: I0a2fd7ec7fe31fa27ed73244bdc30ef7d0f0488e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7062034 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#103213} | 8 个月前 | |
Reland "cppgc: Mitigate Oilpan VA exhaustions" Fix the issue on Fuchsia by always providing an allocation hint. Bug: 444613347 Change-Id: I0a2fd7ec7fe31fa27ed73244bdc30ef7d0f0488e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7062034 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#103213} | 8 个月前 | |
cppgc: Forward full pointers when tracing objects conservatively Objects may be scanned conservatively for references outside of CppHeap in which case we need to forward the full pointer. Bug: 393217627, 393170056 Change-Id: I779f87bc60fa8c92fe4a5a551c465661b3b55fde Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6218552 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98443} | 1 年前 | |
cppgc: Fix handling of intermediate values on the stack for 16G cages This fixes the handling of intermediate values when conservatively iterating memory (stack, but also heap). To this end we will scan through memory word-by-word and consider: 1. Full pointers; 2. Compressed pointers in both half words; 3. A half-decompressed 35-bit value as intermediate state that doesn't assume sign extension happened; We also bring back the optimization from https://crrev.com/c/6198226 which relied on the fact that the full pointer will be reached through the intermediate state. This is now actually the case and handling 3. implicitly also handles 1. The CL also adds a bunch of tests that would have caught the original problem. Change-Id: Ibde3af33894b1f044cde49e97492b46c3e4b4e24 Bug: 391018461 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6198347 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#98372} | 1 年前 | |
[base] Merge SpinningMutex back into Mutex They are now the same; beyond that we can't do ave THREAD_SAFETY_ANALYSIS on a bunch of previous SpinningMutex cases, so we'll need to propagate this into Mutex. Bug: 384940357 Change-Id: Ifbd4ffc4090738455036f32d9a5cf813b9f15781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6244422 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#98597} | 1 年前 | |
[base] Merge SpinningMutex back into Mutex They are now the same; beyond that we can't do ave THREAD_SAFETY_ANALYSIS on a bunch of previous SpinningMutex cases, so we'll need to propagate this into Mutex. Bug: 384940357 Change-Id: Ifbd4ffc4090738455036f32d9a5cf813b9f15781 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6244422 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#98597} | 1 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 3 个月前 | ||
| 8 个月前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 12 天前 | ||
| 12 天前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 8 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 4 年前 | ||
| 12 天前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 11 个月前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 4 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 |