1. 30 May, 2017 1 commit
  2. 17 Mar, 2017 1 commit
  3. 08 Jul, 2016 1 commit
  4. 26 May, 2016 1 commit
    • lpy's avatar
      Reland: Create libsampler as V8 sampler library. · a0198c0f
      lpy authored
      This patch does five things:
      
      1. Extracts sampler as libsampler to provide sampling functionality support.
      2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting.
      3. Removes sampler.[h|cc].
      4. Moves sampling thread into log.cc as workaround to keep the --prof functionality.
      5. Creates SamplerManager to manage the relationship between samplers and threads.
      
      The reason we port hashmap.h is that in debug mode, STL containers are using
      mutexes from a mutex pool, which may lead to deadlock when using asynchronously
      signal handler.
      
      Currently libsampler is used in V8 temporarily.
      
      BUG=v8:4789
      LOG=n
      
      Committed: https://crrev.com/06cc9b7c176a6223971deaa9fbcafe1a05058c7b
      Cr-Commit-Position: refs/heads/master@{#36527}
      
      Review-Url: https://codereview.chromium.org/1922303002
      Cr-Commit-Position: refs/heads/master@{#36532}
      a0198c0f
  5. 25 May, 2016 2 commits
    • lpy's avatar
      Revert of Create libsampler as V8 sampler library. (patchset #24 id:460001 of... · 636f1e8e
      lpy authored
      Revert of Create libsampler as V8 sampler library. (patchset #24 id:460001 of https://codereview.chromium.org/1922303002/ )
      
      Reason for revert:
      V8 Linux64 TSAN failure because ThreadSanitizer indicated data race.
      
      Original issue's description:
      > Create libsampler as V8 sampler library.
      >
      > This patch does five things:
      >
      > 1. Extracts sampler as libsampler to provide sampling functionality support.
      > 2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting.
      > 3. Removes sampler.[h|cc].
      > 4. Moves sampling thread into log.cc as workaround to keep the --prof functionality.
      > 5. Creates SamplerManager to manage the relationship between samplers and threads.
      >
      > The reason we port hashmap.h is that in debug mode, STL containers are using
      > mutexes from a mutex pool, which may lead to deadlock when using asynchronously
      > signal handler.
      >
      > Currently libsampler is used in V8 temporarily.
      >
      > BUG=v8:4789
      > LOG=n
      >
      > Committed: https://crrev.com/06cc9b7c176a6223971deaa9fbcafe1a05058c7b
      > Cr-Commit-Position: refs/heads/master@{#36527}
      
      TBR=jochen@chromium.org,alph@chromium.org,fmeawad@chromium.org,yangguo@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=v8:4789
      
      Review-Url: https://codereview.chromium.org/2000323007
      Cr-Commit-Position: refs/heads/master@{#36529}
      636f1e8e
    • lpy's avatar
      Create libsampler as V8 sampler library. · 06cc9b7c
      lpy authored
      This patch does five things:
      
      1. Extracts sampler as libsampler to provide sampling functionality support.
      2. Makes SampleStack virtual so embedders can override the behaviour of sample collecting.
      3. Removes sampler.[h|cc].
      4. Moves sampling thread into log.cc as workaround to keep the --prof functionality.
      5. Creates SamplerManager to manage the relationship between samplers and threads.
      
      The reason we port hashmap.h is that in debug mode, STL containers are using
      mutexes from a mutex pool, which may lead to deadlock when using asynchronously
      signal handler.
      
      Currently libsampler is used in V8 temporarily.
      
      BUG=v8:4789
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1922303002
      Cr-Commit-Position: refs/heads/master@{#36527}
      06cc9b7c
  6. 17 May, 2016 1 commit
  7. 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
  8. 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
  9. 16 Apr, 2016 1 commit
  10. 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
  11. 04 Mar, 2016 2 commits
  12. 12 Feb, 2016 1 commit
  13. 26 Jan, 2016 1 commit
  14. 30 Sep, 2015 1 commit
  15. 28 Sep, 2015 1 commit
  16. 13 Aug, 2015 1 commit
  17. 17 Oct, 2014 1 commit
  18. 29 Sep, 2014 1 commit
  19. 30 Jun, 2014 1 commit
  20. 24 Jun, 2014 1 commit
  21. 05 Jun, 2014 1 commit
  22. 03 Jun, 2014 1 commit
  23. 26 May, 2014 3 commits
  24. 29 Apr, 2014 1 commit
  25. 25 Apr, 2014 1 commit
  26. 29 Aug, 2013 1 commit
  27. 26 Aug, 2013 1 commit
    • yurys@chromium.org's avatar
      Support higher CPU profiler sampling rate on posix systems · 4db1f475
      yurys@chromium.org authored
      New flag is added that allows to specify CPU profiler sampling rate in microseconds as command line argument. It was tested to work fine with 100us interval(currently it is 1ms). Default values are kept the same as in the current implementation. The new implementation is enabled only on POSIX platforms which use signals to collect samples. Other platforms that pause thread being sampled are to follow.
      
      SIGPROF signals are now sent on the profiler event processor thread to make sure that the processing thread does fall far behind the sampling.
      
      The patch is based on the previous one that was rolled out in r13851. The main difference is that the circular queue is not modified for now.
      
      On Linux sampling for CPU profiler is initiated on the profiler event processor thread, other platforms to follow.
      
      CPU profiler continues to use SamplingCircularQueue, we will probably replace it with a single sample buffer when Mac and Win ports support profiling on the event processing thread.
      
      When --prof option is specified profiling is initiated either on the profiler event processor thread if CPU profiler is on or on the SignalSender thread as it used to be if no CPU profiles are being collected.
      
      ProfilerEventsProcessor::ProcessEventsAndDoSample now waits in a tight loop, processing collected samples until sampling interval expires. To save CPU resources I'm planning to change that to use nanosleep as only one sample is expected in the queue at any point.
      
      BUG=v8:2814
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/21101002
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      4db1f475
  28. 10 Jul, 2013 1 commit
  29. 03 Jul, 2013 3 commits
  30. 19 Apr, 2013 1 commit
  31. 17 Apr, 2013 1 commit
  32. 15 Apr, 2013 1 commit