New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 851163 link

Starred by 3 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows , Mac
Pri: 2
Type: Feature



Sign in to add a comment

Profile task execution with the sampling profiler

Project Member Reported by wittman@chromium.org, Jun 8 2018

Issue description

Tracking bug for supporting profiling of task execution with the sampling profiler including per-task metadata.

See also related bug 839115 for supporting profiling of SchedulerWorker threads.
 
Description: Show this description
Cc: brucedaw...@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee

commit 7bcdd21d287741c1d2c7d28c2159b91de8fb35ee
Author: Xi Cheng <chengx@chromium.org>
Date: Mon Jun 11 23:37:35 2018

Remove the implementation of multiple-profile sampling

The reasons for this change are:
1) this functionality is never used;
2) it's redundant as ThreadProfiler supports periodic sampling.

This change reduces the code complexity and makes the upcoming code
refactoring to support profiling task execution much easier.

Bug: 851163
Change-Id: I16fc0cfeb1fbb7d9ff9522f92b4162ed65367e44
Reviewed-on: https://chromium-review.googlesource.com/1093473
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566203}
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/base/profiler/stack_sampling_profiler_unittest.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/chrome/common/stack_sampling_configuration.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/chrome/common/thread_profiler.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/chrome/common/thread_profiler.h
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/call_stack_profile_collector.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/call_stack_profile_collector.h
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/call_stack_profile_metrics_provider.h
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/call_stack_profile_metrics_provider_unittest.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/child_call_stack_profile_collector.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/child_call_stack_profile_collector.h
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/child_call_stack_profile_collector_unittest.cc
[modify] https://crrev.com/7bcdd21d287741c1d2c7d28c2159b91de8fb35ee/components/metrics/public/interfaces/call_stack_profile_collector.mojom

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/110fab4279ccc3166f49e1f142f6b380b92e29ae

commit 110fab4279ccc3166f49e1f142f6b380b92e29ae
Author: Xi Cheng <chengx@chromium.org>
Date: Wed Jun 13 00:33:09 2018

Rename FinishSample to ScheduleNextSample to avoid confusion

Bug: 851163
Change-Id: I2537e17a74492375c78ab210dfbdb56652040eb7
Reviewed-on: https://chromium-review.googlesource.com/1098034
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566652}
[modify] https://crrev.com/110fab4279ccc3166f49e1f142f6b380b92e29ae/base/profiler/stack_sampling_profiler.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/110fab4279ccc3166f49e1f142f6b380b92e29ae

commit 110fab4279ccc3166f49e1f142f6b380b92e29ae
Author: Xi Cheng <chengx@chromium.org>
Date: Wed Jun 13 00:33:09 2018

Rename FinishSample to ScheduleNextSample to avoid confusion

Bug: 851163
Change-Id: I2537e17a74492375c78ab210dfbdb56652040eb7
Reviewed-on: https://chromium-review.googlesource.com/1098034
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566652}
[modify] https://crrev.com/110fab4279ccc3166f49e1f142f6b380b92e29ae/base/profiler/stack_sampling_profiler.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Jun 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/98e21b9e3ea46a4ce2db35b8aa224e332e7355b3

commit 98e21b9e3ea46a4ce2db35b8aa224e332e7355b3
Author: Xi Cheng <chengx@chromium.org>
Date: Thu Jun 14 16:23:36 2018

Refactor StackSamplingProfiler::SamplingThread to make it more concise

This CL coalesces functions PerformCollectionTask(), RecordSample(), and
ScheduleNextSample() of the SamplingThread class into a new class member
function named RecordSampleTask(). Redundant code is removed.

Bug: 851163
Change-Id: I0ec209a7bebaf295e213ff7e321e52af60465bf8
Reviewed-on: https://chromium-review.googlesource.com/1100047
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567295}
[modify] https://crrev.com/98e21b9e3ea46a4ce2db35b8aa224e332e7355b3/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/98e21b9e3ea46a4ce2db35b8aa224e332e7355b3/base/profiler/stack_sampling_profiler_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Jun 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2218a0f9e72763e7952cd3da75ff777e3d5a50dd

commit 2218a0f9e72763e7952cd3da75ff777e3d5a50dd
Author: Xi Cheng <chengx@chromium.org>
Date: Thu Jun 14 20:54:28 2018

Call ScheduleShutdownIfIdle() from FinishCollection()

This Cl also corrects the indent in FinishCollection().

Bug: 851163
Change-Id: I77b255b2f9191979bca02f5453d54fc8bd1e36ee
Reviewed-on: https://chromium-review.googlesource.com/1101406
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567403}
[modify] https://crrev.com/2218a0f9e72763e7952cd3da75ff777e3d5a50dd/base/profiler/stack_sampling_profiler.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jun 18 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/000c89442cf955dc3e9f4824d98373d8db4230b5

commit 000c89442cf955dc3e9f4824d98373d8db4230b5
Author: Xi Cheng <chengx@chromium.org>
Date: Mon Jun 18 23:53:19 2018

Introduce StackProfileBuilder to generate a CallStackProfile

This CL introduces a new class StackProfileBuilder owned by StackSamplingProfiler.

This CL also refactors both Windows and Mac profile construction into the
StackProfileBuilder class to generate a StackSamplingProfiler::CallStackProfile.

Bug: 851163
Change-Id: I6acde44fc1e38ae04d1d747fe2d3843faba3a218
Reviewed-on: https://chromium-review.googlesource.com/1101462
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568239}
[modify] https://crrev.com/000c89442cf955dc3e9f4824d98373d8db4230b5/base/profiler/native_stack_sampler.h
[modify] https://crrev.com/000c89442cf955dc3e9f4824d98373d8db4230b5/base/profiler/native_stack_sampler_mac.cc
[modify] https://crrev.com/000c89442cf955dc3e9f4824d98373d8db4230b5/base/profiler/native_stack_sampler_posix.cc
[modify] https://crrev.com/000c89442cf955dc3e9f4824d98373d8db4230b5/base/profiler/native_stack_sampler_win.cc
[modify] https://crrev.com/000c89442cf955dc3e9f4824d98373d8db4230b5/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/000c89442cf955dc3e9f4824d98373d8db4230b5/base/profiler/stack_sampling_profiler.h

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/28d29bfe950047388f426f13b1816feecdea7ab3

commit 28d29bfe950047388f426f13b1816feecdea7ab3
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Jun 19 01:57:39 2018

Clean up NativeStackSamplerMac

Bug: 851163
Change-Id: I0f37ac73c90f152b05a02904967fecd33cf10b31
Reviewed-on: https://chromium-review.googlesource.com/1105286
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568294}
[modify] https://crrev.com/28d29bfe950047388f426f13b1816feecdea7ab3/base/profiler/native_stack_sampler_mac.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 19 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/afb3cbf601c7b7d6ce33f660fc84872f8298f5aa

