| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
cppgc: Prohibit Oilpan usage from within V8 Until setup and general API direction are clear no C++ types should be GCed. Bug: chromium:1056170 Change-Id: I9d51e57065b22f025898114d20887166ef756319 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3116256 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#76480} | 4 年前 | |
[execution, heap] Remove Isolate::InFastCCall() Isolate::InFastCCall() simply returns whether the latest transition from JS to native code was a regular CEntry or a fast API call. This also used to be the only JS to native transition that could be a fast API call. So Isolate::InFastCCall() would correctly report whether there was a fast API call on the stack or not and this method was used in this way. However, now that we allow JS calls from fast api calls, it could return false even though there is an earlier fast API call on the stack. This CL removes this method to clean up this confusion. It also drops --allow_allocation_in_fast_api_call as this is now fully supported and enabled in V8. Bug: 424905890 Change-Id: Ib1626b30e1e8436513648c906ed4476f3cb6f77c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6678594 Reviewed-by: Andreas Haas <ahaas@google.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#103212} | 8 个月前 | |
[execution, heap] Remove Isolate::InFastCCall() Isolate::InFastCCall() simply returns whether the latest transition from JS to native code was a regular CEntry or a fast API call. This also used to be the only JS to native transition that could be a fast API call. So Isolate::InFastCCall() would correctly report whether there was a fast API call on the stack or not and this method was used in this way. However, now that we allow JS calls from fast api calls, it could return false even though there is an earlier fast API call on the stack. This CL removes this method to clean up this confusion. It also drops --allow_allocation_in_fast_api_call as this is now fully supported and enabled in V8. Bug: 424905890 Change-Id: Ib1626b30e1e8436513648c906ed4476f3cb6f77c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6678594 Reviewed-by: Andreas Haas <ahaas@google.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#103212} | 8 个月前 | |
[cleanup] Fix inl header includes We have many inl headers which either do not include their non-inl header, or are including other headers first. Both can lead to compile errors because definitions of inline functions might not be visible in inl headers. This CL adds a script to fix those includes, and runs it over the whole code base. R=leszeks@chromium.org Change-Id: I1b7b04c59e5a5b89308512bfc40729f7ec4afc38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6387805 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#99453} | 1 年前 | |
[api, heap] Remove GC support for embedder fields This CL removes GC support for regular embedder fields. The replacement is using v8::Object::Wrap() and v8::Object::Unwrap(). Technically, this is done by removing the deprecated v8::WrapperDescriptor and its uses. Simplifying visitation is left as a follow up. Skipping try bots as this failed on linux-rel for no good reason. This was already dead code in Blink for quite some time now. No-Try: true Bug: 338411141 Change-Id: I9e6af7e38fa1930a6d672aa542a2139abd941937 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5604263 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#94337} | 2 年前 | |
Fix some compile failures under C++23 As a side effect of making ~unique_ptr<T> constexpr and how Clang implements things, T must be complete at the point where the template is instantiated. A forward declaration, with the type filled in later, isn't sufficient. One side effect is that inner types often need to be defined earlier, if the constructor would depend on them by way of unique_ptr. Bug: 388068055 Change-Id: I333604510252de35bdadce1ef3c2fe52ecb288e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7003444 Auto-Submit: David Benjamin <davidben@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#102981} | 9 个月前 | |
Add heap snapshot support for CppHeapExternal objects At a high level, v8::CppHeapExternalObjects and the associated cpp heap objects are added as nodes in the snapshot graph, and an edge is added from the JS object to cpp object. Implementation details: - The CppHeapExternalObjects are collected while processing the JS side. - Those objects are passed to the Cpp side in BuildEmbedderGraph. To make this possible, an API is added to HeapProfiler to set an internal callback, which additionally takes the set of set of cpp heap external objects as a parameter. - On the Cpp side, after building the embedder graph, add an edge from each v8::CppHeapExternal object to the corresponding cpp heap object. Bug: 380911428 Change-Id: I323874b2368f5abdd68234f71701bba953fbb836 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6432118 Commit-Queue: Scott Haseley <shaseley@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#99974} | 1 年前 | |
Reland "[api] Introduce CppHeapExternal" This is a reland of c6c2d15dd468cfd8166967560f22eab9f2841c07 The unit tests were relying an on-stack handle to keep the test object alive after GC with StackState::kNoHeapPointers, which doesn't work with CSS. Instead, use a a GCed object with a TracedReference to the CppHeapExternal, and keep that GCed object alive with a Persistent as needed. Tests: https://ci.chromium.org/ui/p/v8/builders/try/v8_linux64_css_dbg/b8718488560320906769/overview Original change's description: > [api] Introduce CppHeapExternal > > CppHeapExternal is an on-heap version of External, allowing embedders to > store GarbageCollected objects in JS values that aren't exposed to > JavaScript, and therefore aren't associated with a particular Context. > > Unlike JS wrapper objects, this new type extends HeapObject rather than > JSObject since it is not exposed to JavaScript. To support this, the > existing Cpp heap pointer logic is being updated to support objects with > different layouts. The Cpp object is otherwise handled in the same way > as Object::Wrap and Object::Unwrap, including using CppHeapPointerTag > (we'll use distinct tags in Blink to separate these objects from > ScriptWrappable objects; see crrev.com/c/6350413). > > Bug: 380911428 > Change-Id: I8777f7ce5c5447437557111be064ea195eaba175 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6343961 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Commit-Queue: Scott Haseley <shaseley@chromium.org> > Cr-Commit-Position: refs/heads/main@{#99676} Bug: 380911428 Change-Id: I6a5460b914a2435ea5ce74e11b12af044b71aae1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6434692 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Scott Haseley <shaseley@chromium.org> Cr-Commit-Position: refs/heads/main@{#99702} | 1 年前 | |
Reland "[api] Introduce CppHeapExternal" This is a reland of c6c2d15dd468cfd8166967560f22eab9f2841c07 The unit tests were relying an on-stack handle to keep the test object alive after GC with StackState::kNoHeapPointers, which doesn't work with CSS. Instead, use a a GCed object with a TracedReference to the CppHeapExternal, and keep that GCed object alive with a Persistent as needed. Tests: https://ci.chromium.org/ui/p/v8/builders/try/v8_linux64_css_dbg/b8718488560320906769/overview Original change's description: > [api] Introduce CppHeapExternal > > CppHeapExternal is an on-heap version of External, allowing embedders to > store GarbageCollected objects in JS values that aren't exposed to > JavaScript, and therefore aren't associated with a particular Context. > > Unlike JS wrapper objects, this new type extends HeapObject rather than > JSObject since it is not exposed to JavaScript. To support this, the > existing Cpp heap pointer logic is being updated to support objects with > different layouts. The Cpp object is otherwise handled in the same way > as Object::Wrap and Object::Unwrap, including using CppHeapPointerTag > (we'll use distinct tags in Blink to separate these objects from > ScriptWrappable objects; see crrev.com/c/6350413). > > Bug: 380911428 > Change-Id: I8777f7ce5c5447437557111be064ea195eaba175 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6343961 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Commit-Queue: Scott Haseley <shaseley@chromium.org> > Cr-Commit-Position: refs/heads/main@{#99676} Bug: 380911428 Change-Id: I6a5460b914a2435ea5ce74e11b12af044b71aae1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6434692 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Scott Haseley <shaseley@chromium.org> Cr-Commit-Position: refs/heads/main@{#99702} | 1 年前 | |
[cleanup] Fix inl header includes We have many inl headers which either do not include their non-inl header, or are including other headers first. Both can lead to compile errors because definitions of inline functions might not be visible in inl headers. This CL adds a script to fix those includes, and runs it over the whole code base. R=leszeks@chromium.org Change-Id: I1b7b04c59e5a5b89308512bfc40729f7ec4afc38 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6387805 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#99453} | 1 年前 | |
[heap] Introduce helper for bottlenecking marking worklist operation Introduces marking helpers that can be used for full GCs and young-gen sticky-markbit GCs. The helpers are used to bottleneck querying and pushing which allows adding more filters in future. - ShouldMarkObject(): Queries whether an object should be marked and also returns the target worklist. Currently only the regular worklist is supported but in future this can be used to signal pushing to the on-hold worklist. - GetLivenessMode(): Similar to ShouldMarkObject() but used for querying whether an object should always be considered alive (e.g. because it is in read-only space) or whether the markbit should be used for querying its liveness. - TryMarkAndPush(): Helper for marking and pushing an object. Bug: 340989496, 335479495 Change-Id: I3c9c79feb1aeb843cf05a81060ce0dd85440e73a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5553775 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#94054} | 2 年前 | |
Reland "[heap,cppgc] Unified heap incremental marking schedule" This is a reland of commit a8ce2869acea7648adff34cf1b5fbc4f0659c930 The reland reverts the young gen interrupt to 64K as 256K seems to be regressing. Original change's description: > [heap,cppgc] Unified heap incremental marking schedule > > This CL implements a fully unified incremental marking schedule behind > --js-flags=--incremental_marking_unified_schedule > > The schedule: > - Uses the unified V8 step for marking from all allocation paths (V8, > CppHeap) as well as incremental marking task. > - Avoids posting a stand-alone CppHeap marking task. > - Uses a single schedule for determining bytes ahead or behind the > schedule. > > The CL also adjusts the interrupt for V8's young gen to be 256K as all > other interrupts. This change is not behind a flag. > > S3 effects (from the interrupt size): > 👍 Editor-CodeMirror [ -1.5%, -0.1%] > 👍 Editor-TipTap [ -0.5%, -0.1%] > 👍 TodoMVC-jQuery [ -1.1%, -0.0%] > > Change-Id: Id13e0c6a4a2c94e3c789385fea9880d93e080131 > Bug: 391118563 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6239500 > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Omer Katz <omerkatz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#98756} Bug: 391118563 Change-Id: I8090b9bcf3dc17b9e0c2d454b24ce015bdcea107 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6281665 Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#99003} | 1 年前 | |
[jumbo] Improve safety and const-correctness of TracedReference. The threadsafe get/set functions used void*, which is unnecessarily type-erased. Change to internal::Address* to match usage, and add a compile-time check that wrapping/unwrapping with std::atomic<> doesn't affect the size. Further removal of UB here will need std::atomic_ref<>. The getter also used atomic<const void*>, which doesn't match how the underlying object was actually set (as atomic<void*>). Make these match. Remove unnecessary casting-away-const from callers, and collapse duplicate BasicTracedReferenceExtractor definitions into one. Misc. cleanup while here: * Remove redundant namespace qualifiers * Remove redundant this-> Bug: none Change-Id: I4d260bee531fc54ce1756b6dbf7c8249cccbf514 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5778480 Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Commit-Queue: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/main@{#95798} | 1 年前 | |
Fix random presubmit warnings Those were flushed out in https://crrev.com/c/6582961. R=leszeks@chromium.org Change-Id: I97024c19a4211c3057ae36ee5c6585996b14e42a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6579374 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#100471} | 1 年前 | |
Reland "[heap] Refactor new space containment calls" This is a reland of commit e42ce24ddcf5075586e5c1f2c56677245658bb43 Original change's description: > [heap] Refactor new space containment calls > > Relay them to MemoryChunkMetadata::owner() instead of using the chunk > flags. The calls are not as hot and this way is consistent with > PagedSpace. > > Bug: 429538831 > Change-Id: I2fb533ca5f2490312cefb7a17c576b539a8fd7e3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6879446 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#102022} Bug: 429538831 Change-Id: I6f004d697a0ab93e70d1fb073e9d2b37402d2ebc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6883751 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#102040} | 10 个月前 | |
Reland "[heap] Refactor new space containment calls" This is a reland of commit e42ce24ddcf5075586e5c1f2c56677245658bb43 Original change's description: > [heap] Refactor new space containment calls > > Relay them to MemoryChunkMetadata::owner() instead of using the chunk > flags. The calls are not as hot and this way is consistent with > PagedSpace. > > Bug: 429538831 > Change-Id: I2fb533ca5f2490312cefb7a17c576b539a8fd7e3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6879446 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#102022} Bug: 429538831 Change-Id: I6f004d697a0ab93e70d1fb073e9d2b37402d2ebc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6883751 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#102040} | 10 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 4 年前 | ||
| 8 个月前 | ||
| 8 个月前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 9 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 10 个月前 |