diff options
author | Yabin Cui <yabinc@google.com> | 2023-05-04 17:33:07 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-05-04 17:33:07 +0000 |
commit | 7b7d5459ad7888358d45c1bb1b58dd763c8e5f12 (patch) | |
tree | d9fe1b141e78f5d6db7c73a4d402ea290b88722d | |
parent | a804b5f1bca4bad54fc25151e09e3c577ac76e6c (diff) | |
parent | a3b80db6fd6a15fc79b04ac982dab4d42c4cce95 (diff) | |
download | extras-7b7d5459ad7888358d45c1bb1b58dd763c8e5f12.tar.gz |
profcollectd: Control record scope by binary filter am: a3b80db6fd
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/extras/+/23008011
Change-Id: Ib8d482fa9ffec3e81da885c69fd975d2c4b39f5d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | profcollectd/libprofcollectd/simpleperf_etm_trace_provider.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/profcollectd/libprofcollectd/simpleperf_etm_trace_provider.rs b/profcollectd/libprofcollectd/simpleperf_etm_trace_provider.rs index cb61802e..2239a182 100644 --- a/profcollectd/libprofcollectd/simpleperf_etm_trace_provider.rs +++ b/profcollectd/libprofcollectd/simpleperf_etm_trace_provider.rs @@ -40,13 +40,15 @@ impl TraceProvider for SimpleperfEtmTraceProvider { fn trace(&self, trace_dir: &Path, tag: &str, sampling_period: &Duration, binary_filter: &str) { let trace_file = trace_provider::get_path(trace_dir, tag, ETM_TRACEFILE_EXTENSION); + // Record ETM data for kernel space only when it's not filtered out by binary_filter. So we + // can get more ETM data for user space when ETM data for kernel space isn't needed. + let record_scope = if binary_filter.contains("kernel") { + simpleperf_profcollect::RecordScope::BOTH + } else { + simpleperf_profcollect::RecordScope::USERSPACE + }; - simpleperf_profcollect::record( - &trace_file, - sampling_period, - binary_filter, - simpleperf_profcollect::RecordScope::BOTH, - ); + simpleperf_profcollect::record(&trace_file, sampling_period, binary_filter, record_scope); } fn process(&self, trace_dir: &Path, profile_dir: &Path, binary_filter: &str) -> Result<()> { |