commit afb3cbf601c7b7d6ce33f660fc84872f8298f5aa
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Jun 19 16:31:45 2018

Simplify namespace code in NativeStackSampler

Bug: 851163
Change-Id: I651da22403ba5597667549970b29d7d47a62f73b
Reviewed-on: https://chromium-review.googlesource.com/1105491
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568484}
[modify] https://crrev.com/afb3cbf601c7b7d6ce33f660fc84872f8298f5aa/base/profiler/native_stack_sampler_mac.cc
[modify] https://crrev.com/afb3cbf601c7b7d6ce33f660fc84872f8298f5aa/base/profiler/native_stack_sampler_win.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/213c68185cf7d88651d41d58434934890355c3eb

commit 213c68185cf7d88651d41d58434934890355c3eb
Author: Xi Cheng <chengx@chromium.org>
Date: Fri Jun 22 20:44:39 2018

Format native_stack_sampler_win.cc

Bug: 851163
Change-Id: Ibbb0b3e981bb7c21a7022ca7b72f2c28e6b70f06
Reviewed-on: https://chromium-review.googlesource.com/1112349
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569753}
[modify] https://crrev.com/213c68185cf7d88651d41d58434934890355c3eb/base/profiler/native_stack_sampler_win.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 22 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3

commit b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3
Author: Xi Cheng <chengx@chromium.org>
Date: Fri Jun 22 23:13:20 2018

Make ProfileBuilder responsible for module deduplication

This CL introduces new structs InternalFrame and InternalModule for sampling
data transfer from NativeStackSampler to ProfileBuilder. After the transfer,
ProfileBuilder converts InternalFrame/InternalModule to Frame/Module, and
deduplicates modules.

Bug: 851163
Change-Id: I550a80d2528688ebef95066d9781104976063950
Reviewed-on: https://chromium-review.googlesource.com/1108957
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569827}
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/base/profiler/native_stack_sampler.h
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/base/profiler/native_stack_sampler_mac.cc
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/base/profiler/native_stack_sampler_win.cc
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/components/metrics/call_stack_profile_metrics_provider_unittest.cc
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/components/metrics/public/cpp/call_stack_profile_struct_traits.h
[modify] https://crrev.com/b37053ca6b95f4fbbea22eb5ebb795fb31ffe4c3/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 25 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c724ade54756b43da388ecde3aaef4811859261d

commit c724ade54756b43da388ecde3aaef4811859261d
Author: Xi Cheng <chengx@chromium.org>
Date: Mon Jun 25 20:15:21 2018

Introduce const struct kSamplingParams to replace GetSamplingParams()

Bug: 851163
Change-Id: Ia6d200535697101d6c76edbfe2b117a3f5d3d733
Reviewed-on: https://chromium-review.googlesource.com/1113201
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570150}
[modify] https://crrev.com/c724ade54756b43da388ecde3aaef4811859261d/chrome/common/thread_profiler.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/593959cde03b0e05b2a0c00089b4b6bc1ca29380

commit 593959cde03b0e05b2a0c00089b4b6bc1ca29380
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Jun 26 00:21:28 2018

Simplify namespace code in thread_profiler.cc

Bug: 851163
Change-Id: Ic533e231e5b4f7b2d6f5df06a05cd0433efc304d
Reviewed-on: https://chromium-review.googlesource.com/1114239
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570258}
[modify] https://crrev.com/593959cde03b0e05b2a0c00089b4b6bc1ca29380/chrome/common/thread_profiler.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0c3fc7070893312f17aabbeea5e3e1a94ea3357d

commit 0c3fc7070893312f17aabbeea5e3e1a94ea3357d
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Jun 26 17:09:10 2018

Make StackSamplingProfiler take SamplingProfileBuilder during construction

This constructor change leads to the following changes:
1) The data member completed_callback_ is removed from StackSamplingProfiler
   as it is no long used.
2) Unit test StackSamplingProfilerTest::CanRunMultipleTimes is removed as this
   multi-start feature is retired.

Bug: 851163
Change-Id: I7783a3db6eeb6a99c559f08de2773e96e4b4551f
Reviewed-on: https://chromium-review.googlesource.com/1114213
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570435}
[modify] https://crrev.com/0c3fc7070893312f17aabbeea5e3e1a94ea3357d/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/0c3fc7070893312f17aabbeea5e3e1a94ea3357d/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/0c3fc7070893312f17aabbeea5e3e1a94ea3357d/base/profiler/stack_sampling_profiler_unittest.cc
[modify] https://crrev.com/0c3fc7070893312f17aabbeea5e3e1a94ea3357d/chrome/common/thread_profiler.cc

Project Member

Comment 17 by bugdroid1@chromium.org, Jun 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9c478b22a6ddfdeb21373cd52ecd72bf0063a458

commit 9c478b22a6ddfdeb21373cd52ecd72bf0063a458
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Jun 26 19:49:57 2018

Minor comment update in stack_sampling_profiler.h

This is a cleanup CL following crrev.com/c/1114213.

Bug: 851163
Change-Id: I1e694737f26a3fa5e35ef7afe486e3866b3b86db
Reviewed-on: https://chromium-review.googlesource.com/1115283
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570497}
[modify] https://crrev.com/9c478b22a6ddfdeb21373cd52ecd72bf0063a458/base/profiler/stack_sampling_profiler.h

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a3833d9febf5bf78e4ff5f9cca9b9edf89147448

commit a3833d9febf5bf78e4ff5f9cca9b9edf89147448
Author: Xi Cheng <chengx@chromium.org>
Date: Mon Jul 02 17:57:10 2018

Format stack_sampling_profiler_unittest.cc

Bug: 851163
Change-Id: I852e1c1bcab17d250ddd5dcb7f69ca7d81d0ccdc
Reviewed-on: https://chromium-review.googlesource.com/1122964
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Xi Cheng <chengx@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571941}
[modify] https://crrev.com/a3833d9febf5bf78e4ff5f9cca9b9edf89147448/base/profiler/stack_sampling_profiler_unittest.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/076119dccb5fb86d19198f2a5b7c3ad2911d6f2b

commit 076119dccb5fb86d19198f2a5b7c3ad2911d6f2b
Author: Xi Cheng <chengx@chromium.org>
Date: Mon Jul 02 21:07:33 2018

Remove redundant parentheses

Bug: 851163
Change-Id: Id21482d92a93c79097caae6f9de8bbc5d524dde0
Reviewed-on: https://chromium-review.googlesource.com/1123074
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571998}
[modify] https://crrev.com/076119dccb5fb86d19198f2a5b7c3ad2911d6f2b/base/profiler/stack_sampling_profiler_unittest.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Jul 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/859dfccd8668aeef181d1908de102768d54fc34e

