- 26 Jan, 2021 2 commits
-
-
Adam Klein authored
This reverts commit 3a405b01. Reason for revert: thread-sanitizer failures on Linux64 TSAN bot: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20TSAN/35141/overview Original change's description: > [cpu-profiler] Implement weak phantom finalizers for CodeMap entries > > Listen to code deletion events by registering finalizers on code > objects, a first stab at non-leaky long-lived code entries. > > Bug: v8:11054 > Change-Id: Ieaaa5b63508263bd261e8385f5bf5dd3baedf9c5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2628587 > Commit-Queue: Andrew Comminos <acomminos@fb.com> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72342} TBR=ulan@chromium.org,petermarshall@chromium.org,acomminos@fb.com Change-Id: If22a893af469c9d4d3e00fb124c42cdc52b9a19b No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:11054 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649156Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#72344}
-
Andrew Comminos authored
Listen to code deletion events by registering finalizers on code objects, a first stab at non-leaky long-lived code entries. Bug: v8:11054 Change-Id: Ieaaa5b63508263bd261e8385f5bf5dd3baedf9c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2628587 Commit-Queue: Andrew Comminos <acomminos@fb.com> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#72342}
-
- 22 Dec, 2020 1 commit
-
-
Andrew Comminos authored
As a first step towards freeing CodeEntry objects that are neither still referenced by JS or stored in a profile, enable freeing of refcounted strings by CodeEntry instances. For now, this leaves behaviour unchanged until we receive CodeEntry destruction events. Bug: v8:11054 Change-Id: Iabd05aa730343cd1a879ff5b04326f23e68aa948 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2590604 Commit-Queue: Andrew Comminos <acomminos@fb.com> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#71858}
-
- 10 Dec, 2020 1 commit
-
-
Clemens Backes authored
So far we reported the script ID, but DevTools ignores that and uses the source url instead. That url was just set to "wasm ", which the frontend couldn't make any sense of. This CL fixes this by passing the source URL to the code create event, and also setting the position of the code inside the script (i.e. wasm module). R=thibaudm@chromium.org, petermarshall@chromium.org Bug: chromium:1125986 Change-Id: Ic41dcd2768c60fd6748468d3a89fc4ffccb35932 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2581543 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#71695}
-
- 08 Dec, 2020 3 commits
-
-
Clemens Backes authored
This is a reland of ab4d9717. The original CL did a std::move before the final use of the NativeModule. PS2 removes that. TBR=petermarshall@chromium.org, thibaudm@chromium.org Original change's description: > [wasm] Pass the script ID to code logging > > We didn't pass a script ID with the code creation events for profiling. > This made DevTools lose the connection to the wasm script, hence > jumping from the profiler entry to the source did not work. > > This CL changes the timing of code logging a bit such that the script is > always allocated before logging. In the queue of code to be logged we > then also store the script ID, and finally set it on the {CodeEntry} > object. > > R=thibaudm@chromium.org > > Bug: chromium:1125986 > Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71654} Bug: chromium:1125986 Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Change-Id: I2a7c5fe04fff726836b1279e3d05b1702a4efb76 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2578980Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71663}
-
Clemens Backes authored
This reverts commit ab4d9717. Reason for revert: UBSan issues: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/14184/overview Original change's description: > [wasm] Pass the script ID to code logging > > We didn't pass a script ID with the code creation events for profiling. > This made DevTools lose the connection to the wasm script, hence > jumping from the profiler entry to the source did not work. > > This CL changes the timing of code logging a bit such that the script is > always allocated before logging. In the queue of code to be logged we > then also store the script ID, and finally set it on the {CodeEntry} > object. > > R=thibaudm@chromium.org > > Bug: chromium:1125986 > Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71654} TBR=petermarshall@chromium.org,clemensb@chromium.org,thibaudm@chromium.org Change-Id: I03c90c77b55e770797a6d66b1d778992a047e07a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1125986 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575070Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71660}
-
Clemens Backes authored
We didn't pass a script ID with the code creation events for profiling. This made DevTools lose the connection to the wasm script, hence jumping from the profiler entry to the source did not work. This CL changes the timing of code logging a bit such that the script is always allocated before logging. In the queue of code to be logged we then also store the script ID, and finally set it on the {CodeEntry} object. R=thibaudm@chromium.org Bug: chromium:1125986 Change-Id: I2248c1d520bc819436bbe732373f7a3446b64f48 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2575057 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#71654}
-
- 11 Nov, 2020 1 commit
-
-
Zhi An Ng authored
Bug: v8:11074 Change-Id: I11632ad59ec3826b71e901e0eb34ef6dc1295637 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2524419Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71098}
-
- 14 Sep, 2020 1 commit
-
-
Andrew Comminos authored
Since the web-exposed profiler will require COOP/COEP, it is no longer necessary to perform isolation at the V8 level. Strip the unnecessary complexity and unreliability of context filtering accordingly. Bug: chromium:956688, v8:9881, v8:9860 Change-Id: I21a30d51f8daf7565ec95de8c265e9d3b9d10fad Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2386144 Commit-Queue: Andrew Comminos <acomminos@fb.com> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#69894}
-
- 07 Jul, 2020 2 commits
-
-
Mythri A authored
In turboprop, we reuse the code on a soft deopt. It will be good to differentiate between a deopt that reuses the optimized code on the next run and the deopt that discards the code. The deopt that reuses the code is called a "bailout" because it is just bails out for one execution to the unoptimized code. Change-Id: I9a300201e9b327415e94c2817065d6a561f8ece5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2277807 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#68722}
-
Mythri A authored
When marking the function for a deopt due a dependency change, we only print the information about the code object. This isn't very useful when looking at the output of --trace-deopt. This cl also adds SharedFunctionInfo which makes it easier to see which function got deoptimized. Also adds these events to the log file so they can be used in profview to print more accurate deoptimization information. Change-Id: I1b7a88b5cc2a1ad1ebb0863cf8a4f7d2e151b76a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2281001 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#68705}
-
- 02 Jan, 2020 1 commit
-
-
Peter Marshall authored
Just a cleanup, should not change behavior, although we will allocate more handles in some cases. Also re-orders some of the implementations of the interface to try and keep things consistent. Included cleanup: Change CodeEventDispatcher so that it now implements CodeEventListener, given that it had that exact interface already. Also remove the macro dispatch to try and make things a bit easier to read. Bug: chromium:1033407 Change-Id: Id943b10c49f102d9783d8f4cf3a8c43e04364c77 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1976390Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#65571}
-
- 04 Dec, 2019 1 commit
-
-
Clemens Backes authored
This was probably meant by the TODO removed in https://crrev.com/c/1946354, I just failed to see it because the TODO was placed at the wrong place. The fix triggered a bug in the profiler, which made the wrong assumption that the passed wasm name is null-terminated. This is also fixed in this CL. R=jkummerow@chromium.org, petermarshall@chromium.org Change-Id: Ibf798e7511e61f6b305dd2d05d1aeca43be774a0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1948704Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65319}
-
- 20 Aug, 2019 1 commit
-
-
Andrew Comminos authored
Adds support to the CPU profiler for scraping the incumbent contexts of V8 stack frames. While it is generally unsafe to access heap objects during a profiling interrupt, the native context is uniquely usable due to being guaranteed an alive root on the stack, as well as its slots being immutable after context creation. Change-Id: I2c3149c1302b74d2f13aa99d1fdd0cf006e0f9d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1580020 Commit-Queue: Andrew Comminos <acomminos@fb.com> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#63258}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 25 Apr, 2019 1 commit
-
-
Andrew Comminos authored
Adds a new flag to CpuProfiler to control whether or not "debug" names (potentially inferred from scope) are used for captured frames associated with a SharedFunctionInfo instance. Bug: v8:9135 Change-Id: Ia1db20e389f3d0beb60eb47798820fb11d501c88 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1583042 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61015}
-
- 24 Apr, 2019 2 commits
-
-
Sigurd Schneider authored
This reverts commit fa6ec3cb. Reason for revert: v8:9169, v8:9170 https://ci.chromium.org/p/v8/builders/ci/V8%20Linux/31457 https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64/31417 https://ci.chromium.org/p/v8/builders/ci/V8%20Win32%20-%20debug/19919 Original change's description: > [cpu-profiler] Split out debug mode for CPU profiler naming > > Adds a new flag to CpuProfiler to control whether or not "debug" names > (potentially inferred from scope) are used for captured frames > associated with a SharedFunctionInfo instance. > > Bug: v8:9135 > Change-Id: I104f3246431dc6336de4e4688c0d98c86e0bb776 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566169 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Alexei Filippov <alph@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Commit-Queue: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60972} TBR=ulan@chromium.org,alph@chromium.org,yangguo@chromium.org,petermarshall@chromium.org,acomminos@fb.com Change-Id: I573194b5affd31fd0748b9ef3c45052e8ab420f5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9135 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1581639Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60973}
-
Andrew Comminos authored
Adds a new flag to CpuProfiler to control whether or not "debug" names (potentially inferred from scope) are used for captured frames associated with a SharedFunctionInfo instance. Bug: v8:9135 Change-Id: I104f3246431dc6336de4e4688c0d98c86e0bb776 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566169Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#60972}
-
- 27 Mar, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: I851e9a18eab0812e009d323cd98814bebc83f003 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541047 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#60487}
-
- 13 Mar, 2019 1 commit
-
-
Andrew Comminos authored
Enable cross-origin frame filtering by exposing this bit from ScriptOriginOptions. Bug: v8:8956 Change-Id: I109eec9db8b3d42d68d32abc5edd437b1c91a9b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1493294 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#60205}
-
- 11 Feb, 2019 1 commit
-
-
Andrew Comminos authored
Fixes a segfault that occurs when v8::CpuProfilers are restarted caused by the reuse of a stale CodeEventObserver. Bug: chromium:929928 Change-Id: I5d5f7eaf5cd903910130cdb0cfec8c3fd6608edd Reviewed-on: https://chromium-review.googlesource.com/c/1459740Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#59506}
-
- 04 Jan, 2019 1 commit
-
-
Peter Marshall authored
Previously we stored the source position table, which stored a mapping of pc offsets to line numbers, and the inline_locations, which stored a mapping of pc offsets to stacks of {CodeEntry, line_number} pairs. This was slightly wasteful because we had two different tables which were both keyed on the pc offset and contained some overlapping information. This CL combines the two tables in a way. The source position table now maps a pc offset to a pair of {line_number, inlining_id}. If the inlining_id is valid, then it can be used to look up the inlining stack which is stored in inline_locations, but is now keyed by inlining_id rather than pc offset. This also has the nice effect of de-duplicating inline stacks which we previously duplicated. The new structure is similar to how this data is stored by the compiler, except that we convert 'source positions' (char offset in a file) into line numbers as we go, because we only care about attributing ticks to a given line. Also remove the helper RecordInliningInfo() as this is only actually used to add inline stacks by one caller (where it is now inlined). The other callers would always bail out or are only called from test-cpu-profiler. Remove AddInlineStack and replace it with SetInlineStacks which adds all of the stacks at once. We need to do it this way because the source pos table is passed into the constructor of CodeEntry, so we need to create it before the CodeEntry, but the inline stacks are not (they are part of rare_data which is not always present), so we need to add them after construction. Given that we calculate both the source pos table and the inline stacks before construction, it's just easier to add them all at once. Also add a print() method to CodeEntry to make future debugging easier as I'm constantly rewriting this locally. Bug: v8:8575, v8:7719, v8:7203 Change-Id: I39324d6ea13d116d5da5d0a0d243cae76a749c79 Reviewed-on: https://chromium-review.googlesource.com/c/1392195 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#58554}
-
- 28 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: If405611d359d29ae1958beebd9202e068434a621 Reviewed-on: https://chromium-review.googlesource.com/c/1350286 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57918}
-
- 27 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I4da6404aa968adca1fbb49029fc304622101d6c3 Reviewed-on: https://chromium-review.googlesource.com/c/1349112 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#57853}
-
- 25 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: Id515906744a738d5d40dbb6dee15e243623f020c Reviewed-on: https://chromium-review.googlesource.com/c/1349111 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#57809}
-
- 12 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I413ce57f7fa91cef2445995ca22650477f92b0df Reviewed-on: https://chromium-review.googlesource.com/c/1321892Reviewed-by:
Dan Elphick <delphick@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#57445}
-
- 27 Jul, 2018 1 commit
-
-
Peter Marshall authored
Previously we used the start address of the AbstractCode object. This doesn't make sense for off-heap builtins, where the code isn't contained in the object itself. It also hides other potential problems - sometimes the sample.pc is inside the AbstractCode object header - this is never valid. There were a few changes necessary to make this happen: - Change the interface of CodeMoveEvent. Now 'to' and 'from' are both AbstractCode objects, which is nice because many users were taking 'to' and adding the header offset to it to try and find the instruction start address. This isn't valid for off-heap builtins. - Fix a bug in CodeMap::MoveCode where we didn't update the CodeEntry object to reflect the new instruction_start. - Rename the 'start' field in all of the CodeEventRecord sub-classes to make it clear that this is the address of the first instruction. - Fix the confusion in RecordTickSample between 'tos' and 'pc' which caused pc_offset to be calculated incorrectly. Bug: v8:7983 Change-Id: I3e9dddf74e4b2e96a5f031d216ef7008d6f184d1 Reviewed-on: https://chromium-review.googlesource.com/1148457 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#54749}
-
- 13 Jun, 2018 1 commit
-
-
Georgia Kouveli authored
Replace all uses of Deoptimizer::BailoutType and CodeEventListener::DeoptKind with DeoptimizeKind from src/globals.h. Change-Id: I5b9002583a69bc43d995cacc7619b018e5a70727 Reviewed-on: https://chromium-review.googlesource.com/1097331 Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#53695}
-
- 24 May, 2018 2 commits
-
-
Peter Marshall authored
We store deopt inline frames for all functions when we receive the code creation event. We only ever use this information for code which is deoptimized. Given that we receive code deopt events, we can just store this information when the code is deoptimized. At the time of the code deopt event, we also know the associated deopt_id. That means we don't need to store a map of deopt_ids to vectors of frames, because we will only ever access the frames for the deopt_id that is already set. This means we store way less data, particularly for long-running processes which see fewer deopts. This saves 10MiB peak memory on the node server example. Bug: v8:7719 Change-Id: If6cf5ec413848e4c9f3c1e2106366ae2adae6fb1 Reviewed-on: https://chromium-review.googlesource.com/1050289 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#53330}
-
Peter Marshall authored
This distinction doesn't matter, they aren't treated any differently to other strings. Change-Id: I524a0a1c4089284af97aa507afc5bd5985fe6631 Reviewed-on: https://chromium-review.googlesource.com/1071628Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#53329}
-
- 16 May, 2018 1 commit
-
-
Alexei Filippov authored
Currently ProfilerListener holds all the CodeEntries it ever created during the profiling session. It is not capable of removing entries corresponding to the code objects discarded by GC as there's no such code event. However it is sometimes possible to tell if a code object was GCed. Hook up to the CodeMap code entry removal and if the entry has never been hit by a sample we can safely delete it. As a bonus the CodeEntryInfo size has been reduced on x64, which also saves 8 x <number of code entries> bytes. BUG=v8:7719 Change-Id: I988bc5b59f3fba07157a9f472cbcf68596fcd969 Reviewed-on: https://chromium-review.googlesource.com/1054346Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#53222}
-
- 09 May, 2018 1 commit
-
-
Peter Marshall authored
The handles created for each SharedFunctionInfo within SourcePosition::InliningStack live for the life of the profile, reaching 5MiB+ on an example server application for Node. This HandleScope limits their lifetime locally, given that the handles do not escape. This saves ~10% of peak memory. Bug: v8:7719 Change-Id: I97ce0fd3658be89fdd9cb9c1369ea5bfae0ce579 Reviewed-on: https://chromium-review.googlesource.com/1049647Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#53085}
-
- 07 May, 2018 1 commit
-
-
Peter Marshall authored
We can save a pointer of space for each CodeEntry by removing this field which we don't really need. Instead of concatenating the name string on demand, concatenate the prefix eagerly. Reduces sizeof(CodeEntry) from 136 to 128 on 64-bit. Bug: v8:7719 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Id346a8f36794e337e8c886f8d1969431424539b0 Reviewed-on: https://chromium-review.googlesource.com/1039825Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#53014}
-
- 04 May, 2018 1 commit
-
-
Alexei Filippov authored
ProfilerListener which holds CodeEntries has been moved from Logger to CpuProfiler. This way we can clear entries when all the profiles produced by a particular CpuProfiler are deleted. BUG=v8:7719 Change-Id: I31d47dc7da44648c8fb8e87b47e2e6260d3dc5c3 Reviewed-on: https://chromium-review.googlesource.com/1043050Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#53004}
-
- 18 Apr, 2018 1 commit
-
-
Alexei Filippov authored
This is a reland of 9a19ce25 Original change's description: > [profiler] Ensure there's a single ProfilerListener per isolate. > > BUG=v8:7662 > > Change-Id: I8128ac96bcd2dc01b318c55843c4416bdd17c7ae > Reviewed-on: https://chromium-review.googlesource.com/1013318 > Commit-Queue: Alexei Filippov <alph@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52653} Bug: v8:7662 Change-Id: I28c5e693290057ad2bc90161c82419fb109ef1ae Reviewed-on: https://chromium-review.googlesource.com/1015747Reviewed-by:
Alexei Filippov <alph@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#52678}
-
- 17 Apr, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit 9a19ce25. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/20359 Original change's description: > [profiler] Ensure there's a single ProfilerListener per isolate. > > BUG=v8:7662 > > Change-Id: I8128ac96bcd2dc01b318c55843c4416bdd17c7ae > Reviewed-on: https://chromium-review.googlesource.com/1013318 > Commit-Queue: Alexei Filippov <alph@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52653} TBR=alph@chromium.org,yangguo@chromium.org Change-Id: I3c3b6eb8d6f9911fa318f24a2e6e74180b83398e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7662 Reviewed-on: https://chromium-review.googlesource.com/1015561Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52654}
-
Alexei Filippov authored
BUG=v8:7662 Change-Id: I8128ac96bcd2dc01b318c55843c4416bdd17c7ae Reviewed-on: https://chromium-review.googlesource.com/1013318 Commit-Queue: Alexei Filippov <alph@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52653}
-
- 14 Apr, 2018 1 commit
-
-
Jakob Kummerow authored
The "Address" type is V8's general-purpose type for manipulating memory addresses. Per the C++ spec, pointer arithmetic and pointer comparisons are undefined behavior except within the same array; since we generally don't operate within a C++ array, our general-purpose type shouldn't be a pointer type. Bug: v8:3770 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779 Reviewed-on: https://chromium-review.googlesource.com/988657 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#52601}
-
- 12 Apr, 2018 1 commit
-
-
Peter Marshall authored
Looking up line numbers with the JITLineInfoTable would sometimes give wrong answers. Fix these bugs and add a cctest for this data structure. Also do some cleanup while we're here like inlining the (empty) constructor and destructor and removing the empty() method which is only used unnecessarily anyway, to make the contract of GetSourceLineNumber a bit clearer. Also rename the data structure to SourcePositionTable, because it doesn't just provide info for JIT code, but also bytecode, and 'Info' is pretty ambiguous. Bug: v8:7018 Change-Id: I126581c844d85df6b2b3f80f2f5acbce01c16ba1 Reviewed-on: https://chromium-review.googlesource.com/1006795Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#52571}
-
- 22 Mar, 2018 1 commit
-
-
Stephan Herhut authored
Delaying the logging until after module creating ensures that the module has been fully parsed and hence that all names are available. Also refactors the code to bring all code logging/disassembling into one place. Change-Id: I8219d70876d2ccd3a5ffb8250b46fdf60a46fe6c Reviewed-on: https://chromium-review.googlesource.com/973443Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#52146}
-