- 06 May, 2016 1 commit
-
-
clemensh authored
This changes different locations to extract the reference to the wasm object and the function index from the stack trace, and make it available through all the APIs which process stack traces. The javascript CallSite object now has the new methods isWasm(), getWasmObject() and getWasmFunctionIndex(); the byte offset is available via getPosition(). Function names of wasm frames should be fully functional with this commit, position information works reliably for calls, but not for traps like unreachable or out-of-bounds accesses. R=titzer@chromium.org, yangguo@chromium.org Review-Url: https://codereview.chromium.org/1909353002 Cr-Commit-Position: refs/heads/master@{#36067}
-
- 04 May, 2016 2 commits
-
-
alph authored
BUG=v8:4959 LOG=N Review-Url: https://codereview.chromium.org/1949693003 Cr-Commit-Position: refs/heads/master@{#36042}
-
ofrobots authored
Sampling heap profiler keeps weak references. These should be marked independent so that the weak callback can be dispatched on new space collections. BUG=v8:4959 LOG=N R=ulan@chromium.org Review-Url: https://codereview.chromium.org/1945193002 Cr-Commit-Position: refs/heads/master@{#36012}
-
- 03 May, 2016 1 commit
-
-
yangguo authored
v8::Object::{Set,Get,Delete}HiddenValue have long been deprecated. Please use v8::Object::{Set,Has,Get}Private instead. R=jochen@chromium.org LOG=Y Review-Url: https://codereview.chromium.org/1942233002 Cr-Commit-Position: refs/heads/master@{#35977}
-
- 02 May, 2016 1 commit
-
-
lpy authored
Currently GetStackSample doesn't support simulator, thus sampler is aware of simulator, but since we are moving it out, it shouldn't have knowledge of simulator. This patch moves the logic using simulator accessible to Isolate::GetStackSample, so that it supports simulator. BUG=v8:4956 LOG=n Review-Url: https://codereview.chromium.org/1926863003 Cr-Commit-Position: refs/heads/master@{#35944}
-
- 28 Apr, 2016 2 commits
-
-
alph authored
Review-Url: https://codereview.chromium.org/1919223003 Cr-Commit-Position: refs/heads/master@{#35884}
-
alph authored
Do not hold bare pointers to scripts during sampling heap tree construction, as string conversions may lead to an allocation that in turn could cause GC which renders all pointers invalid. Review-Url: https://codereview.chromium.org/1929813002 Cr-Commit-Position: refs/heads/master@{#35883}
-
- 22 Apr, 2016 1 commit
-
-
lpy authored
Currently we are using UnsafeCurrent in async signal handler to acquire the isolate of VM thread, but we want to get rid of that since it prevents V8 from being thread agnostic. This patch replaces UnsafeCurrent with a static map, where we store a map of samplers for threads, and makes it accessible by signal handler. BUG=v8:4889 LOG=n Review URL: https://codereview.chromium.org/1900473002 Cr-Commit-Position: refs/heads/master@{#35722}
-
- 21 Apr, 2016 1 commit
-
-
mstarzinger authored
This removes the CompilationInfo argument from one of the logging functions where it is unused. The long-term goal is to not pass around the CompilationInfo at all. The assumption that the CompilationInfo is available is incompatible with serialized code, where compilation has happened during building time of V8 itself. R=yangguo@chromium.org Review URL: https://codereview.chromium.org/1901353003 Cr-Commit-Position: refs/heads/master@{#35705}
-
- 16 Apr, 2016 1 commit
-
-
machenbach authored
Revert of Get rid of UnsafeCurrent in Sampler (patchset #12 id:220001 of https://codereview.chromium.org/1858143003/ ) Reason for revert: [Sheriff] Breaks tsan: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/8999 Original issue's description: > Get rid of UnsafeCurrent in Sampler > > Currently we are using UnsafeCurrent in async signal handler to acquire the > isolate of VM thread, but we want to get rid of that since it prevents V8 from > being thread agnostic. > > This patch replaces UnsafeCurrent with a static map, where we store a map of > samplers for threads, and makes it accessible by signal handler. > > BUG=v8:4889 > LOG=n > > Committed: https://crrev.com/62fb4775fea0d56d8a175baf1d902213f6752168 > Cr-Commit-Position: refs/heads/master@{#35541} TBR=jochen@chromium.org,alph@chromium.org,fmeawad@chromium.org,yangguo@chromium.org,lpy@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:4889 Review URL: https://codereview.chromium.org/1897673002 Cr-Commit-Position: refs/heads/master@{#35545}
-
- 15 Apr, 2016 1 commit
-
-
lpy authored
Currently we are using UnsafeCurrent in async signal handler to acquire the isolate of VM thread, but we want to get rid of that since it prevents V8 from being thread agnostic. This patch replaces UnsafeCurrent with a static map, where we store a map of samplers for threads, and makes it accessible by signal handler. BUG=v8:4889 LOG=n Review URL: https://codereview.chromium.org/1858143003 Cr-Commit-Position: refs/heads/master@{#35541}
-
- 13 Apr, 2016 2 commits
-
-
jyan authored
size_t defined as unsigned long on 31-bit s390. R=jochen@chromium.org, jfb@chromium.org TBR=ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/1889623002 Cr-Commit-Position: refs/heads/master@{#35457}
-
ofrobots authored
Left trimming assumes that nobody other than the JSArray has a reference to the backing store. Sampling heap profiler may profile the backing store and keep a reference too it. This reference was never updated on a left-trim, causing a crash. R=alph@chromium.org, hpayer@chromium.org, mattloring@google.com BUG= Review URL: https://codereview.chromium.org/1885723002 Cr-Commit-Position: refs/heads/master@{#35449}
-
- 12 Apr, 2016 1 commit
-
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. Original CL: https://codereview.chromium.org/1869433004 Reverted in: https://codereview.chromium.org/1867383002 Reverted again in: https://codereview.chromium.org/1877823003 Reverts due to non-CQ bots: - First: v8_win_dbg, v8_win64_dbg, v8_mac_dbg - Second: gc mole (added to v8_linux_rel_ng for this patch) R= jochen@chromium.org TBR= ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org Review URL: https://codereview.chromium.org/1872203005 Cr-Commit-Position: refs/heads/master@{#35423}
-
- 11 Apr, 2016 2 commits
-
-
https://codereview.chromium.org/1877453002/machenbach authored
Reason for revert: Breaks gc mole: https://build.chromium.org/p/client.v8/builders/V8%20Linux/builds/9421 Original issue's description: > Fix printf formats > > The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: > > - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. > - Uses it appropriately. > - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). > - Fixes a bunch of incorrect formats. > > Original CL: https://codereview.chromium.org/1869433004 > Reverted in: https://codereview.chromium.org/1867383002 > > R= jochen@chromium.org > TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org > > Committed: https://crrev.com/bf505329288e1b75bab0e6800371a9aac40fa5cc > Cr-Commit-Position: refs/heads/master@{#35394} TBR=jochen@chromium.org,ahaas@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,jfb@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1877823003 Cr-Commit-Position: refs/heads/master@{#35396}
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. Original CL: https://codereview.chromium.org/1869433004 Reverted in: https://codereview.chromium.org/1867383002 R= jochen@chromium.org TBR= bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org Review URL: https://codereview.chromium.org/1877453002 Cr-Commit-Position: refs/heads/master@{#35394}
-
- 08 Apr, 2016 2 commits
-
-
jfb authored
Revert of Fix printf formats (patchset #8 id:140001 of https://codereview.chromium.org/1869433004/ ) Reason for revert: One small issue easily fixed here: https://codereview.chromium.org/1867333003/ But it looks like MSVS 2013 doesn't like some of the formats and exists with the unhelpful: Stderr: f:\dd\vctools\crt\crtw32\stdio\output.c(1125) : Assertion failed: ("Incorrect format specifier", 0) It's easier to revert for now, I'll dig more into the docs: https://msdn.microsoft.com/en-us/library/56e442dc(v=vs.120).aspx https://msdn.microsoft.com/en-us/library/tcxf1dw6(v=vs.120).aspx And then resubmit, making sure I run these bots. Original issue's description: > Fix printf formats > > The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: > > - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. > - Uses it appropriately. > - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). > - Fixes a bunch of incorrect formats. > > R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org > > Committed: https://crrev.com/6ebf9fbb93d31f9be41156a3325d58704ed4933d > Cr-Commit-Position: refs/heads/master@{#35365} TBR=jochen@chromium.org,bmeurer@chromium.org,yangguo@chromium.org,ahaas@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1867383002 Cr-Commit-Position: refs/heads/master@{#35366}
-
jfb authored
The usage of __attribute__((format(x, y)) was either wrong or missing from multiple functions, leading to erroneous formats. This CL: - Imports PRINTF_FORMAT macro from Chrome's src/base/compiler-specific.h. - Uses it appropriately. - Imports Chrome's base/format_macros.h mainly to fix size_t formats (further cleanup could be done). - Fixes a bunch of incorrect formats. R= jochen@chromium.org, bmeurer@chromium.org, yangguo@chromium.org, ahaas@chromium.org Review URL: https://codereview.chromium.org/1869433004 Cr-Commit-Position: refs/heads/master@{#35365}
-
- 06 Apr, 2016 3 commits
-
-
mattloring authored
If no objects allocated at a location are live when a profile is collected we report a zero count sample. This is confusing to those looking at the profiles and will leak memory. We now delete allocations once the number of sampled live objects for that location reaches zero. R=ofrobots@google.com BUG= Review URL: https://codereview.chromium.org/1828333002 Cr-Commit-Position: refs/heads/master@{#35305}
-
clemensh authored
This particularly changes the StackTraceFrameIterator such that is not only returs JavaScriptFrames, but also WasmFrames. Because of that, some methods (Summarize, function, receiver) were pulled up to the StandardFrame, with specializations in JavaScriptFrame and WasmFrame. R=jfb@chromium.org, titzer@chromium.org BUG= Review URL: https://codereview.chromium.org/1861283002 Cr-Commit-Position: refs/heads/master@{#35293}
-
verwaest authored
The previous code cache system required stubs to be marked with a StubType, causing them to be inserted either into a fixed array or into a dictionary-mode code cache. This could cause names to be in both cases, and lookup would just find the "fast" one first. Given that we clear out the caches on each GC, the memory overhead shouldn't be too bad. Additionally, the dictionary itself should just stay linear for small arrays; that's faster anyway. This CL additionally deletes some dead IC code. BUG= Review URL: https://codereview.chromium.org/1846963002 Cr-Commit-Position: refs/heads/master@{#35291}
-
- 31 Mar, 2016 1 commit
-
-
mattloring authored
If a script is unloaded between the collection of an allocation and the tranlation of an allocation profile, the profiler will segfault. With this change, we report unloaded scripts as having no line number,column number, or name. R=ofrobots@google.com BUG= Review URL: https://codereview.chromium.org/1846723002 Cr-Commit-Position: refs/heads/master@{#35147}
-
- 24 Mar, 2016 1 commit
-
-
alph authored
It might happen a script is gone during profiling. Handle that case. Review URL: https://codereview.chromium.org/1826953003 Cr-Commit-Position: refs/heads/master@{#35052}
-
- 23 Mar, 2016 1 commit
-
-
alph authored
BUG=590936 LOG=N Review URL: https://codereview.chromium.org/1816393002 Cr-Commit-Position: refs/heads/master@{#35040}
-
- 17 Mar, 2016 2 commits
-
-
rmcilroy authored
Functions with builtin ids can be compiled with Ignition, so it is no longer an option to overlap the bytecode_array field with the builtin id on the SharedFunctionInfo object. Instead overlap it with the inferred_name, which is only used for debug and so shouldn't be required for functions with builtin ids. This result in the inferred_name field being renamed to function_identifier, and adding typed accessors for inferred_name and builtin_function_id. This is required to build the snapshot with --no-lazy. BUG=v8:4280 LOG=N Review URL: https://codereview.chromium.org/1801023002 Cr-Commit-Position: refs/heads/master@{#34867}
-
jyan authored
GCC on S390 31-bit treats size_t as 'long unsigned int', which is incompatible with %d format specifier that expects an 'int'. Introduce a new V8 SIZET PREFIX to use %zd instead. R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com,yangguo@chromium.org BUG= Review URL: https://codereview.chromium.org/1813453002 Cr-Commit-Position: refs/heads/master@{#34857}
-
- 15 Mar, 2016 1 commit
-
-
alph authored
Use script_url when the script name is not available. BUG=chromium:463108 LOG=N Review URL: https://codereview.chromium.org/1796353002 Cr-Commit-Position: refs/heads/master@{#34793}
-
- 10 Mar, 2016 1 commit
-
-
joransiu authored
Add S390 platform specific \#includes across various common files. Add S390 CPU features to enum. Add S390 implementation to extract sp/fp/pc from signal context. R=danno@chromium.org,jkummerow@chromium.org,jochen@chromium.org,jyan@ca.ibm.com,michael_dawson@ca.ibm.com,mbrandy@us.ibm.com BUG= Review URL: https://codereview.chromium.org/1777593003 Cr-Commit-Position: refs/heads/master@{#34674}
-
- 04 Mar, 2016 2 commits
-
-
mbrandy authored
For platforms that use function descriptors (currently AIX and PPC64BE), log an external callback's entrypoint address rather than its function descriptor address. R=jkummerow@chromium.org, michael_dawson@ca.ibm.com TEST=cctest/test-cpu-profiler/JsNativeJsSample BUG= Review URL: https://codereview.chromium.org/1752173003 Cr-Commit-Position: refs/heads/master@{#34505}
-
bradnelson authored
Frames entering of inside wasm don't have a function or context argument. Adding distinct wasm frame and function types to express this. Fixes a GC issue on several embenchen wasm tests, reenabling them. BUG= https://code.google.com/p/v8/issues/detail?id=4203 TEST=mjsunit/wasm/embenchen R=titzer@chromium.org,aseemgarg@chromium.org,jfb@chromium.org,yangguo@chromium.org LOG=N Review URL: https://codereview.chromium.org/1764603003 Cr-Commit-Position: refs/heads/master@{#34476}
-
- 02 Mar, 2016 1 commit
-
-
rmcilroy authored
Add support to log source position offsets to the profiler. As part of this change PositionsRecorder is split into two, with the subset needed by log.cc moved into log.h and the remainder kept in assembler.h as AssemblerPositionsRecorder. The interpreter's source position table builder is updated to log positions when the profiler is active. BUG=v8:4766 LOG=N Review URL: https://codereview.chromium.org/1737043002 Cr-Commit-Position: refs/heads/master@{#34416}
-
- 01 Mar, 2016 1 commit
-
-
alph authored
BUG=575466 LOG=N Review URL: https://codereview.chromium.org/1740073002 Cr-Commit-Position: refs/heads/master@{#34376}
-
- 26 Feb, 2016 1 commit
-
-
rmcilroy authored
Adds support for cpu profiler logging to the interpreter. Modifies the the API to be passed AbstractCode objects instead of Code objects, and adds extra functions to AbstractCode which is required by log.cc and cpu-profiler.cc. The main change in sampler.cc is to determine if a stack frame is an interpreter stack frame, and if so, use the bytecode address as the pc for that frame. This allows sampling of bytecode functions. This requires adding support to SafeStackIterator to determine if a frame is interpreted, which we do by checking the PC against pre-stored addresses for the start and end of interpreter entry builtins. Also removes CodeDeleteEvents which are dead code and haven't been reported for some time. Still to do is tracking source positions which will be done in a followup CL. BUG=v8:4766 LOG=N Review URL: https://codereview.chromium.org/1728593002 Cr-Commit-Position: refs/heads/master@{#34321}
-
- 25 Feb, 2016 2 commits
-
-
mattloring authored
It is possible for JS objects to be allocated while we are retrieving the profile. These JS objects can in turn end up getting sampled by the profiler. Adding these to the profile data structures invalidates the iterators that are presently in flight. This change prevents such concurrent modifications from affecting the retrieve operation. BUG= Review URL: https://codereview.chromium.org/1735733002 Cr-Commit-Position: refs/heads/master@{#34298}
-
ulan authored
BUG=chromium:589413 LOG=NO Review URL: https://codereview.chromium.org/1733333002 Cr-Commit-Position: refs/heads/master@{#34295}
-
- 24 Feb, 2016 1 commit
-
-
mattloring authored
Implements poisson unsampling. A poisson process is used to determine which samples to collect based on a sample rate. Unsampling will approximate the true number of allocations at each site taking into account that smaller allocations are less likley to be sampled. This work was originally being done in the agent that consumes profiles but it is more efficient to do it here and individual consumers of the API should not have to worry about the mathematical details of the sampling process. R=ofrobots@google.com BUG= Review URL: https://codereview.chromium.org/1706343002 Cr-Commit-Position: refs/heads/master@{#34234}
-
- 22 Feb, 2016 1 commit
-
-
ulan authored
Currently AllocationSite skips the weak_next pointer in IterateBody and IsValidSlot. This is not correct because the weak_next is a valid slot in AllocationSite. BUG= Review URL: https://codereview.chromium.org/1719903002 Cr-Commit-Position: refs/heads/master@{#34192}
-
- 19 Feb, 2016 3 commits
-
-
alph authored
BUG=559304 LOG=N Review URL: https://codereview.chromium.org/1709873002 Cr-Commit-Position: refs/heads/master@{#34168}
-
mattloring authored
R=ofrobots@google.com BUG= Review URL: https://codereview.chromium.org/1712893002 Cr-Commit-Position: refs/heads/master@{#34161}
-
machenbach authored
Reland of Sampling heap profiler data structure changes (patchset #1 id:1 of https://codereview.chromium.org/1708363002/ ) Reason for revert: Failure keeps lurking around after the revert. I'll reland, sorry for the inconvenience! Original issue's description: > Revert of Sampling heap profiler data structure changes (patchset #10 id:180001 of https://codereview.chromium.org/1697903002/ ) > > Reason for revert: > [Sheriff] Speculative revert for cpu profiler crashes on chromebooks: > https://build.chromium.org/p/client.v8/builders/V8%20Arm%20-%20debug/builds/549 > https://build.chromium.org/p/client.v8/builders/V8%20Arm%20-%20debug/builds/550 > > Original issue's description: > > Sampling heap profiler data structure changes > > > > Previously, the sampling heap profiler stored a list of samples and then > > built a tree representation when the profile was queried by calling > > GetAllocationProfile. This change reduces duplication by removing stacks > > from all samples. Also, less information is stored in the tree > > maintained by the profiler and remaining information (script name, line > > no, etc) is resolved when a profile is requested. > > > > BUG= > > > > Committed: https://crrev.com/cdd55e2a3717723492d76f66810bf56b8de7f198 > > Cr-Commit-Position: refs/heads/master@{#34119} > > TBR=ofrobots@google.com,ulan@chromium.org,hpayer@chromium.org,mattloring@google.com > # Skipping CQ checks because original CL landed less than 1 days ago. > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/4578e52aefb8c4727742ce2e254613e482fdad1f > Cr-Commit-Position: refs/heads/master@{#34128} TBR=ofrobots@google.com,ulan@chromium.org,hpayer@chromium.org,mattloring@google.com # Skipping CQ checks because original CL landed less than 1 days ago. Review URL: https://codereview.chromium.org/1714493003 Cr-Commit-Position: refs/heads/master@{#34140}
-