commit 859dfccd8668aeef181d1908de102768d54fc34e
Author: Xi Cheng <chengx@chromium.org>
Date: Mon Jul 02 23:06:41 2018

Introduce ProfileBuilder interface

Now the profiler accepts an instance of a ProfileBuilder's subclass
at construction. Therefore, the profiler is agnostic of the profile
representation. Samples would not be stored by the profiler but
instead provided to the ProfileBuilder's subclass to do with them as
it chooses.

This CL also changes CallStackProfileBuilder (originally named
SamplingProfileBuilder) to implement this interface and moves it to
call_stack_profile_builder.{h,cc}. Unit tests are added for this new
class.

In stack_sampling_profiler_unittest.cc, we introduce TestProfileBuilder
which implements the interface. We also removed the CallStackProfile
related operations from this test the StackSamplingProfiler no longer
operates on CallStackProfiles.

Bug: 851163
Change-Id: Ie044b65abb085012a2c25fef7744366aec5a1103
Reviewed-on: https://chromium-review.googlesource.com/1115509
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572033}
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/base/profiler/native_stack_sampler.h
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/base/profiler/native_stack_sampler_mac.cc
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/base/profiler/native_stack_sampler_win.cc
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/base/profiler/stack_sampling_profiler_unittest.cc
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/chrome/common/DEPS
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/chrome/common/thread_profiler.cc
[modify] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/components/metrics/BUILD.gn
[add] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/components/metrics/call_stack_profile_builder.cc
[add] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/components/metrics/call_stack_profile_builder.h
[add] https://crrev.com/859dfccd8668aeef181d1908de102768d54fc34e/components/metrics/call_stack_profile_builder_unittest.cc

Labels: OS-Mac OS-Windows
Project Member

Comment 22 by bugdroid1@chromium.org, Jul 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e07c5d55eba909d377669e95181f6332cfcb8c6

commit 2e07c5d55eba909d377669e95181f6332cfcb8c6
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Jul 03 21:01:29 2018

Move CompletedCallback type to CallStackProfileBuilder class

Bug: 851163
Change-Id: I2346efb2fc9c7ac5e0be425ac9484babd6b6544d
Reviewed-on: https://chromium-review.googlesource.com/1123657
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572348}
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/chrome/common/thread_profiler.cc
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/chrome/common/thread_profiler.h
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/BUILD.gn
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/call_stack_profile_builder.h
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/call_stack_profile_metrics_provider.h
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/call_stack_profile_metrics_provider_unittest.cc
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/child_call_stack_profile_collector.cc
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/child_call_stack_profile_collector.h
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/public/cpp/OWNERS
[modify] https://crrev.com/2e07c5d55eba909d377669e95181f6332cfcb8c6/components/metrics/public/cpp/call_stack_profile.typemap

Project Member

Comment 23 by bugdroid1@chromium.org, Jul 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9a9c875f3db10d6fce8a9a0fe6f32bfd29b50c8f

commit 9a9c875f3db10d6fce8a9a0fe6f32bfd29b50c8f
Author: Xi Cheng <chengx@chromium.org>
Date: Wed Jul 04 00:27:47 2018

Use default keyword for destructor with empty body

Bug: 851163
Change-Id: I2b89682bcec7c24319160fab2cb69d08603d2f60
Reviewed-on: https://chromium-review.googlesource.com/1125322
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572404}
[modify] https://crrev.com/9a9c875f3db10d6fce8a9a0fe6f32bfd29b50c8f/components/metrics/call_stack_profile_metrics_provider.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Jul 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/df9d5c43a9fd8e56cd56c721d1c0b2f18cf62fcf

commit df9d5c43a9fd8e56cd56c721d1c0b2f18cf62fcf
Author: Xi Cheng <chengx@chromium.org>
Date: Wed Jul 04 00:48:07 2018

A few cleanups for call_stack_profile_metrics_provider.cc

Bug: 851163
Change-Id: Ie75fcbb029979f41a22cd5db789f5eb04decea1e
Reviewed-on: https://chromium-review.googlesource.com/1125334
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572409}
[modify] https://crrev.com/df9d5c43a9fd8e56cd56c721d1c0b2f18cf62fcf/components/metrics/call_stack_profile_metrics_provider.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Jul 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbeecd90a9728388bd5893702392ec6a46d507e2

commit cbeecd90a9728388bd5893702392ec6a46d507e2
Author: Xi Cheng <chengx@chromium.org>
Date: Thu Jul 05 01:34:56 2018

Move process_milestone to CallStackProfileBuilder class

Bug: 851163
Change-Id: I24a4a56941346f940b35c8add937163788bab7c5
Reviewed-on: https://chromium-review.googlesource.com/1125131
Reviewed-by: François Doray <fdoray@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572687}
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/chrome/browser/chrome_browser_main.cc
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/chrome/common/thread_profiler.cc
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/chrome/common/thread_profiler.h
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/components/metrics/call_stack_profile_builder.h
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/components/metrics/call_stack_profile_builder_unittest.cc
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/components/metrics/call_stack_profile_metrics_provider.h
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/components/metrics/public/cpp/OWNERS
[modify] https://crrev.com/cbeecd90a9728388bd5893702392ec6a46d507e2/components/startup_metric_utils/browser/startup_metric_utils.cc

Project Member

Comment 26 by bugdroid1@chromium.org, Jul 31

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c808b2788024d29c44caf225b67a1f2a04292435

commit c808b2788024d29c44caf225b67a1f2a04292435
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Jul 31 02:45:43 2018

Headers cleanup for call_stack_profile_collector.cc

Bug: 851163
Change-Id: I4321ca15bc02b38e510c885c8e3ceb31875d9e1c
Reviewed-on: https://chromium-review.googlesource.com/1155965
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579291}
[modify] https://crrev.com/c808b2788024d29c44caf225b67a1f2a04292435/components/metrics/call_stack_profile_collector.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Aug 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/367942cdf9c39b3a2af177f758da01733cad169d

commit 367942cdf9c39b3a2af177f758da01733cad169d
Author: Xi Cheng <chengx@chromium.org>
Date: Fri Aug 03 02:43:19 2018

Format headers inclusion for call_stack_profile_builder.h

Bug: 851163
Change-Id: I4655ce7f882983bfd671ec27dfb9d54c62f0e166
Reviewed-on: https://chromium-review.googlesource.com/1161333
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#580418}
[modify] https://crrev.com/367942cdf9c39b3a2af177f758da01733cad169d/components/metrics/call_stack_profile_builder.h

Project Member

Comment 28 by bugdroid1@chromium.org, Aug 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4dec7e4be7cd60095129ccc0fc9667112817d604

commit 4dec7e4be7cd60095129ccc0fc9667112817d604
Author: Xi Cheng <chengx@chromium.org>
Date: Fri Aug 10 16:54:11 2018

Directly write SampledProfile protocol buffer message and send over mojo

