- 14 Jan, 2022 1 commit
-
-
Michael Lippautz authored
Since ManualGCScope changes marking flags it should finalize any ongoing GC before changing the flags. Otherwise, the GC may observe inconsistent state. Bug: chromium:1285706 Change-Id: Ie8ef6a1117ba0523d0bed0c46d9116ffbc02069c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386607 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#78618}
-
- 13 Jan, 2022 5 commits
-
-
Lei Zhang authored
Use grep to check for obviously unneeded includes. e.g. headers that include <vector> but does not contain "std::vector". Change-Id: I43a9e9f01e072fd495918d28ca4cdad5cfa0294c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3354400Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org> Cr-Commit-Position: refs/heads/main@{#78613}
-
Nikolaos Papaspyrou authored
The total wall time for GC reported to Blink is explicitly included in UMA events. For the C++ managed heap, it is equal to the sum of the four phases (mark, sweep, compact, weak). For the JS heap, it will be greater than or equal to that sum in general. Bug: chromium:1154636 Change-Id: Id710702b8e9d8db5c8d1eb4917deb6b760a77306 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386596Reviewed-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@{#78611}
-
Leszek Swirski authored
This reverts commit 142dd775. Reason for revert: TSAN breaks: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20stress-incremental-marking/6113/overview Original change's description: > cppgc-js,heap: Implement snapshots for embedder fields > > https://crrev.com/c/3293410 added concurrent processing of C++ objects > found through V8 embedder fields. The CL missed that those embedder > fields are not read atomically from JS objects. The problem is that > embedder fields are only aligned to kTaggedSize on builds with pointer > compression and are as such mis-aligned for atomic ops. This is not a > problem for on-heap values as the upper 32bits are anyways computed > from the cage. Is is a problem for generic C++ values though, as they > are used with Oilpan. > > This CL adds the standard marker snapshot protocol for embedder fields. > > Marker: > 1. Snapshot embedder fields > 2. Try to mark host object > 3. On success: process snapshot > > Main thread: > 1. On setting embedder fields mark the object black first > 2. Emit a write barrier for the embedder fields > > This will get simpler with the heap sandbox that uses a separate table > for embedder fields. Once the sandbox is the default configuration, we > can use it as dependency for the concurrent fast path. > > Bug: chromium:1285706 > Change-Id: I6b975ea561be08cda840ef0dd27a11627de93900 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3380983 > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Commit-Queue: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78604} Bug: chromium:1285706 Change-Id: If1976c0356f450fc068aa4dcc39fb9a0d5417a40 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386598 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Owners-Override: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#78605}
-
Michael Lippautz authored
https://crrev.com/c/3293410 added concurrent processing of C++ objects found through V8 embedder fields. The CL missed that those embedder fields are not read atomically from JS objects. The problem is that embedder fields are only aligned to kTaggedSize on builds with pointer compression and are as such mis-aligned for atomic ops. This is not a problem for on-heap values as the upper 32bits are anyways computed from the cage. Is is a problem for generic C++ values though, as they are used with Oilpan. This CL adds the standard marker snapshot protocol for embedder fields. Marker: 1. Snapshot embedder fields 2. Try to mark host object 3. On success: process snapshot Main thread: 1. On setting embedder fields mark the object black first 2. Emit a write barrier for the embedder fields This will get simpler with the heap sandbox that uses a separate table for embedder fields. Once the sandbox is the default configuration, we can use it as dependency for the concurrent fast path. Bug: chromium:1285706 Change-Id: I6b975ea561be08cda840ef0dd27a11627de93900 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3380983Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78604}
-
Patrick Thier authored
This CL fixes 2 issues with string internalization when the string table is shared: 1. In-place migration of a string's map to Internalized was done before it was sure that the string is going to be internalized (outside the critical section). To fix this problem StringTableKey::AsHandle() is now split into StringTableKey::PrepareForInsertion(), which is invoked outside the critical section and creates a copy if necessary, and StringTableKey::GetHandleForInsertion(), which is invoked inside the critical section only for string table misses. Migration of the map is handled by this method. 2. TryStringToIndexOrLookupExisting() didn't handle already internalized strings. So far this was impossible, as this method was only invoked for strings that were checked not to be internalized. However with a shared string table, the string could be internalized after the checks. Bug: v8:12007 Change-Id: I193d6b54dc41360eee47d21cbcaa36d2652d85dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3368103Reviewed-by:
Shu-yu Guo <syg@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#78600}
-
- 12 Jan, 2022 8 commits
-
-
Michael Lippautz authored
The field is updated on the main thread and read on threads using LocalHeap to possibly trigger GC in fuzzing configurations. Bug: chromium:1286699 Change-Id: I15330b7542358ce1a2307a1f258655126b252c03 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3383776Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78591}
-
Dominik Inführ authored
We might run TRACE_GC with ThreadKind::kMain not only on each isolate's main thread but also on the shared isolate's thread during a shared GC. The DCHECK is too restrictive for the latter case. This is safe because the shared GC will stop all main threads before starting its work. Bug: v8:11708 Change-Id: I1f40140d6502b1ec797dfa783fb693ed213efb3b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3380522Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#78588}
-
gengjiawen authored
Provide a stub `third_party_heap::Heap` implementation to work around linker erors with Visual Studio. Refs: https://github.com/bnoordhuis/v8-cmake/pull/50 Bug: v8:10427 Change-Id: I435081d8cb195d1db999db699df3d3751663c81d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3366367Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78587}
-
Dominik Inführ authored
This is a reland of 86038ecf Compared to the previous CL this one is adding a TSAN suppression for GlobalSafepoint::EnterSafepointScope. local_heaps_mutex_ of client isolates may be locked in any order. This would be detected by TSAN as a potential race. Add some additional DCHECKs to compensate for that missing test coverage. As a cleanup this CL also removes the unused methods ContainsLocalHeap() and ContainsAnyLocalHeap() from LocalHeap. Original change's description: > [heap] Optimize time to reach global safepoint > > Initial support for global safepoints kept it simple by entering a > safepoint for each of them one after another. This means > time-to-global-safepoint is the sum of all time-to-safepoint operations. > We can improve this slightly by splitting up the safepoint iteration > into two operations: > > 1) Initiate safepoint lock (locks local_heaps_mutex_, arms the barrier > and sets SafepointRequested flag for all client threads) > 2) Block until all runnning client threads reach a safepoint > > We now perform operation 1) for all clients first and only then start > with operation 2). > > Bug: v8:11708 > Change-Id: Iaafd3c6d70bcf7026f722633e9250b04148b3da6 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3310910 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78308} Bug: v8:11708, v8:12492 Change-Id: I7087ba23c08f2d4edb9b632eef3c218fc76342e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3328786Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#78583}
-
Thibaud Michaud authored
- Add an ActiveSuspender root, similar to the ActiveContinuation root. - Add the missing "parent" field to the Suspender, which points to the outer Suspender when they are nested, and update that field when entering a new Suspender. - Add the missing "state" field and update it when the state of the Suspender changes. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I7a95f44f81390a347c6ef252ec6184fb4f0b0455 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3345003Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78582}
-
Nikolaos Papaspyrou authored
This CL contains minor refactorings to some parts of the garbage collector: - Space iterators. - Removes a redundant call to Heap::CreateFillerObjectAt. - Heap::CompleteSweepingFull now ensures that sweeping in the C++ managed heap is also completed. - Checks, comments and code cleanup. Change-Id: I14a7fe45c270c463c94c86f45b0e65757249d548 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3377125Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Nikolaos Papaspyrou <nikolaos@chromium.org> Cr-Commit-Position: refs/heads/main@{#78581}
-
Dominik Inführ authored
This CL doesn't change behavior, only refactors MemoryAllocator: * De-templatify class, MemoryAllocator is used on slow path and doesn't really need templates for performance. * Rename FreeMode names * Move methods into private section of class Change-Id: I7894fba956dcd7aa78ad0284d0924662fef4acae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3379812Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#78580}
-
JianxiaoLuIntel authored
To make sure print the correct gc_count in heap layout tracer. Change-Id: I790d9359acab188bbfd1f59b731531c58713d8f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3361842 Auto-Submit: Jianxiao Lu <jianxiao.lu@intel.com> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Jianxiao Lu <jianxiao.lu@intel.com> Cr-Commit-Position: refs/heads/main@{#78575}
-
- 11 Jan, 2022 5 commits
-
-
Hannes Payer authored
Change-Id: I9a8a667733247152f8760385391e7b3379731f02 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3380982Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78571}
-
Igor Sheludko authored
Windows requires additional writable page to be allocated in front of the code range, but at the same time the code range must not cross 4 GB boundary in order to make Code pointer compression work for Code pointers. All these constraints make the logic of hint calculation too dependent on what VirtualMemoryCage::InitReservation() would do with the provided hint. This CL simplifies the hint calculation and fully relies on VirtualMemoryCage::InitReservation() to do the right thing. On Linux the implementation of OS::GetFreeMemoryRangesWithin() doesn't work when Chromium sandbox is enabled, so we use the beginning of the preferred short builtin calls region as a hint. It should be at least as good as the fallback hint but with higher chances to point to free address space location. Bug: v8:11880 Change-Id: I0b6ebec98dd0cf483f67e6ba8a919deb9ce7cc25 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3380585Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78568}
-
Thibaud Michaud authored
- Add Suspender.suspendOnReturnedPromise method - Extend the WasmApiFunctionRef data with the suspender - Detect wrapped WasmJSFunctions when we resolve the import For now the generated wrapper is still a regular wasm-to-js wrapper, but this sets the ground for generating specific wrappers for functions wrapped by suspendOnReturnedPromise, and to access the suspender from the wrapper code. R=ahaas@chromium.org CC=fgm@chromium.org Bug: v8:12191 Change-Id: I81cbec6b023507e47e6e1463b5f9b912f807da6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3345000Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/main@{#78560}
-
Aleksei Koziatinskii authored
BaseSpace classes. So BaseSpace should have a virtual destructor for memory to be freed properly. cppgc: :internal::RawHeap maintains a std::vector of std: :unique_ptr<BaseSpace> and stores there different derived from Change-Id: Id9f59817799303bf62aafb66b3a29770bbd2af1f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3379228Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Alexey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/main@{#78558}
-
Benedikt Meurer authored
The methods in the v8::internal::Factory deal with creating the objects described in src/objects, so there's no point in having different sets of owners for them. Bug: none Change-Id: I05b48535bd81d37796e3f741156a059be8554759 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3359634Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78557}
-
- 10 Jan, 2022 3 commits
-
-
Benedikt Meurer authored
When creating a new JSError object (or using the non-standard API `Error.captureStackTrace`) V8 would previously capture the "simple stack trace" (as FixedArray of CallSiteInfo instances) to be used for the non- standard `error.stack` property, and if the inspector was active also capture the "detailed stack trace" (as FixedArray of StackFrameInfo instances). This turns out to be quite a lot of overhead, both in terms of execution time as well as memory pressure, especially since the information needed for the inspector is a proper subset of the information needed by `error.stack`. So this CL addresses the above issue by capturing only the "simple stack trace" (in the common case) and computing the "detailed stack trace" from the "simple stack trace" when on demand. This is accomplished by introducing a new ErrorStackData container that is used to store the stack trace information on JSErrors when the inspector is active. When capturing stack trace for a JSError object while the inspector is active, we take the maximum of the program controlled stack trace limit and the inspector requested stack trace limit, and memorize the program controlled stack trace limit for later formatting (to ensure that the presence of the inspector is not observable by the program). On the `standalone.js` benchmark from crbug.com/1283162 (with the default max call stack size of 200) we reduce execution time by around 16% compared to ToT. And compared to V8 9.9.4 (the version prior to the regression in crbug.com/1280831), we are 6% faster now. Doc: https://bit.ly/v8-cheaper-inspector-stack-traces Bug: chromium:1280831, chromium:1278650, chromium:1258599 Bug: chromium:1280803, chromium:1280832, chromium:1280818 Fixed: chromium:1283162 Change-Id: I57dac73e0ecf7d50ea57c3eb4981067deb28133e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3366660Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78542}
-
Romain Pokrzywka authored
LocalFactory::AllocateRaw() only allows the kOld and kSharedOld allocation types, but NewArrayList() calls NewFixedArray() without an explicit allocation argument, which then defaults to kYoung. Add an allocation argument to NewArrayList() with the same default value as for NewFixedArray() and pass kOld when calling it from NewScriptWithId() to avoid tripping the DCHECK with LocalFactory. Follow-up to https://crrev.com/c/3211575 Bug: chromium:1244145 Change-Id: I88d394bda250c45bf49141b78c09f6ca4a61dbe3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3354087Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#78540}
-
Shu-yu Guo authored
Bug: v8:11708 Change-Id: Ibf0f91b9e63646f226a2e70ec4a1733820e968ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3373135 Auto-Submit: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#78538}
-
- 04 Jan, 2022 1 commit
-
-
Omer Katz authored
Chromium builds indicate that moving an optional doesn't reset the source, and the source still indicates it has a value. That may be a bug in base::optional, but we should fix it here first to resolve current crashes. Bug: chromium:1154636 Cq-Include-Trybots: luci.v8.try:v8_linux_blink_rel Change-Id: Ibfb53b6d06d5f0310e68b200cc27ca318a5a57e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3366235Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78475}
-
- 03 Jan, 2022 2 commits
-
-
Benedikt Meurer authored
This changes the StackFrameInfo to either hold on to a pair of (Script,source position) or a pair of (SharedFunctioInfo,bytecode offset) similar to what we do for MessageLocation. The idea here is to defer the costly bytecode offset to source position lookup until really needed, and in particular, avoid the costly lookup during stack trace capturing. On the `standalone.js` benchmark in crbug.com/1283162#c1, this reduces overall average execution time by roughly 25%, and the performance is almost back to where it was before crrev.com/c/3302794 (being only 12% slower than before on the `standalone.js` test case). Note that due to unrelated limitations we cannot encode -1 as bytecode offset in the flags field of the StackFrameInfo, and so we treat this case specially (happens when stack trace capturing is triggered in the function entry sequence) and just eagerly resolve it to the source position. Bug: chromium:1278650, chromium:1283162, chromium:1280803 Bug: chromium:1280818, chromium:1280831, chromium:1280832 Doc: https://bit.ly/v8-cheaper-inspector-stack-traces Change-Id: If7cf62fce48d32c0f188895d1f8c9eee51b9e70d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3359633Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78466}
-
Omer Katz authored
Clear cached events if there is no embedder recorder. Bug: chromium:1154636 Change-Id: I9ad3b752ea242d07b417ce3022936789c47afc6a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3358292Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78464}
-
- 29 Dec, 2021 1 commit
-
-
Omer Katz authored
On concurrent threads, CppMarkingState allocates its own cppgc::internal::MarkingStateBase. On the mutator thread, CppMarkingState reuses the same MarkingStateBase as CppHeap's mutator thread visitor. That means the mutator thread doesn't need to rely on publishing segments to push object from V8 to CppHeap. Bug: v8:12407 Change-Id: I161adf8dcdc9aa960de65b47feb2abd3b605df7c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3295454Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78449}
-
- 27 Dec, 2021 1 commit
-
-
Omer Katz authored
Included in this CL: (*) Introduce CppMarkingState that V8 should use to push references to Oilpan. CppMarkingState allocates its own Worklist::Locals to support concurrent updates from V8. (*) Split Oilpan MarkingWorklist object to form a base class used by CppMarkingState. (*) Remove MarkerFactory and split marking initialization. Marking worklists should already be initialized when V8 initializes visitors. For incremental marking, this requires splitting marking initialization and marking start. (*) Drive-by: Mark JSObject::IsApiWrapper and JSObject::IsDroppableApiWrapper as const. Bug: v8:12407 Change-Id: I35cc816343da86f69a68306204675720e9b3913f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3293410Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78446}
-
- 22 Dec, 2021 1 commit
-
-
Igor Sheludko authored
... in order to ease issues debugging. Bug: chromium:1241665 Change-Id: I7731a37e642acd0aef02570fb70faf0bc65495ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3353367Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78430}
-
- 21 Dec, 2021 2 commits
-
-
Hannes Payer authored
Change-Id: I6a823ef3b65da2d1010a385db65e368fee9f31e0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3351788Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78426}
-
Hannes Payer authored
Change-Id: I5523f61627cab0ff0b921e51038396c642dad017 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3351784Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78424}
-
- 20 Dec, 2021 1 commit
-
-
Nikolaos Papaspyrou authored
Report young generation GC statistics to the Recorder API. These will be used by Blink to populate UMA histograms. Existing UMA reporting in V8 remains as is for now and will be removed in a followup. With this CL, minor mark-compaction statistics are reported as part of V8.GC.Cycle.*.Young. Also V8.GCScavengeReason is migrated to V8.GC.Cycle.Reason.Young. This CL goes together with: https://chromium-review.googlesource.com/c/chromium/src/+/3320388 Bug: chromium:1154636 Change-Id: Ia1030c80d4bc75ac6e176ed60f838929ddb9b20f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3320430Reviewed-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@{#78416}
-
- 16 Dec, 2021 2 commits
-
-
Igor Sheludko authored
This CL * removes Builtins::codet() and Builtins::codet_handle() returning builtins as CodeT objects in favor of code() and code_handle(), * removes BUILTIN_CODET macro in favor of BUILTIN_CODE, * removes CodeDataContainer table. Bug: v8:11880 Change-Id: Ic868549030744b0ff3ea5d5edbfcacf77c6de96d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3344650Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78399}
-
Igor Sheludko authored
... in order to avoid Code <-> CodeT conversions in builtins. This CL changes the meaning of RelocInfo::CODE_TARGET which now expects CodeT objects as a code target. In order to reduce code churn this CL makes BUILTIN_CODE and friends return CodeT instead of Code. In the follow-up CLs BUILTIN_CODET and friends will be removed. Bug: v8:11880 Change-Id: Ib8f60973e55c60fc62ba84707471da388f8201b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3338483Reviewed-by:
Patrick Thier <pthier@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78393}
-
- 15 Dec, 2021 2 commits
-
-
Samuel Groß authored
This CL renames a number of things related to the V8 sandbox. Mainly, what used to be under V8_HEAP_SANDBOX is now under V8_SANDBOXED_EXTERNAL_POINTERS, while the previous V8 VirtualMemoryCage is now simply the V8 Sandbox: V8_VIRTUAL_MEMORY_CAGE => V8_SANDBOX V8_HEAP_SANDBOX => V8_SANDBOXED_EXTERNAL_POINTERS V8_CAGED_POINTERS => V8_SANDBOXED_POINTERS V8VirtualMemoryCage => Sandbox CagedPointer => SandboxedPointer fake cage => partially reserved sandbox src/security => src/sandbox This naming scheme should simplify things: the sandbox is now the large region of virtual address space inside which V8 mainly operates and which should be considered untrusted. Mechanisms like sandboxed pointers are then used to attempt to prevent escapes from the sandbox (i.e. corruption of memory outside of it). Furthermore, the new naming scheme avoids the confusion with the various other "cages" in V8, in particular, the VirtualMemoryCage class, by dropping that name entirely. Future sandbox features are developed under their own V8_SANDBOX_X flag, and will, once final, be merged into V8_SANDBOX. Current future features are sandboxed external pointers (using the external pointer table), and sandboxed pointers (pointers guaranteed to point into the sandbox, e.g. because they are encoded as offsets). This CL then also introduces a new build flag, v8_enable_sandbox_future, which enables all future features. Bug: v8:10391 Change-Id: I5174ea8f5ab40fb96a04af10853da735ad775c96 Cq-Include-Trybots: luci.v8.try:v8_linux64_heap_sandbox_dbg_ng,v8_linux_arm64_sim_heap_sandbox_dbg_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3322981Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#78384}
-
Benedikt Meurer authored
This is the final change list in the list of refactorings to split off the implementations of v8::StackFrame and CallSite objects (as used by the V8 JavaScript stack API). See https://bit.ly/v8-stack-frame for the whole story. This CL adds the v8::internal::StackFrameInfo class as new backing implementation of v8::StackFrame, and puts it into debug-objects.tq to indicate that it's used for the debugger API only. This new class is lightweight and only holds on to static information about the stack frame, and is thus usable for the V8 inspector to implement async stack traces in a cheaper manner going forward. Doc: https://bit.ly/v8-stack-frame Bug: chromium:1258599, chromium:1278650 Fixed: chromium:1278647 Change-Id: I4dbf2d850f47797263af225895129499169aad02 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3302794 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#78382}
-
- 14 Dec, 2021 3 commits
-
-
Igor Sheludko authored
This CL migrates the following objects' APIs to CodeT: * WasmFunctionData, * WasmInternalFunction. Bug: v8:11880 Change-Id: Ib3f0eb41894cbd3c6b30430c4e5616eb45fbbaec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3338701Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78377}
-
Benedikt Meurer authored
This is the second step in the refactoring to make v8::StackFrame more lightweight and usable for (long time storage) by the V8 inspector (see https://bit.ly/v8-stack-frame for an overview). This is a purely mechanical change without any functional aspects. The intention is to make the use case for the CallSiteInfo objects clear, namely to serve as the backing store for the CallSite objects exposed via the Error.prepareStackTrace() API and used under the hood to implement the error.stack accessor. Doc: https://bit.ly/v8-stack-frame Bug: chromium:1258599, chromium:1278647, chromium:1278650 Change-Id: I39dffd1f1a8e5158ddc56f2a0a2b1b28321f487a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3300138Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#78361}
-
Igor Sheludko authored
Drive-by: fix TSAN issue. Bug: v8:11880 Change-Id: I8a31391c6a1855a20a243eb740e4e3e1223ecbbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3333930Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78360}
-
- 13 Dec, 2021 1 commit
-
-
Piotr Sikora authored
Signed-off-by:
Piotr Sikora <piotrsikora@google.com> Change-Id: Iee9005f1dd934fc6b81c1a8eb3d8d6bfb21b4bdc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3334336Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78354}
-
- 11 Dec, 2021 1 commit
-
-
Igor Sheludko authored
Bug: v8:11880 Change-Id: Ifcbf73a68c68b2534bb0c7272be43269b0963507 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3329799 Auto-Submit: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#78344}
-