1. 06 May, 2016 1 commit
    • clemensh's avatar
      [wasm] Make wasm info available on the stack trace · a4cd1eef
      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}
      a4cd1eef
  2. 04 May, 2016 2 commits
  3. 03 May, 2016 1 commit
  4. 02 May, 2016 1 commit
    • lpy's avatar
      Make Isolate::GetStackSample API support simulator · b027b623
      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}
      b027b623
  5. 28 Apr, 2016 2 commits
  6. 22 Apr, 2016 1 commit
    • lpy's avatar
      Get rid of UnsafeCurrent in Sampler · ff7e6def
      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}
      ff7e6def
  7. 21 Apr, 2016 1 commit
    • mstarzinger's avatar
      [profiler] Remove obsolete CompilationInfo argument. · 6f43e1f5
      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}
      6f43e1f5
  8. 16 Apr, 2016 1 commit
  9. 15 Apr, 2016 1 commit
    • lpy's avatar
      Get rid of UnsafeCurrent in Sampler · 62fb4775
      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}
      62fb4775
  10. 13 Apr, 2016 2 commits
  11. 12 Apr, 2016 1 commit
  12. 11 Apr, 2016 2 commits
  13. 08 Apr, 2016 2 commits
    • jfb's avatar
      Revert of Fix printf formats (patchset #8 id:140001 of... · 4c4fdc2d
      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}
      4c4fdc2d
    • jfb's avatar
      Fix printf formats · 6ebf9fbb
      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}
      6ebf9fbb
  14. 06 Apr, 2016 3 commits
    • mattloring's avatar
      Eliminate zero count allocations from profile · 3184aff9
      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}
      3184aff9
    • clemensh's avatar
      Prepare StackFrame hierarchy & iterators for WASM · 08454486
      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}
      08454486
    • verwaest's avatar
      Use a dictionary-mode code cache on the map rather than a dual system. · d2eb555e
      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}
      d2eb555e
  15. 31 Mar, 2016 1 commit
    • mattloring's avatar
      Gracefully handle unloaded scripts · 607143d4
      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}
      607143d4
  16. 24 Mar, 2016 1 commit
  17. 23 Mar, 2016 1 commit
  18. 17 Mar, 2016 2 commits
    • rmcilroy's avatar
      [Interpreter]: Move builtin-id from function_data to function_identifier. · 6bdb9705
      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}
      6bdb9705
    • jyan's avatar
      S390: Add Printf format specifier · da8b4fa7
      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}
      da8b4fa7
  19. 15 Mar, 2016 1 commit
  20. 10 Mar, 2016 1 commit
    • joransiu's avatar
      S390: Platform specific includes in common files · daea0e75
      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}
      daea0e75
  21. 04 Mar, 2016 2 commits
  22. 02 Mar, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Log source positions for bytecode arrays. · d5820158
      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}
      d5820158
  23. 01 Mar, 2016 1 commit
  24. 26 Feb, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Add support for cpu profiler logging. · cb29f9cd
      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}
      cb29f9cd
  25. 25 Feb, 2016 2 commits
  26. 24 Feb, 2016 1 commit
    • mattloring's avatar
      Unsampling for the sampling heap profiler · 50537bad
      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}
      50537bad
  27. 22 Feb, 2016 1 commit
  28. 19 Feb, 2016 3 commits