summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2018-04-20 17:11:22 -0700
committerAndreas Gampe <agampe@google.com>2018-05-03 13:31:30 -0700
commiteab74de5e0eb2190a9354da8cc4c7a3b35eab2a1 (patch)
tree5d9a41dbe1cda94803dac9a738f914ae75c94fb7
parent041d329e2fd3193d28168ef8d09f9800180e4527 (diff)
downloadextras-eab74de5e0eb2190a9354da8cc4c7a3b35eab2a1.tar.gz
Perfprofd: Expose more parameters in the simple binder interface
Expose most interesting parameters. (cherry picked from commit 5a7181b3d3127660916e7a14057fdafa71c7d77b) Bug: 73175642 Test: mmma system/extras/perfprofd Merged-In: Ifab7f0a0c4a1e664a6b679c6f2d060f02eee232c Change-Id: Ifab7f0a0c4a1e664a6b679c6f2d060f02eee232c
-rw-r--r--perfprofd/binder_interface/aidl/android/os/IPerfProfd.aidl7
-rw-r--r--perfprofd/binder_interface/perfprofd_binder.cc48
2 files changed, 44 insertions, 11 deletions
diff --git a/perfprofd/binder_interface/aidl/android/os/IPerfProfd.aidl b/perfprofd/binder_interface/aidl/android/os/IPerfProfd.aidl
index f022dbf4..5fdc09a9 100644
--- a/perfprofd/binder_interface/aidl/android/os/IPerfProfd.aidl
+++ b/perfprofd/binder_interface/aidl/android/os/IPerfProfd.aidl
@@ -21,8 +21,11 @@ interface IPerfProfd {
/**
* Start continuous profiling with the given parameters.
*/
- void startProfiling(int profilingDuration, int profilingInterval,
- int iterations);
+ void startProfiling(int collectionInterval, int iterations,
+ int process, int samplingPeriod, int samplingFrequency,
+ int sampleDuration, boolean stackProfile,
+ boolean useElfSymbolizer, boolean sendToDropbox);
+
/**
* Start profiling with the parameters in the given protobuf.
*/
diff --git a/perfprofd/binder_interface/perfprofd_binder.cc b/perfprofd/binder_interface/perfprofd_binder.cc
index 53394400..cbb3fcef 100644
--- a/perfprofd/binder_interface/perfprofd_binder.cc
+++ b/perfprofd/binder_interface/perfprofd_binder.cc
@@ -66,9 +66,15 @@ class PerfProfdNativeService : public BinderService<PerfProfdNativeService>,
status_t dump(int fd, const Vector<String16> &args) override;
- Status startProfiling(int32_t profilingDuration,
- int32_t profilingInterval,
- int32_t iterations) override;
+ Status startProfiling(int32_t collectionInterval,
+ int32_t iterations,
+ int32_t process,
+ int32_t samplingPeriod,
+ int32_t samplingFrequency,
+ int32_t sampleDuration,
+ bool stackProfile,
+ bool useElfSymbolizer,
+ bool sendToDropbox) override;
Status startProfilingProtobuf(const std::vector<uint8_t>& config_proto) override;
Status stopProfiling() override;
@@ -105,15 +111,39 @@ status_t PerfProfdNativeService::dump(int fd, const Vector<String16> &args) {
return NO_ERROR;
}
-Status PerfProfdNativeService::startProfiling(int32_t profilingDuration,
- int32_t profilingInterval,
- int32_t iterations) {
+Status PerfProfdNativeService::startProfiling(int32_t collectionInterval,
+ int32_t iterations,
+ int32_t process,
+ int32_t samplingPeriod,
+ int32_t samplingFrequency,
+ int32_t sampleDuration,
+ bool stackProfile,
+ bool useElfSymbolizer,
+ bool sendToDropbox) {
auto config_fn = [&](ThreadedConfig& config) {
config = ThreadedConfig(); // Reset to a default config.
- config.sample_duration_in_s = static_cast<uint32_t>(profilingDuration);
- config.collection_interval_in_s = static_cast<uint32_t>(profilingInterval);
- config.main_loop_iterations = static_cast<uint32_t>(iterations);
+ if (collectionInterval >= 0) {
+ config.collection_interval_in_s = collectionInterval;
+ }
+ if (iterations >= 0) {
+ config.main_loop_iterations = iterations;
+ }
+ if (process >= 0) {
+ config.process = process;
+ }
+ if (samplingPeriod > 0) {
+ config.sampling_period = samplingPeriod;
+ }
+ if (samplingFrequency > 0) {
+ config.sampling_frequency = samplingFrequency;
+ }
+ if (sampleDuration > 0) {
+ config.sample_duration_in_s = sampleDuration;
+ }
+ config.stack_profile = stackProfile;
+ config.use_elf_symbolizer = useElfSymbolizer;
+ config.send_to_dropbox = sendToDropbox;
};
std::string error_msg;
if (!StartProfiling(config_fn, &error_msg)) {