blob: 04b16dcc5b77bd17d35fa08c09801ac12d76187c [file] [log] [blame]
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package perfetto.protos;
// Configuration for go/heapprofd.
message HeapprofdConfig {
message ContinuousDumpConfig {
// ms to wait before first dump.
optional uint32 dump_phase_ms = 5;
// ms to wait between following dumps.
optional uint32 dump_interval_ms = 6;
};
// Set to 1 for perfect accuracy.
// Otherwise, sample every sample_interval_bytes on average.
// TODO(fmayer): Add link to docs elaborating on this.
optional uint64 sampling_interval_bytes = 1;
// E.g. surfaceflinger, com.android.phone
// This input is normalized in the following way: if it contains slashes,
// everything up to the last slash is discarded. If it contains "@",
// everything after the first @ is discared.
// E.g. /system/bin/surfaceflinger@1.0 normalizes to surfaceflinger.
// This transformation is also applied to the processes' command lines when
// matching.
repeated string process_cmdline = 2;
// For watermark based triggering or local debugging.
repeated uint64 pid = 4;
optional bool all = 5;
// Do not emit function names for mappings starting with this prefix.
// E.g. /system to not emit symbols for any system libraries.
repeated string skip_symbol_prefix = 7;
// Dump once at the end of the trace, emitting the heap dump at maximum
// memory usage.
// optional bool retain_max = 5; // TODO(fmayer): Implement
// Dump at a predefined interval.
optional ContinuousDumpConfig continuous_dump_config = 6;
// Size of the shared memory buffer between the profiled processes and
// heapprofd. Defaults to 8 MiB. If larger than 500 MiB, truncated to 500
// MiB.
optional uint64 shmem_size_bytes = 8;
}