This change removes the current execution profile _mojo_ representation
in favor of directly writing the data in the protocol buffer format used
for UMA upload. The reasons for using this format are:
1. it's the format that we ultimately need the data in;
2. it's the most memory-efficient representation available to us, because
   of the protocol buffer varint encoding;
3. the serialized protocol buffers are trivially compressible.

We generate execution profiles in non-browser processes, so this means
writing the protocol buffer representation in those processes and sending
over mojo to the browser process, where the UMA upload takes place.

We're making this change as part of a refactoring to expand the profiling
scenarios supported by the UMA Sampling Profiler. A key aspect of this
refactoring is reducing memory consumption of the execution profile
representation. See http://crbug.com/850148 for examples of memory usage
problems with this representation.

Bug: 851163,  804942 
Change-Id: Ied88d6fd932587707c1f5a4c79acd77d5911f6ee
Reviewed-on: https://chromium-review.googlesource.com/1157547
Commit-Queue: Mike Wittman <wittman@chromium.org>
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: François Doray <fdoray@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582209}
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/chrome/browser/chrome_browser_main.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/chrome/common/DEPS
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/chrome/common/thread_profiler.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/chrome/common/thread_profiler.h
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/BUILD.gn
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_builder.h
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_builder_unittest.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_collector.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_collector.h
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_metrics_provider.h
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_metrics_provider_unittest.cc
[add] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_proto_encoder.cc
[add] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_proto_encoder.h
[add] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/call_stack_profile_proto_encoder_unittest.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/child_call_stack_profile_collector.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/child_call_stack_profile_collector.h
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/child_call_stack_profile_collector_unittest.cc
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/public/cpp/BUILD.gn
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/public/cpp/call_stack_profile.typemap
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/public/cpp/call_stack_profile_struct_traits.h
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
[add] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/public/cpp/call_stack_profile_unittest.typemap
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/public/cpp/typemaps.gni
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/public/interfaces/call_stack_profile_collector.mojom
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/metrics/public/interfaces/call_stack_profile_collector_test.mojom
[modify] https://crrev.com/4dec7e4be7cd60095129ccc0fc9667112817d604/components/startup_metric_utils/browser/startup_metric_utils.cc

Project Member

Comment 29 by bugdroid1@chromium.org, Aug 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc

commit fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc
Author: Xi Cheng <chengx@chromium.org>
Date: Fri Aug 10 23:13:18 2018

Retire SampleOrderingSpec::PRESERVE_ORDER as it's not used

Since SampleOrderingSpec::MAY_SHUFFLE is the only one used in production
code, there is no need to specify the SampleOrderingSpec parameter hence
SampleOrderingSpec enum is also retired.

Bug: 851163
Change-Id: Ie9bf7c39d036db55b1533c4fe3b3f3293a2a8dbf
Reviewed-on: https://chromium-review.googlesource.com/1171584
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582379}
[modify] https://crrev.com/fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc/chrome/common/thread_profiler.cc
[modify] https://crrev.com/fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc/components/metrics/call_stack_profile_builder_unittest.cc
[modify] https://crrev.com/fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc/components/metrics/call_stack_profile_params.h
[modify] https://crrev.com/fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc/components/metrics/call_stack_profile_proto_encoder.cc
[modify] https://crrev.com/fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc/components/metrics/call_stack_profile_proto_encoder.h
[modify] https://crrev.com/fea7ed541cd675d0ac5d17b2f8fcd6ac82edcffc/components/metrics/call_stack_profile_proto_encoder_unittest.cc

Project Member

Comment 30 by bugdroid1@chromium.org, Aug 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e91f6fdb3d1b31b3c9ca8370fcab83a290118358

commit e91f6fdb3d1b31b3c9ca8370fcab83a290118358
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Aug 14 16:34:56 2018

Build SampledProfile protocol buffer message incrementally

This completes the task to remove the current memory-inefficient execution
profile representation by StackSamplingProfiler::CallStackProfile.

This change also leads to the following structural changes:
1) The intermediate representation of a call stack profile --
   StackSamplingProfiler::CallStackProfile is retired.
2) Module/Frame/Sample structs are moved from the StackSamplingProfiler
   class to the CallStackProfileBuilder class as now they are only used by
   the latter one.
3) Methods in call_stack_profile_proto_encoder.h are moved to
   stack_sampling_profiler.cc as now they are only used there.

Bug: 851163,  804942 
Change-Id: Ief07693499a2eb9af216d0ec71b9daf38645ecba
Reviewed-on: https://chromium-review.googlesource.com/1171866
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582937}
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/base/profiler/native_stack_sampler.h
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/base/profiler/native_stack_sampler_mac.cc
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/base/profiler/native_stack_sampler_win.cc
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/base/profiler/stack_sampling_profiler_unittest.cc
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/chrome/common/thread_profiler.cc
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/components/metrics/BUILD.gn
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/components/metrics/call_stack_profile_builder.h
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/components/metrics/call_stack_profile_builder_unittest.cc
[modify] https://crrev.com/e91f6fdb3d1b31b3c9ca8370fcab83a290118358/components/metrics/call_stack_profile_collector.cc
[delete] https://crrev.com/97b24d6f3f4872591db9457559a7fc6bde01aaa2/components/metrics/call_stack_profile_proto_encoder.cc
[delete] https://crrev.com/97b24d6f3f4872591db9457559a7fc6bde01aaa2/components/metrics/call_stack_profile_proto_encoder.h
[delete] https://crrev.com/97b24d6f3f4872591db9457559a7fc6bde01aaa2/components/metrics/call_stack_profile_proto_encoder_unittest.cc

Project Member

Comment 31 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eb46484d16902f6ed17824eb4ef299d262fe6bd0

commit eb46484d16902f6ed17824eb4ef299d262fe6bd0
Author: Xi Cheng <chengx@chromium.org>
Date: Wed Aug 15 01:00:28 2018

Replace CallStackProfileBuilder::Module with ModuleCache::Module

Bug: 851163,  804942 
Change-Id: I4da05d9c4e3a4c12f8b3c851d074fa3cdf97679f
Reviewed-on: https://chromium-review.googlesource.com/1174953
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583111}
[modify] https://crrev.com/eb46484d16902f6ed17824eb4ef299d262fe6bd0/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/eb46484d16902f6ed17824eb4ef299d262fe6bd0/components/metrics/call_stack_profile_builder.h

Project Member

Comment 33 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2dedff94a210f65945a6c5c017bf9c945c37f7f7

commit 2dedff94a210f65945a6c5c017bf9c945c37f7f7
Author: Xi Cheng <chengx@chromium.org>
Date: Wed Aug 15 05:38:22 2018

Fix declaration order in CallStackProfileBuilder

