| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Add DIR_METADATA files to v8. Generate DIR_METADATA files and remove metadata from OWNERS files for v8. R=jkummerow@chromium.org, ochang@chromium.org, yangguo@chromium.org Bug: chromium:1113033 Change-Id: I82cbb62e438d82dbbc408e87120af39fa9da0afa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2476680 Reviewed-by: Adam Klein <adamk@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org> Auto-Submit: Edward Lesmes <ehmaldonado@chromium.org> Cr-Commit-Position: refs/heads/master@{#70669} | 5 年前 | |
[profiler] Add heap/OWNERS as snapshot owners The team maintains the heap snapshot generator and is aware of the inner workings around visitation and GC necessary to make this work. Bug: 338340739 Change-Id: Ieea44232bb279ddbb7ecb46447d6c7b4914d61c8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5490528 Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#93671} | 2 年前 | |
Remove last uses of GetIsolate and GetHeap This is the manual follow-up to the mostly automatic https://crrev.com/c/6495413. Those methods will be removed in a follow-up (https://crrev.com/c/6582963). Depending on what makes most sense, we either use Isolate::Current() directly, or store it in a variable that is reused multiple times, or we pass the isolate as a parameter. R=leszeks@chromium.org Bug: 396607238 Change-Id: I9366410849cd4fa39fb792db9bb2ad35dba86ffe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6582961 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#100468} | 1 年前 | |
[heap] Fix allocation tracker line end retrieval Tests in NodeJS with DCHECK enabled were failing because of two different problems: - One was that we were also disallowing heap allocations in the serialization stage. But NodeJS tests process the heap snapshot result in JS, so all those were broken. - But, also, the code that would retrieve from line ends would assume all the scripts populated line ends in the snapshot. But this was wrong. To fix it, this patch adds another storage of the line ends in the allocation tracker. This storage needs to keep weak references to the scripts so we do not leak the line ends data when scripts are disposed. This change keeps a weak reference to the scripts so, when they are freed, the line ends cache is also freed as it is not useful anymore. Node issue: https://github.com/nodejs/node-v8/issues/282 Change-Id: I4314d707903175f0005893e9aa06d3ae52fc57f8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5531355 Commit-Queue: José Dapena Paz <jdapena@igalia.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/main@{#94418} | 2 年前 | |
[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 年前 | |
[cleanup] Remove DISALLOW_COPY_AND_ASSIGN in profiler/ Bug: v8:11074 Change-Id: I11632ad59ec3826b71e901e0eb34ef6dc1295637 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2524419 Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71098} | 5 年前 | |
[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 年前 | |
[sandbox] Don't use signal handlers on older kernels ... ... when hardware sandboxing is active. This is a workaround for an issue in older kernels when delivering signals on an alternate stack on a thread that doesn't have write access to the default pkey. The behavior has been fixed on kernel 6.12, so with this CL, we now check for the current kernel version and disable trap handlers (such as the Wasm trap handler) if the kernel version is too old and we want to use hardware sandboxing. Bug: 429173713, 350324877 Change-Id: I4a0ed92305f3da84c0b6939ad90d8e22d6ffb36b Cq-Include-Trybots: luci.v8.try:v8_linux64_pku_dbg,v8_linux64_pku_rel Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6703657 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#101234} | 1 年前 | |
Make TickSample::trace_id_ std::optional and add to traced CPU profile Bug: 390155857 Change-Id: I3aa135b3662627da52aea5ccb87f7253e1ab6724 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6182122 Commit-Queue: Andres Olivares <andoli@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#98293} | 1 年前 | |
[heap] Add flag for the output path of heap snapshots Bug: 454091455 Change-Id: I1704abca6083ffe0b20400dcd9090b1bd855450f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7079369 Commit-Queue: Andreas Haas <ahaas@google.com> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#103346} | 8 个月前 | |
heap_dump_1 for jsvm Signed-off-by: huanghan18 <huanghan18@huawei.com> | 26 天前 | |
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 年前 | |
implement rapidhash secret generation Bug: 409717082 Change-Id: I471f33d66de32002f744aeba534c1d34f71e27d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6733490 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: snek <snek@chromium.org> Cr-Commit-Position: refs/heads/main@{#101499} | 11 个月前 | |
[ArkWeb][安全][自动提交] 修复 Chromium issue 515086856: Drop weak edges from JSWeakSet/JSWeakMap Signed-off-by: zoumujia <zoumujia@h-partners.com> | 11 小时前 | |
[profiler] Add kind postfix to Window objects In a heap snapshot in Chrome DevTools, many different kinds of objects are shown as Window objects. This CL adds type tags to two additional kinds of these objects: the objects stored in NativeContext::fast_template_instantiations_cache and NativeContext::slow_template_instantiations_cache get the additional tag "internal cache", the prototype of these cached objects get the additional tag "prototype". This makes the Window objects shown in a heap snapshot slightly more understandable. Bug: 454073115 Change-Id: I3f7283c492c708946ef72e07a440a82d8a05c54b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7156378 Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#103745} | 7 个月前 | |
Add some missing includes This is for C++ modules build in chromium. Bug: 40263312 Change-Id: I19d199342fb352fb37e610a88ee70276541892ff Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6290047 Auto-Submit: Takuto Ikuta <tikuta@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#98959} | 1 年前 | |
[profiler] Include column number in CPU profiles Minified source code often has many statements and computations on a single line, resulting in line-based profiles being less than helpful in finding hot paths. Adding column numbers to the profile data allows differentiating multiple statements on a single line. Bug: 406012441 Change-Id: I3e6bc6587a037ac8e4d77c75f453d5f10ad474a8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6548236 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#100282} | 1 年前 | |
Reland "[profiler] Add CpuProfileSource to distinguish concurrent profile streams" This is a reland of commit bd03113e5c857b8f648ccdf7f59649d3def289f9 Original change's description: > [profiler] Add CpuProfileSource to distinguish concurrent profile streams > > DevTools merges concurrent CPU profile streams on the same thread, which > corrupts JavaScript attribution when multiple profiling sources are active > simultaneously. For example, when JS Self-Profiling API runs concurrently > with internal V8 tracing, their samples get incorrectly merged into a > single profile. > > This CL adds a CpuProfileSource enum to tag profile events at their source, > enabling DevTools to keep streams separate and maintain correct attribution. > > JS Self-Profiling will pass kSelfProfiling in follow-up Chromium CL > > Related CLs: > DevTools CL: https://crrev.com/c/6877206 > Chromium CL: https://crrev.com/c/6874588 > > Bug: 375614293 > Change-Id: I8fda56acedaaeadbbe4f911b27d36658d8248393 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7004962 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Issack John <issackjohn@microsoft.com> > Cr-Commit-Position: refs/heads/main@{#103512} Bug: 375614293 Change-Id: I2f9dcdeb6e3f3d32fbaadac21d73631d37be8d7a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7122240 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Issack John <issackjohn@microsoft.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/main@{#103578} | 7 个月前 | |
CVE: 511290038 Signed-off-by: jiang-qunchao <jiangqunchao@huawei.com> | 12 天前 | |
Reland "[tiering] Uniformly treat deopts which don't invalidate code" This is a reland of commit f7c2751ff9e362b668f6c0fbbcf2df2fe68f1635 Fix: Move new fields to the end of the Deoptimizer to fix access on arm Drive-By: Cleanup DeoptInfo to not record/read unused data Original change's description: > [tiering] Uniformly treat deopts which don't invalidate code > > There are currently two situations where deopts don't invalidate code: > * deopt in osr code and the deopt is outside the loop > * deopt to be able to osr from maglev to turbofan > > We should ensure that the deoptimizer and NotifyDeoptimized (a runtime > function which runs after the deoptimizer is done) agree on when code > needs to be discarded and when not. > > Also, if code is not discarded, or if deopts don't affect the main code, > we shouldn't change the tiering state. > > Drive-By: > * Read DeoptInfo only once and cache it. > * Reset tiering state only once. > > Change-Id: If789b6bbcab55eccf76010585152b1593b72134e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7036595 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Auto-Submit: Olivier Flückiger <olivf@chromium.org> > Cr-Commit-Position: refs/heads/main@{#103114} Change-Id: Id86574b5a91588c8fcf12b29f49da5bb67ef74f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7046222 Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Olivier Flückiger <olivf@chromium.org> Cr-Commit-Position: refs/heads/main@{#103747} | 7 个月前 | |
[cleanup] Use ToStdString() over ToCString() wherever std::string[_view] is needed Separated from https://chromium-review.googlesource.com/c/v8/v8/+/6628475/1 since it is mostly a cleanup within Intl code. This avoids allocating a new std::string or scanning for a null terminator. I tried to be conservative here; but there might be a benefit to just getting rid of all ToCString() calls and using std::string instead. Bug: 415359720 Change-Id: Ie0c1a8a972fff4b0a983846e5652087595c590a8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6628476 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Manish Goregaokar <manishearth@google.com> Reviewed-by: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#100754} | 1 年前 | |
[cpu-profiler] Ensure sampled thread has Isolate lock under Windows While the sampler checked if the sampled thread had the Isolate locked (if locks are being used) under Linux, the check was not done under Windows (or Fuchsia) which meant that in a multi-threading application under Windows, thread locking was not checked making it prone to seg faults and the like as the profiler would be using isolate->js_entry_sp to determine the stack to walk but isolate->js_entry_sp is the stack pointer for the thread that currently has the Isolate lock so, if the sampled thread does not have the lock, the sampler woud be iterating over the wrong stack, one that might actually be actively changing on another thread. The fix was to move the lock check into CpuSampler and Ticker (--prof) so all OSes would do the correct check. The basic concept is that on all operating systems a CpuProfiler, and so its corresponding CpuCampler, the profiler is tied to a thread. This is not based on first principles or anything, it's simply the way it works in V8, though it is a useful conceit as it makes visualization and interpretation of profile data much easier. To collect a sample on a thread associated with a profiler the thread must be stopped for obvious reasons -- walking the stack of a running thread is a formula for disaster. The mechanism for stopping a thread is OS-specific and is done in sample.cc. There are currently three basic approaches, one for Linux/Unix variants, one for Windows and one for Fuchsia. The approaches vary as to which thread actually collects the sample -- under Linux the sample is actually collected on the (interrupted) sampled thread whereas under Fuchsia/Windows it's on a separate thread. However, in a multi-threaded environment (where Locker is used), it's not sufficient for the sampled thread to be stopped. Because the stack walk involves looking in the Isolate heap, no other thread can be messing with the heap while the sample is collected. The only ways to ensure this would be to either stop all threads whenever collecting a sample, or to ensure that the thread being sampled holds the Isolate lock so prevents other threads from messing with the heap. While there might be something to be said for the "stop all threads" approach, the current approach in V8 is to only stop the sampled thread so, if in a multi-threaded environment, the profiler must check if the thread being sampled holds the Isolate lock. Since this check must be done, independent of which thread the sample is being collected on (since it varies from OS to OS), the approach is to save the thread id of the thread to be profiled/sampled when the CpuSampler is instantiated (on all OSes it is instantiated on the sampled thread) and then check that thread id against the Isolate lock holder thread id before collecting a sample. If it matches, we know sample.cc has stop the sampled thread, one way or another, and we know that no other thread can mess with the heap (since the stopped thread holds the Isolate lock) so it's safe to walk the stack and collect data from the heap so the sample can be taken. It it doesn't match, we can't safely collect the sample so we don't. Bug: v8:10850 Change-Id: Iba6cabcd3e11a19c261c004103e37e806934dc6f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2411343 Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#69952} | 5 年前 | |
[cpu-profiler] Ensure sampled thread has Isolate lock under Windows While the sampler checked if the sampled thread had the Isolate locked (if locks are being used) under Linux, the check was not done under Windows (or Fuchsia) which meant that in a multi-threading application under Windows, thread locking was not checked making it prone to seg faults and the like as the profiler would be using isolate->js_entry_sp to determine the stack to walk but isolate->js_entry_sp is the stack pointer for the thread that currently has the Isolate lock so, if the sampled thread does not have the lock, the sampler woud be iterating over the wrong stack, one that might actually be actively changing on another thread. The fix was to move the lock check into CpuSampler and Ticker (--prof) so all OSes would do the correct check. The basic concept is that on all operating systems a CpuProfiler, and so its corresponding CpuCampler, the profiler is tied to a thread. This is not based on first principles or anything, it's simply the way it works in V8, though it is a useful conceit as it makes visualization and interpretation of profile data much easier. To collect a sample on a thread associated with a profiler the thread must be stopped for obvious reasons -- walking the stack of a running thread is a formula for disaster. The mechanism for stopping a thread is OS-specific and is done in sample.cc. There are currently three basic approaches, one for Linux/Unix variants, one for Windows and one for Fuchsia. The approaches vary as to which thread actually collects the sample -- under Linux the sample is actually collected on the (interrupted) sampled thread whereas under Fuchsia/Windows it's on a separate thread. However, in a multi-threaded environment (where Locker is used), it's not sufficient for the sampled thread to be stopped. Because the stack walk involves looking in the Isolate heap, no other thread can be messing with the heap while the sample is collected. The only ways to ensure this would be to either stop all threads whenever collecting a sample, or to ensure that the thread being sampled holds the Isolate lock so prevents other threads from messing with the heap. While there might be something to be said for the "stop all threads" approach, the current approach in V8 is to only stop the sampled thread so, if in a multi-threaded environment, the profiler must check if the thread being sampled holds the Isolate lock. Since this check must be done, independent of which thread the sample is being collected on (since it varies from OS to OS), the approach is to save the thread id of the thread to be profiled/sampled when the CpuSampler is instantiated (on all OSes it is instantiated on the sampled thread) and then check that thread id against the Isolate lock holder thread id before collecting a sample. If it matches, we know sample.cc has stop the sampled thread, one way or another, and we know that no other thread can mess with the heap (since the stopped thread holds the Isolate lock) so it's safe to walk the stack and collect data from the heap so the sample can be taken. It it doesn't match, we can't safely collect the sample so we don't. Bug: v8:10850 Change-Id: Iba6cabcd3e11a19c261c004103e37e806934dc6f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2411343 Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#69952} | 5 年前 | |
[heap] Split off trusted methods into TrustedHeapLayout This should make it easier for callers to see which calls can be trusted wrt to the V8 sandbox and which calls yield in untrusted data. Bug: 429538831 Change-Id: I4939d69665197e5de75ab5757edacc7f73c76745 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6889553 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/main@{#102070} | 10 个月前 | |
Revert "Reland "[heap] Invoke allocation observers before limiting the LAB"" This reverts commit dbbccae19a5cda3345716095f7e5bc32f0ef3ca1. Reason for revert: Deadlock in TSAN with stress: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN/44651/overview Original change's description: > Reland "[heap] Invoke allocation observers before limiting the LAB" > > This is a reland of commit 39d387bb722d7e1b29a7219de8998286f8dbf71a > > Original change's description: > > [heap] Invoke allocation observers before limiting the LAB > > > > Currently whenever we reach a step we get a small LAB the same size as > > the allocated object. This is becuase the remaining step size is smaller > > then the current allocation. > > Invoking observers before limiting the LAB, and thus updating step > > sizes, should eliminate the small LAB we get whenever we reach a step. > > > > Drive-by: remove redundant method arguments. > > > > Bug: v8:12612 > > Change-Id: Ied92a947308368d3b289e246fdb4f40ac5e5981f > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4013683 > > Reviewed-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@{#84157} > > Bug: v8:12612, v8:13465 > Change-Id: I40fb930a755cb5decccd932c4d25ed7d5d224da4 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4020177 > Reviewed-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@{#84328} Bug: v8:12612, v8:13465 Change-Id: I70df00448c7413999b91412343915c503baf0dd3 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4035252 Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Shu-yu Guo <syg@chromium.org> Owners-Override: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#84345} | 3 年前 | |
implement rapidhash secret generation Bug: 409717082 Change-Id: I471f33d66de32002f744aeba534c1d34f71e27d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6733490 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: snek <snek@chromium.org> Cr-Commit-Position: refs/heads/main@{#101499} | 11 个月前 | |
[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 年前 | |
[profiling] Fix missing inline stack handling for optimized top frames The Symbolizer has a special branch for handling the top stack frame, but it did not account for inlined functions within optimized frames (Turbofan and Maglev). This CL fixes the issue by reusing the logic from the main stack frame loop. Inline stack unwinding is factored into a helper function to avoid code duplication. Bug: 436562902 Change-Id: Ia3facd610b5970f942bfbc5d5e1b8fd1618d7c06 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6859296 Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Roman Dvornov <romandvornov@microsoft.com> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#102102} | 10 个月前 | |
[profiler] Include column number in CPU profiles Minified source code often has many statements and computations on a single line, resulting in line-based profiles being less than helpful in finding hot paths. Adding column numbers to the profile data allows differentiating multiple statements on a single line. Bug: 406012441 Change-Id: I3e6bc6587a037ac8e4d77c75f453d5f10ad474a8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6548236 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#100282} | 1 年前 | |
[runtime] Add IDLE_EXTERNAL VM state Otherwise we can't properly filter samples where V8 isn't on the stack at all. This also updates the tick processors to include ATOMICS_WAIT support that has been missing for years. Change-Id: I511f1d706d9d5bbee317f7f12608c7618266fe7f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6714365 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#101305} | 11 个月前 | |
Make TickSample::trace_id_ std::optional and add to traced CPU profile Bug: 390155857 Change-Id: I3aa135b3662627da52aea5ccb87f7253e1ab6724 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6182122 Commit-Queue: Andres Olivares <andoli@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/main@{#98293} | 1 年前 | |
Reland "[profiler] Add CpuProfileSource to distinguish concurrent profile streams" This is a reland of commit bd03113e5c857b8f648ccdf7f59649d3def289f9 Original change's description: > [profiler] Add CpuProfileSource to distinguish concurrent profile streams > > DevTools merges concurrent CPU profile streams on the same thread, which > corrupts JavaScript attribution when multiple profiling sources are active > simultaneously. For example, when JS Self-Profiling API runs concurrently > with internal V8 tracing, their samples get incorrectly merged into a > single profile. > > This CL adds a CpuProfileSource enum to tag profile events at their source, > enabling DevTools to keep streams separate and maintain correct attribution. > > JS Self-Profiling will pass kSelfProfiling in follow-up Chromium CL > > Related CLs: > DevTools CL: https://crrev.com/c/6877206 > Chromium CL: https://crrev.com/c/6874588 > > Bug: 375614293 > Change-Id: I8fda56acedaaeadbbe4f911b27d36658d8248393 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7004962 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Issack John <issackjohn@microsoft.com> > Cr-Commit-Position: refs/heads/main@{#103512} Bug: 375614293 Change-Id: I2f9dcdeb6e3f3d32fbaadac21d73631d37be8d7a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7122240 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Issack John <issackjohn@microsoft.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/main@{#103578} | 7 个月前 | |
[Tracing w/SDK] Replace TraceStateObserver with TrackEventSessionObserver With v8_use_perfetto = true, tracing sessions are controlled by Perfetto, not TraceLog. This can lead to inconsistencies, e.g. TraceLog signalling trace start while V8's TrackEvent datasource hasn't been initialized yet. This CL removes the TraceStateObserver interface and replaces its uses with perfetto::TrackEventSessionObserver which correctly tracks Perfetto tracing sessions start and end. See also crrev.com/c/4066184 for the corresponding Chrome change. Bug: chromium:1006766 Change-Id: I94b2189c8b28aec8b17ec8fc1246e27c904e4ee9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4062038 Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Mikhail Khokhlov <khokhlov@google.com> Cr-Commit-Position: refs/heads/main@{#84590} | 3 年前 | |
[handles] Migration to direct handles, part 3 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: ast, baseline, codegen, compiler, d8, diagnostics, extensions, ic, init, interpreter, logging, maglev, parsing, profiler. Bug: 42203211 Change-Id: I3ca12892acfe45f8458d19aa4cbd56ad01842c0a Cq-Include-Trybots: luci.v8.try:v8_linux64_css_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5615411 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@{#94363} | 2 年前 | |
[handles] Migration to direct handles, part 3 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: ast, baseline, codegen, compiler, d8, diagnostics, extensions, ic, init, interpreter, logging, maglev, parsing, profiler. Bug: 42203211 Change-Id: I3ca12892acfe45f8458d19aa4cbd56ad01842c0a Cq-Include-Trybots: luci.v8.try:v8_linux64_css_dbg Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5615411 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@{#94363} | 2 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 2 年前 | ||
| 1 年前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 8 个月前 | ||
| 26 天前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 11 小时前 | ||
| 7 个月前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 7 个月前 | ||
| 12 天前 | ||
| 7 个月前 | ||
| 1 年前 | ||
| 5 年前 | ||
| 5 年前 | ||
| 10 个月前 | ||
| 3 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 1 年前 | ||
| 11 个月前 | ||
| 1 年前 | ||
| 7 个月前 | ||
| 3 年前 | ||
| 2 年前 | ||
| 2 年前 |