1. 04 Jan, 2011 1 commit
  2. 16 Dec, 2010 1 commit
  3. 07 Dec, 2010 4 commits
  4. 25 Nov, 2010 1 commit
  5. 27 Oct, 2010 1 commit
  6. 25 Oct, 2010 3 commits
  7. 20 Oct, 2010 1 commit
  8. 19 Oct, 2010 1 commit
    • vitalyr@chromium.org's avatar
      Support profiling based on linux kernel performance events. · e6b33bd2
      vitalyr@chromium.org authored
      Since 2.6.31 perf_events interface has been available in the
      kernel. There's a nice tool called "perf" (linux-2.6/tools/perf) that
      uses this interface and provides capabilities similar to oprofile. The
      simplest form of its usage is just dumping the raw log (trace) of
      events generated by the kernel. In this patch I'm adding a script
      (tools/ll_prof.py) to build profiles based on perf trace and our code
      log. All the heavy-lifting is done by perf. Compared to oprofile agent
      this approach does not require recompilation and supports code moving
      garbage collections.
      
      Expected usage is documented in the ll_prof's help. Basically one
      should run V8 under perf passing --ll-prof flag and then the produced
      logs can be analyzed by tools/ll_prof.py.
      
      The new --ll-prof flag enables logging of generated code object
      locations and names (like --log-code), and also of their bodies, which
      can be later disassembled and annotated by the script.
      
      Review URL: http://codereview.chromium.org/3831002
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5663 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      e6b33bd2
  9. 18 Oct, 2010 1 commit
  10. 30 Sep, 2010 1 commit
  11. 28 Sep, 2010 2 commits
  12. 24 Sep, 2010 1 commit
  13. 16 Sep, 2010 1 commit
  14. 30 Aug, 2010 1 commit
  15. 25 Jun, 2010 1 commit
  16. 07 Jun, 2010 1 commit
  17. 18 May, 2010 1 commit
    • mikhail.naganov@gmail.com's avatar
      CPU profiler: add secure profiles by filtering out functions using security tokens. · 3d7ce8ac
      mikhail.naganov@gmail.com authored
      As several pages can run in a single V8 instance, it is possible to
      have functions from different security contexts intermixed in a single
      CPU profile.  To avoid exposing function names from one page to
      another, filtering is introduced.
      
      The basic idea is that instead of capturing return addresses from
      stack, we're now capturing JSFunction addresses (as we anyway work
      only with JS stack frames.)  Each JSFunction can reach out for
      context's security token. When providing a profile to a page, the
      profile is filtered using the security token of caller page. Any
      functions with different security tokens are filtered out (yes, we
      only do fast path check for now) and their ticks are attributed to
      their parents.
      
      Review URL: http://codereview.chromium.org/2083005
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      3d7ce8ac
  18. 05 May, 2010 1 commit
  19. 12 Apr, 2010 1 commit
  20. 08 Apr, 2010 2 commits
  21. 07 Apr, 2010 1 commit
  22. 06 Apr, 2010 1 commit
  23. 11 Mar, 2010 1 commit
  24. 01 Mar, 2010 2 commits
  25. 18 Feb, 2010 1 commit
  26. 17 Feb, 2010 1 commit
  27. 05 Feb, 2010 1 commit
  28. 04 Feb, 2010 1 commit
  29. 27 Jan, 2010 1 commit
  30. 25 Jan, 2010 1 commit
  31. 21 Jan, 2010 1 commit
    • mikhail.naganov@gmail.com's avatar
      Fix issue 553: function frame is skipped in profile when compare stub is called. · 999e3fca
      mikhail.naganov@gmail.com authored
      The problem appeared due to a fact that stubs doesn't create a stack
      frame, reusing the stack frame of the caller function. When building
      stack traces, the current function is retrieved from PC, and its
      callees are retrieved by traversing the stack backwards. Thus, for
      stubs, the stub itself was discovered via PC, and then stub's caller's
      caller was retrieved from stack.
      
      To fix this problem, a pointer to JSFunction object is now captured
      from the topmost stack frame, and is saved into stack trace log
      record. Then a simple heuristics is applied whether a referred
      function should be added to decoded stack, or not, to avoid reporting
      the same function twice (from PC and from the pointer.)
      
      BUG=553
      TEST=added to mjsunit/tools/tickprocessor
      
      Review URL: http://codereview.chromium.org/546089
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3673 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      999e3fca
  32. 18 Jan, 2010 1 commit
    • mikhail.naganov@gmail.com's avatar
      Fix issue 571: display descriptive names for code objects from snapshot. · 37d39724
      mikhail.naganov@gmail.com authored
      As this is only needed for internal profiling (not for DevTools),
      the following approach had been chosen:
      
       - during snapshot creation, positions of serialized objects inside
         a snapshot are logged;
      
       - then during V8 initialization, positions of deserealized objects
         are logged;
      
       - those positions are used for retrieving code objects names from
         snapshot creation log, which needs to be supplied to tick processor
         script.
      
      Positions logging is controlled with the new flag: --log_snapshot_positions.
      This flag is turned off by default, and this adds no startup penalty.
      
      To plug this fix to Golem, the following actions are needed:
      
       - logs created using 'mksnapshot' need to be stored along with VM images;
      
       - tick processor script needs to be run with '--snapshot-log=...' cmdline
         argument.
      
      BUG=571
      
      Review URL: http://codereview.chromium.org/551062
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      37d39724