Bug: 851163
Change-Id: Ided8d0c3fc6006e4296362d840a6f03aec093d1b
Reviewed-on: https://chromium-review.googlesource.com/1175066
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583173}
[modify] https://crrev.com/2dedff94a210f65945a6c5c017bf9c945c37f7f7/components/metrics/call_stack_profile_builder.h

Project Member

Comment 35 by bugdroid1@chromium.org, Aug 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d238de77b796d63f95bdf3b1ea77336f720c9b6

commit 6d238de77b796d63f95bdf3b1ea77336f720c9b6
Author: Xi Cheng <chengx@chromium.org>
Date: Thu Aug 16 05:08:44 2018

Simplify ReceiveCompletedProfile* call stack for CallStackProfileMetricsProvider

Bug: 851163
Change-Id: I193de9f93bd8e6d9b991138f5236cec94f4a28ee
Reviewed-on: https://chromium-review.googlesource.com/1176835
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583542}
[modify] https://crrev.com/6d238de77b796d63f95bdf3b1ea77336f720c9b6/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/6d238de77b796d63f95bdf3b1ea77336f720c9b6/components/metrics/call_stack_profile_metrics_provider.h

Project Member

Comment 36 by bugdroid1@chromium.org, Aug 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d7b94b1c9fe316a40d8aba84fa9cacf2e3515d17

commit d7b94b1c9fe316a40d8aba84fa9cacf2e3515d17
Author: Xi Cheng <chengx@chromium.org>
Date: Thu Aug 16 22:27:52 2018

Minor tweaks in CallStackProfileMetricsProvider

Bug: 851163
Change-Id: Ic2d0c573867b9c1e08e52febcd5211afe08c9e84
Reviewed-on: https://chromium-review.googlesource.com/1178758
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583857}
[modify] https://crrev.com/d7b94b1c9fe316a40d8aba84fa9cacf2e3515d17/components/metrics/call_stack_profile_metrics_provider.cc

Project Member

Comment 37 by bugdroid1@chromium.org, Aug 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cbd95975f075151a516cdcbc256ec43245c392b3

commit cbd95975f075151a516cdcbc256ec43245c392b3
Author: Felipe Salazar <felipesalazar@chromium.org>
Date: Thu Aug 16 23:18:42 2018

Bring metrics protos in sync with google3

Bug: 851163
Change-Id: I6a6aa135f9e1cab496ad6b7fe007bdc8e1ac94f0
Reviewed-on: https://chromium-review.googlesource.com/1178632
Reviewed-by: Steven Holte <holte@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Felipe Salazar <felipesalazar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#583876}
[modify] https://crrev.com/cbd95975f075151a516cdcbc256ec43245c392b3/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/cbd95975f075151a516cdcbc256ec43245c392b3/components/metrics/call_stack_profile_builder_unittest.cc
[modify] https://crrev.com/cbd95975f075151a516cdcbc256ec43245c392b3/components/metrics/public/cpp/call_stack_profile_struct_traits_unittest.cc
[modify] https://crrev.com/cbd95975f075151a516cdcbc256ec43245c392b3/third_party/metrics_proto/README.chromium
[modify] https://crrev.com/cbd95975f075151a516cdcbc256ec43245c392b3/third_party/metrics_proto/call_stack_profile.proto
[modify] https://crrev.com/cbd95975f075151a516cdcbc256ec43245c392b3/third_party/metrics_proto/cast_logs.proto
[modify] https://crrev.com/cbd95975f075151a516cdcbc256ec43245c392b3/third_party/metrics_proto/ukm/source.proto

Project Member

Comment 39 by bugdroid1@chromium.org, Aug 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9358aa09f286a8855a27f3cb5591e11801df3717

commit 9358aa09f286a8855a27f3cb5591e11801df3717
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Aug 28 16:11:12 2018

Remove the dependence of ThreadProfiler on SampledProfile protobuf

This change also simplifies the approach to getting the profiler callback
across CallStackProfileMetricsProvider and ChildCallStackProfileCollector
by directly calling ChildCallStackProfileCollector::Collect() or
CallStackProfileMetricsProvider::ReceiveCompletedProfile() from
CallStackProfileBuilder::OnProfileCompleted().

Bug: 851163
Change-Id: Ia9a39510342cf6f4f1e43464b4c54345ba5e4d63
Reviewed-on: https://chromium-review.googlesource.com/1185854
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Scott Violet <sky@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586729}
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/chrome/common/BUILD.gn
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/chrome/common/DEPS
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/chrome/common/thread_profiler.cc
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/chrome/common/thread_profiler.h
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/BUILD.gn
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/call_stack_profile_builder.h
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/call_stack_profile_builder_unittest.cc
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/call_stack_profile_metrics_provider.h
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/call_stack_profile_metrics_provider_unittest.cc
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/child_call_stack_profile_collector.cc
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/child_call_stack_profile_collector.h
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/metrics/child_call_stack_profile_collector_unittest.cc
[modify] https://crrev.com/9358aa09f286a8855a27f3cb5591e11801df3717/components/startup_metric_utils/browser/BUILD.gn

Project Member

Comment 40 by bugdroid1@chromium.org, Sep 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b4017c373837cfcbc2fb2baab1cf79e0f5788c2b

commit b4017c373837cfcbc2fb2baab1cf79e0f5788c2b
Author: Xi Cheng <chengx@chromium.org>
Date: Wed Sep 05 01:32:36 2018

Fix the method definition order to match the declaration order

Bug: 851163
Change-Id: If44b2585e813cd5c8ad778c89db5748d73154f19
Reviewed-on: https://chromium-review.googlesource.com/1205491
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588731}
[modify] https://crrev.com/b4017c373837cfcbc2fb2baab1cf79e0f5788c2b/components/metrics/call_stack_profile_builder.cc

Project Member

Comment 41 by bugdroid1@chromium.org, Sep 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3920ab1b33ba9bfb0ec060eaf2b50774c598709d

commit 3920ab1b33ba9bfb0ec060eaf2b50774c598709d
Author: Xi Cheng <chengx@chromium.org>
Date: Mon Sep 10 20:03:58 2018

Add watchlist stack_sampling_profiler

Bug: 851163
Change-Id: Id6f2b0abc70fc70ae48ee398fbd5e8afadbeca6d
Reviewed-on: https://chromium-review.googlesource.com/1216848
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590033}
[modify] https://crrev.com/3920ab1b33ba9bfb0ec060eaf2b50774c598709d/WATCHLISTS

Project Member

Comment 42 by bugdroid1@chromium.org, Sep 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/36cac61ca2be58b9b0858bf56ed5488e2798d831

commit 36cac61ca2be58b9b0858bf56ed5488e2798d831
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Sep 11 00:46:40 2018

Add base/profiler/ to watchlist stack_sampling_profiler

