1. 12 Jul, 2016 1 commit
  2. 11 Jul, 2016 1 commit
  3. 09 Jul, 2016 1 commit
  4. 08 Jul, 2016 2 commits
  5. 06 Jul, 2016 1 commit
    • lpy's avatar
      Expose TickSample and its APIs in v8-profiler.h · 3172f6a9
      lpy authored
      We want to eventually move the profiling functionality out of V8 as library,
      this patch exposes TickSample and its APIs in v8-profiler.h so that when
      embedders use library, they can have more details.
      
      Minor change: Rename tick-sample.[h|cc] to simulator-helper.[h|cc].
      
      BUG=v8:4789
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2105943002
      Cr-Commit-Position: refs/heads/master@{#37564}
      3172f6a9
  6. 04 Jul, 2016 1 commit
    • lpy's avatar
      Split Ticker into two samplers. · 3ca49d9a
      lpy authored
      Currently there are two logic in Ticker, one is to try to request a
      pre-allocated TickSample from CpuProfiler and then initialize it, and if the
      request fails, it will initialize a local TickSample. The other is it will pass
      an initialized TickSample to Profiler to log into v8.log.
      
      This patch splits Ticker into two samplers, the first one remains in log.cc to
      collect samples and pass to Profiler for logging, the second one will be called
      by ProfilerEventsProcessor, and only use the circular queue only.
      
      BUG=v8:4789
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2108393002
      Cr-Commit-Position: refs/heads/master@{#37506}
      3ca49d9a
  7. 30 Jun, 2016 1 commit
  8. 28 Jun, 2016 1 commit
    • alph's avatar
      Fix MSAN error on arm64 bot. · ca1dcc9c
      alph authored
      The main fix is to mark stack memory the SafeStackFrameIterator
      accesses as initialied.
      
      Drive-by: Make sure we bail out when the simulator is in the
      process of updating FP/SP registers.
      
      BUG=v8:5156
      
      Review-Url: https://codereview.chromium.org/2104763002
      Cr-Commit-Position: refs/heads/master@{#37315}
      ca1dcc9c
  9. 23 Jun, 2016 1 commit
  10. 22 Jun, 2016 1 commit
    • lpy's avatar
      [Reland] Refactor CpuProfiler. · 04f710ac
      lpy authored
      Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
      from Logger, constructs and stores CodeEventsContainer. This patch is part of
      the effort to split the logic of CodeEventListener as ProfilerListener out of
      the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
      to code events, construct code event to CodeEventsContainer and pass it to code
      event handler.
      
      The reason we refactor CpuProfiler is that eventually we want to move
      CpuProfiler as part of sampler library and code event listener should stay
      inside V8.
      
      Main changes:
      1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
      functionality and the ProfilerListener listening to code events from Logger.
      2. Created CodeEventObserver and made CpuProfiler inherit from it.
      ProfilerListener will have a list of observers and call CodeEventHandler once a
      code event is created.
      3. Moved code entry list from CodeEntry to ProfilerListener.
      
      Minor changes:
      1. Moved static code entry as part of CodeEntry.
      2. Added ProfilerListener to Logger.
      
      BUG=v8:4789
      
      Committed: https://crrev.com/cb59fc1facc9b390e2c7544b4da56a4e0a9b3222
      Review-Url: https://codereview.chromium.org/2053523003
      Cr-Original-Commit-Position: refs/heads/master@{#37112}
      Cr-Commit-Position: refs/heads/master@{#37195}
      04f710ac
  11. 20 Jun, 2016 2 commits
    • lpy's avatar
      Revert of Refactor CpuProfiler. (patchset #13 id:240001 of... · d6be0bf6
      lpy authored
      Revert of Refactor CpuProfiler. (patchset #13 id:240001 of https://codereview.chromium.org/2053523003/ )
      
      Reason for revert:
      MIPS compilation error.
      
      Original issue's description:
      > Refactor CpuProfiler.
      >
      > Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
      > from Logger, constructs and stores CodeEventsContainer. This patch is part of
      > the effort to split the logic of CodeEventListener as ProfilerListener out of
      > the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
      > to code events, construct code event to CodeEventsContainer and pass it to code
      > event handler.
      >
      > The reason we refactor CpuProfiler is that eventually we want to move
      > CpuProfiler as part of sampler library and code event listener should stay
      > inside V8.
      >
      > Main changes:
      > 1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
      > functionality and the ProfilerListener listening to code events from Logger.
      > 2. Created CodeEventObserver and made CpuProfiler inherit from it.
      > ProfilerListener will have a list of observers and call CodeEventHandler once a
      > code event is created.
      > 3. Moved code entry list from CodeEntry to ProfilerListener.
      >
      > Minor changes:
      > 1. Moved static code entry as part of CodeEntry.
      > 2. Added ProfilerListener to Logger.
      >
      > BUG=v8:4789
      >
      > Committed: https://crrev.com/cb59fc1facc9b390e2c7544b4da56a4e0a9b3222
      > Cr-Commit-Position: refs/heads/master@{#37112}
      
      TBR=alph@chromium.org,jochen@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/2079273003
      Cr-Commit-Position: refs/heads/master@{#37113}
      d6be0bf6
    • lpy's avatar
      Refactor CpuProfiler. · cb59fc1f
      lpy authored
      Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
      from Logger, constructs and stores CodeEventsContainer. This patch is part of
      the effort to split the logic of CodeEventListener as ProfilerListener out of
      the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
      to code events, construct code event to CodeEventsContainer and pass it to code
      event handler.
      
      The reason we refactor CpuProfiler is that eventually we want to move
      CpuProfiler as part of sampler library and code event listener should stay
      inside V8.
      
      Main changes:
      1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
      functionality and the ProfilerListener listening to code events from Logger.
      2. Created CodeEventObserver and made CpuProfiler inherit from it.
      ProfilerListener will have a list of observers and call CodeEventHandler once a
      code event is created.
      3. Moved code entry list from CodeEntry to ProfilerListener.
      
      Minor changes:
      1. Moved static code entry as part of CodeEntry.
      2. Added ProfilerListener to Logger.
      
      BUG=v8:4789
      
      Review-Url: https://codereview.chromium.org/2053523003
      Cr-Commit-Position: refs/heads/master@{#37112}
      cb59fc1f
  12. 15 Jun, 2016 1 commit
  13. 14 Jun, 2016 2 commits
  14. 13 Jun, 2016 2 commits
  15. 10 Jun, 2016 1 commit
  16. 09 Jun, 2016 1 commit
  17. 07 Jun, 2016 1 commit
  18. 06 Jun, 2016 1 commit
  19. 31 May, 2016 2 commits
  20. 26 May, 2016 2 commits
    • mythria's avatar
      Adds support for collecting statistics about code and its metadata. · c1af2821
      mythria authored
      Adds an API to request the total size of code/bytecode and their associated
      metadata in the heap. When requested, the code_space, old_space and
      large_object_space  is scanned to find any code/bytecode array objects.
      This could be slow and hence it should be used with caution.
      
      BUG=v8:5019
      LOG=N
      
      Review-Url: https://codereview.chromium.org/1997363002
      Cr-Commit-Position: refs/heads/master@{#36534}
      c1af2821
    • 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
  21. 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
  22. 24 May, 2016 1 commit
  23. 20 May, 2016 1 commit
    • ulan's avatar
      Workaround for glibc semaphore bug. · 84ee9470
      ulan authored
      Instead of dynamically creating semaphore for each page parallel job,
      we create one semaphore for MarkCompact and reuse it.
      
      This patch also removes all instrumentation code that was added to
      help with investigation.
      
      BUG=chromium:609249
      LOG=NO
      
      Review-Url: https://codereview.chromium.org/1998213002
      Cr-Commit-Position: refs/heads/master@{#36407}
      84ee9470
  24. 18 May, 2016 2 commits
  25. 13 May, 2016 1 commit
  26. 12 May, 2016 1 commit
    • oth's avatar
      [interpreter] Introduce bytecode generation pipeline. · 02b7373a
      oth authored
      This change introduces a pipeline for the final stages of
      bytecode generation.
      
      The peephole optimizer is made distinct from the BytecodeArrayBuilder.
      
      A new BytecodeArrayWriter is responsible for writing bytecode. It
      also keeps track of the maximum register seen and offers a potentially
      smaller frame size.
      
      R=rmcilroy@chromium.org
      LOG=N
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/1947403002
      Cr-Commit-Position: refs/heads/master@{#36220}
      02b7373a
  27. 09 May, 2016 1 commit
  28. 02 May, 2016 1 commit
  29. 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
  30. 18 Apr, 2016 1 commit
    • ssanfilippo's avatar
      Portable Linux perf map formatting. · 15defcc4
      ssanfilippo authored
      Linux perf expects hex literals without a leading 0x, while some
      implementations of printf might prepend one when using the %p format
      for pointers, leading to wrongly formatted JIT symbols maps.
      
      Instead, use V8PRIxPTR format string and cast pointer to uintpr_t,
      since we have control over the exact output format of integers.
      
      LOG=N
      
      Review URL: https://codereview.chromium.org/1885033005
      
      Cr-Commit-Position: refs/heads/master@{#35571}
      15defcc4
  31. 12 Apr, 2016 1 commit
  32. 11 Apr, 2016 1 commit