Bug: 851163
Change-Id: I25fa3661d755118987dc8de8bc5496874d4578a1
Reviewed-on: https://chromium-review.googlesource.com/1217851
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590145}
[modify] https://crrev.com/36cac61ca2be58b9b0858bf56ed5488e2798d831/WATCHLISTS

Project Member

Comment 43 by bugdroid1@chromium.org, Sep 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2e858e59f4f4a055669adf99b5e94983ba69850

commit b2e858e59f4f4a055669adf99b5e94983ba69850
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Sep 11 20:58:03 2018

Introduce new CallStackProfileBuilder using the new StackSample encoding

We deliberately leave out the process phase metadata information in the
StackSample encoding in this CL. Implementing that metadata support will
need to be done differently to make it extensible to general metadata.
We will implement it using follow-up CLs.

The old CallStackProfileBuilder using the legacy Sample encoding is
renamed to LegacyCallStackProfileBuilder. Related files are renamed
accordingly too.

Note that the old CallStackProfileBuilder is still used in production.

Bug: 851163,  804942 
Change-Id: I235bd8cc839de4e663f1d4bd49aa24485649692a
Reviewed-on: https://chromium-review.googlesource.com/1205896
Reviewed-by: François Doray <fdoray@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Siddhartha S <ssid@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Alexei Filippov <alph@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590465}
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/chrome/browser/chrome_browser_main.cc
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/chrome/common/DEPS
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/chrome/common/heap_profiler_controller.cc
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/chrome/common/heap_profiler_controller_unittest.cc
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/chrome/common/thread_profiler.cc
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/chrome/common/thread_profiler.h
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/metrics/BUILD.gn
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/metrics/call_stack_profile_builder.h
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/metrics/call_stack_profile_builder_unittest.cc
[add] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/metrics/legacy_call_stack_profile_builder.cc
[add] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/metrics/legacy_call_stack_profile_builder.h
[add] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/metrics/legacy_call_stack_profile_builder_unittest.cc
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/startup_metric_utils/browser/startup_metric_utils.cc
[modify] https://crrev.com/b2e858e59f4f4a055669adf99b5e94983ba69850/components/tracing/common/tracing_sampler_profiler.cc

Project Member

Comment 44 by bugdroid1@chromium.org, Oct 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d39a4f95ae109e865450ea2c1d4af63f4b65b9d7

commit d39a4f95ae109e865450ea2c1d4af63f4b65b9d7
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Oct 02 06:17:12 2018

Remove IsCollectionEnabled method which is unused

Bug: 851163
Change-Id: Ie02bf11865d1f84254d14723dfd55e26c1987609
Reviewed-on: https://chromium-review.googlesource.com/1256012
Commit-Queue: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595739}
[modify] https://crrev.com/d39a4f95ae109e865450ea2c1d4af63f4b65b9d7/components/metrics/call_stack_profile_metrics_provider.cc

Project Member

Comment 45 by bugdroid1@chromium.org, Oct 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/20142b79db8058d4d86e07c0d74592e305de831b

commit 20142b79db8058d4d86e07c0d74592e305de831b
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Oct 02 17:53:55 2018

Store serialized profiles in ChildCallStackProfileCollector to save memory

Bug: 888716, 851163
Change-Id: I0fce8657b8ab41c0ac57bff548a029bab302c8b3
Reviewed-on: https://chromium-review.googlesource.com/c/1256106
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595901}
[modify] https://crrev.com/20142b79db8058d4d86e07c0d74592e305de831b/components/metrics/child_call_stack_profile_collector.cc
[modify] https://crrev.com/20142b79db8058d4d86e07c0d74592e305de831b/components/metrics/child_call_stack_profile_collector.h
[modify] https://crrev.com/20142b79db8058d4d86e07c0d74592e305de831b/components/metrics/child_call_stack_profile_collector_unittest.cc

Project Member

Comment 46 by bugdroid1@chromium.org, Oct 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dde055db41ab71341e05b81fa44669d182ee9915

commit dde055db41ab71341e05b81fa44669d182ee9915
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Oct 02 20:49:12 2018

Cap the number of pending unserialized profiles

This limits the amount of memory used for unserialized profiles that have
been collected but not yet uploaded (e.g. due to being offline).

When the number of unserialized profiles exceeds the cap, serialize the new
ones to save memory.

Code-wise, this CL changes PendingProfiles to maintain two separate vectors
for unserialized profiles and serialized profiles, so that we can retrieve
the count of each kind of profiles immediately. This CL also simplified the
implementation a bit so that struct ProfileState is no longer needed.

Bug: 888716, 851163
Change-Id: I177d51065da04789db8d411af8387e08336c2342
Reviewed-on: https://chromium-review.googlesource.com/c/1250144
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595969}
[modify] https://crrev.com/dde055db41ab71341e05b81fa44669d182ee9915/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/dde055db41ab71341e05b81fa44669d182ee9915/components/metrics/call_stack_profile_metrics_provider_unittest.cc

Project Member

Comment 47 by bugdroid1@chromium.org, Oct 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/849036d051e07120a8c2f02b10c69113a0771d23

commit 849036d051e07120a8c2f02b10c69113a0771d23
Author: Ilya Sherman <isherman@chromium.org>
Date: Fri Oct 05 04:58:17 2018

[Cleanup] Simplify the CallStackProfileMetricsProvider

* Hide more internal logic within PendingProfiles
* Ensure that the functions that collect profiles cannot be called without
  verifying that collection is enabled.
* Move profile serialization out from being under a lock.

There's an important implementation detail: Profiles stored in the two
vectors might end up interleaved, in terms of timestamps. However, it is
still guaranteed that profiles from a single process are ordered consistently
in the uploaded data, which is sufficient for later efficient processing.

BUG=888716,851163
R=chengx@chromium.org

Change-Id: I94c4ab165753e8a09a53490494f8161b197f1428
Reviewed-on: https://chromium-review.googlesource.com/c/1258514
Reviewed-by: Xi Cheng <chengx@chromium.org>
Commit-Queue: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596997}
[modify] https://crrev.com/849036d051e07120a8c2f02b10c69113a0771d23/components/metrics/call_stack_profile_metrics_provider.cc

Project Member

Comment 48 by bugdroid1@chromium.org, Oct 27

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ca8f3993a8a3ad7e0ffc47abdcb9e175f93e0075

commit ca8f3993a8a3ad7e0ffc47abdcb9e175f93e0075
Author: Xi Cheng <chengx@chromium.org>
Date: Sat Oct 27 01:04:29 2018

Record call stack profile serialization and deserialization time

Bug: 888716, 851163
Change-Id: I7792883b6e659590bd46a90a0b8efc765a7732ec
Reviewed-on: https://chromium-review.googlesource.com/c/1298474
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Commit-Queue: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603276}
[modify] https://crrev.com/ca8f3993a8a3ad7e0ffc47abdcb9e175f93e0075/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/ca8f3993a8a3ad7e0ffc47abdcb9e175f93e0075/tools/metrics/histograms/histograms.xml

Project Member

Comment 49 by bugdroid1@chromium.org, Nov 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fa95ededa12a389f3053e0c875867d23d595ed0e

commit fa95ededa12a389f3053e0c875867d23d595ed0e
Author: Mike Wittman <wittman@chromium.org>
Date: Fri Nov 09 02:20:04 2018

[Sampling profiler] Set receiver callback for new profile builder

The receiver callback is required to process browser process profiles.

Bug: 851163
Change-Id: I1477d7e4fa40d72fc97621ed463e5d8c0b84921a
Reviewed-on: https://chromium-review.googlesource.com/c/1327802
Reviewed-by: Lei Zhang <thestig@chromium.org>
Reviewed-by: Xi Cheng <chengx@chromium.org>
Commit-Queue: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606695}
[modify] https://crrev.com/fa95ededa12a389f3053e0c875867d23d595ed0e/chrome/common/DEPS
[modify] https://crrev.com/fa95ededa12a389f3053e0c875867d23d595ed0e/chrome/common/thread_profiler.cc

Project Member

Comment 50 by bugdroid1@chromium.org, Nov 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/06080e0300c7f5349920b3273abcdb0ae9bec946

commit 06080e0300c7f5349920b3273abcdb0ae9bec946
Author: Mike Wittman <wittman@chromium.org>
Date: Fri Nov 09 18:35:39 2018

[Sampling profiler] Enable new builder for 1% of startup profiles

Starts sending a small amount of data using the new format written
by the new profile builder, for initial testing.

Bug: 851163
Change-Id: I1b8f5adae4ac5eeed2ab30e79e49790b5916f6dc
Reviewed-on: https://chromium-review.googlesource.com/c/1327808
Reviewed-by: Xi Cheng <chengx@chromium.org>
Commit-Queue: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606907}
[modify] https://crrev.com/06080e0300c7f5349920b3273abcdb0ae9bec946/chrome/common/thread_profiler.cc

Project Member

Comment 51 by bugdroid1@chromium.org, Nov 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fbbeb3c8b7cebe6934e3760caf99fbc658adbb41

commit fbbeb3c8b7cebe6934e3760caf99fbc658adbb41
Author: Xi Cheng <chengx@chromium.org>
Date: Fri Nov 09 20:56:46 2018

Serialize all profiles from browser process to save memory

Bug: 888716, 851163
Change-Id: I4ac176bf42d716f163717022352793dee763399a
Reviewed-on: https://chromium-review.googlesource.com/c/1327704
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#606962}
[modify] https://crrev.com/fbbeb3c8b7cebe6934e3760caf99fbc658adbb41/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/fbbeb3c8b7cebe6934e3760caf99fbc658adbb41/components/metrics/call_stack_profile_metrics_provider_unittest.cc

Project Member

Comment 52 by bugdroid1@chromium.org, Nov 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/40b6833a962c1c32dfa4360236ee0973b546b4b7

commit 40b6833a962c1c32dfa4360236ee0973b546b4b7
Author: Xi Cheng <chengx@chromium.org>
Date: Tue Nov 13 02:29:15 2018

Retire call stack profile serialization/deserialization metrics

StackSamplingProfiler.ProfileDeserializationTime is recorded for every
profile to deserialize, which can be expensive when a lot of profiles
are pending upload. Since we have already got enough data for these
metrics, we should retire them.

Bug: 851163
Change-Id: I703e8b01752832d9574e804b1a28c2a2bfd0058e
Reviewed-on: https://chromium-review.googlesource.com/c/1332772
Commit-Queue: Xi Cheng <chengx@chromium.org>
Reviewed-by: Mike Wittman <wittman@chromium.org>
Reviewed-by: Ilya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607450}
[modify] https://crrev.com/40b6833a962c1c32dfa4360236ee0973b546b4b7/components/metrics/call_stack_profile_metrics_provider.cc
[modify] https://crrev.com/40b6833a962c1c32dfa4360236ee0973b546b4b7/tools/metrics/histograms/histograms.xml

Project Member

Comment 53 by bugdroid1@chromium.org, Nov 19

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/34bcfd7e116dbac163ef636fd3abe4ddada86007

commit 34bcfd7e116dbac163ef636fd3abe4ddada86007
Author: Mike Wittman <wittman@chromium.org>
Date: Mon Nov 19 20:20:43 2018

[Sampling profiler] Enable new profile builder at 50%

Server-side handling of the 1% of startup profiles has been validated.
Increase to 50% of all profiles to provide equivalent data for
comparison and validation of profile sizes.

Bug: 851163
Change-Id: Ib34239b7179939857667b8de9633b57ce247494f
Reviewed-on: https://chromium-review.googlesource.com/c/1342857
Commit-Queue: Mike Wittman <wittman@chromium.org>
Reviewed-by: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609414}
[modify] https://crrev.com/34bcfd7e116dbac163ef636fd3abe4ddada86007/chrome/common/thread_profiler.cc
[modify] https://crrev.com/34bcfd7e116dbac163ef636fd3abe4ddada86007/chrome/common/thread_profiler.h

Project Member

Comment 54 by bugdroid1@chromium.org, Nov 27

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/256700143f56fd96c97185bd63f9c9b71625ae40

commit 256700143f56fd96c97185bd63f9c9b71625ae40
Author: Mike Wittman <wittman@chromium.org>
Date: Tue Nov 27 17:23:15 2018

[Sampling profiler] Enable new profile builder at 100%

The additional representational overhead imposed by the new profiler is
approximately 1.1k bytes/uncompressed encoded profile, which is
sufficiently small given the additional capabilities it supports.

Bug: 851163
Change-Id: Iecddca885dac528fd305ecbb9692a824ec4280db
Reviewed-on: https://chromium-review.googlesource.com/c/1351387
Commit-Queue: Mike Wittman <wittman@chromium.org>
Reviewed-by: Xi Cheng <chengx@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611160}
[modify] https://crrev.com/256700143f56fd96c97185bd63f9c9b71625ae40/chrome/common/thread_profiler.cc
[modify] https://crrev.com/256700143f56fd96c97185bd63f9c9b71625ae40/chrome/common/thread_profiler.h

Cc: chengx@chromium.org
Owner: wittman@chromium.org
Project Member

Comment 56 by bugdroid1@chromium.org, Nov 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b592282ea1c5b7872f20e11fa9d4077a0a79ae30

commit b592282ea1c5b7872f20e11fa9d4077a0a79ae30
Author: Mike Wittman <wittman@chromium.org>
Date: Wed Nov 28 23:34:11 2018

[Sampling profiler] Remove heap profiler OnSampleCompleted interface

This interface is unused within CallStackProfileBuilder. The equivalent
functionality will be supported eventually within the class but will
occur via the metadata mechanism.

Bug: 851163
Change-Id: I3bd8430de70c973c3e4a293118403312b977f8d1
Reviewed-on: https://chromium-review.googlesource.com/c/1351533
Reviewed-by: Xi Cheng <chengx@chromium.org>
Commit-Queue: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#611935}
[modify] https://crrev.com/b592282ea1c5b7872f20e11fa9d4077a0a79ae30/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/b592282ea1c5b7872f20e11fa9d4077a0a79ae30/components/metrics/call_stack_profile_builder.h

Project Member

Comment 57 by bugdroid1@chromium.org, Nov 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/78685f02f835440ff27c70b14139e8bff8d70c51

commit 78685f02f835440ff27c70b14139e8bff8d70c51
Author: Mike Wittman <wittman@chromium.org>
Date: Fri Nov 30 20:59:35 2018

[Sampling profiler] Rename RecordAnnotations to RecordMetadata

Updates the name to be consistent with the terminology used in the
corresponding protocol buffer and design docs. Also updates the comment.

Bug: 851163
Change-Id: I4f20f1e53d8db50301e0a23a34a03099968692b6
Reviewed-on: https://chromium-review.googlesource.com/c/1357301
Reviewed-by: Xi Cheng <chengx@chromium.org>
Commit-Queue: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#612781}
[modify] https://crrev.com/78685f02f835440ff27c70b14139e8bff8d70c51/base/profiler/native_stack_sampler_mac.cc
[modify] https://crrev.com/78685f02f835440ff27c70b14139e8bff8d70c51/base/profiler/native_stack_sampler_win.cc
[modify] https://crrev.com/78685f02f835440ff27c70b14139e8bff8d70c51/base/profiler/stack_sampling_profiler.cc
[modify] https://crrev.com/78685f02f835440ff27c70b14139e8bff8d70c51/base/profiler/stack_sampling_profiler.h
[modify] https://crrev.com/78685f02f835440ff27c70b14139e8bff8d70c51/base/profiler/stack_sampling_profiler_unittest.cc
[modify] https://crrev.com/78685f02f835440ff27c70b14139e8bff8d70c51/components/metrics/legacy_call_stack_profile_builder.cc
[modify] https://crrev.com/78685f02f835440ff27c70b14139e8bff8d70c51/components/metrics/legacy_call_stack_profile_builder.h
[modify] https://crrev.com/78685f02f835440ff27c70b14139e8bff8d70c51/components/metrics/legacy_call_stack_profile_builder_unittest.cc

Project Member

Comment 58 by bugdroid1@chromium.org, Jan 14 (5 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/721cd487021616e86b84dab9ce27343ea65322e2

commit 721cd487021616e86b84dab9ce27343ea65322e2
Author: Mike Wittman <wittman@chromium.org>
Date: Mon Jan 14 22:24:41 2019

[Sampling profiler] Record continued_work sample metadata for Windows

Records work ids along with samples to distinguish which samples came
from which work items (i.e. tasks, user interface event handlers, etc.)
This information will be used to infer coarse work item durations and
from that information, jankiness.

Task id recording takes place while the thread is suspended so must
be implemented in a lockless fashion.

The corresponding Mac implementation will be much more involved so is
deferred to a future CL.

Bug: 851163
Change-Id: I930773de320cb0ce02509c0dd222754722fac2bf
Reviewed-on: https://chromium-review.googlesource.com/c/1372829
Commit-Queue: Mike Wittman <wittman@chromium.org>
Reviewed-by: François Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622632}
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/message_loop/message_loop.h
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/message_loop/message_loop_current.cc
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/message_loop/message_loop_current.h
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/message_loop/message_loop_impl.cc
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/message_loop/message_loop_impl.h
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/message_loop/message_pump.cc
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/message_loop/message_pump.h
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/message_loop/message_pump_win.cc
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/task/sequence_manager/sequence_manager_impl.cc
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/base/task/sequence_manager/sequence_manager_impl.h
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/chrome/common/thread_profiler.cc
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/chrome/common/thread_profiler.h
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/components/metrics/call_stack_profile_builder.h
[modify] https://crrev.com/721cd487021616e86b84dab9ce27343ea65322e2/components/metrics/call_stack_profile_builder_unittest.cc

Project Member

Comment 59 by bugdroid1@chromium.org, Jan 15 (4 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/029dc5666f102091950f645ef9023be7b32d4ba3

commit 029dc5666f102091950f645ef9023be7b32d4ba3
Author: Mike Wittman <wittman@chromium.org>
Date: Tue Jan 15 17:59:18 2019

Revert "[Sampling profiler] Record continued_work sample metadata for Windows"

This reverts commit 721cd487021616e86b84dab9ce27343ea65322e2.

Reason for revert: ThreadProfiler outlives the main MessageLoop in the GPU and renderer processes, resulting in UAFs accessing the work id in the former and access to a stale stack location in the latter.

Original change's description:
> [Sampling profiler] Record continued_work sample metadata for Windows
> 
> Records work ids along with samples to distinguish which samples came
> from which work items (i.e. tasks, user interface event handlers, etc.)
> This information will be used to infer coarse work item durations and
> from that information, jankiness.
> 
> Task id recording takes place while the thread is suspended so must
> be implemented in a lockless fashion.
> 
> The corresponding Mac implementation will be much more involved so is
> deferred to a future CL.
> 
> Bug: 851163
> Change-Id: I930773de320cb0ce02509c0dd222754722fac2bf
> Reviewed-on: https://chromium-review.googlesource.com/c/1372829
> Commit-Queue: Mike Wittman <wittman@chromium.org>
> Reviewed-by: François Doray <fdoray@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#622632}

TBR=wittman@chromium.org,fdoray@chromium.org

Change-Id: I586da93bec9ad34b37d1218df72a82654a16bb42
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 851163, 921952
Reviewed-on: https://chromium-review.googlesource.com/c/1412038
Reviewed-by: Mike Wittman <wittman@chromium.org>
Commit-Queue: Mike Wittman <wittman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622871}
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/message_loop/message_loop.h
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/message_loop/message_loop_current.cc
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/message_loop/message_loop_current.h
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/message_loop/message_loop_impl.cc
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/message_loop/message_loop_impl.h
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/message_loop/message_pump.cc
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/message_loop/message_pump.h
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/message_loop/message_pump_win.cc
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/task/sequence_manager/sequence_manager_impl.cc
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/base/task/sequence_manager/sequence_manager_impl.h
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/chrome/common/thread_profiler.cc
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/chrome/common/thread_profiler.h
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/components/metrics/call_stack_profile_builder.cc
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/components/metrics/call_stack_profile_builder.h
[modify] https://crrev.com/029dc5666f102091950f645ef9023be7b32d4ba3/components/metrics/call_stack_profile_builder_unittest.cc

Sign in to add a comment