Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7d84ba8c authored by Gopinath Elanchezhian's avatar Gopinath Elanchezhian
Browse files

Add multi user specific trace config.

Bug: b/190233841

Test: atest MultiUserPerfTests:android.multiuser.UserLifecycleTests#startUser

Change-Id: I1661558dced6cb326ce11c94672b60f0352eab3c
(cherry picked from commit 774a84fb)
parent 7110940e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -31,6 +31,6 @@ android_test {
    ],
    platform_apis: true,
    test_suites: ["device-tests"],
    data: [":perfetto_artifacts"],
    data: ["trace_configs/*"],
    certificate: "platform",
}
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@
    <!-- Needed for pushing the trace config file -->
    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer"/>
    <target_preparer class="com.android.tradefed.targetprep.PushFilePreparer">
        <option name="push-file" key="trace_config_detailed.textproto" value="/data/misc/perfetto-traces/trace_config.textproto" />
        <option name="push-file" key="trace_config_multi_user.textproto" value="/data/misc/perfetto-traces/trace_config.textproto" />
        <!--Install the content provider automatically when we push some file in sdcard folder.-->
        <!--Needed to avoid the installation during the test suite.-->
        <option name="push-file" key="trace_config_detailed.textproto" value="/sdcard/sample.textproto" />
+154 −0
Original line number Diff line number Diff line
# Copyright (C) 2021 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.

# proto-message: TraceConfig

# Enable periodic flushing of the trace buffer into the output file.
write_into_file: true

# Writes the userspace buffer into the file every 1s.
file_write_period_ms: 1000

# See b/126487238 - we need to guarantee ordering of events.
flush_period_ms: 10000

# The trace buffers needs to be big enough to hold |file_write_period_ms| of
# trace data. The trace buffer sizing depends on the number of trace categories
# enabled and the device activity.

# RSS events
buffers {
  size_kb: 32768
  fill_policy: RING_BUFFER
}

# procfs polling
buffers {
  size_kb: 8192
  fill_policy: RING_BUFFER
}

data_sources {
  config {
    name: "linux.ftrace"
    target_buffer: 0
    ftrace_config {
      # These parameters affect only the kernel trace buffer size and how
      # frequently it gets moved into the userspace buffer defined above.
      buffer_size_kb: 16384
      drain_period_ms: 250

      # Store certain high-volume "sched" ftrace events in a denser format
      # (falling back to the default format if not supported by the tracer).
      compact_sched {
        enabled: true
      }

      # Enables symbol name resolution against /proc/kallsyms
      symbolize_ksyms: true

      # We need to do process tracking to ensure kernel ftrace events targeted at short-lived
      # threads are associated correctly
      ftrace_events: "task/task_newtask"
      ftrace_events: "task/task_rename"
      ftrace_events: "sched/sched_process_exit"
      ftrace_events: "sched/sched_process_free"

      # Memory events
      ftrace_events: "rss_stat"
      ftrace_events: "ion_heap_shrink"
      ftrace_events: "ion_heap_grow"
      ftrace_events: "ion/ion_stat"
      ftrace_events: "dmabuf_heap/dma_heap_stat"
      ftrace_events: "oom_score_adj_update"
      ftrace_events: "gpu_mem/gpu_mem_total"

      # Old (kernel) LMK
      ftrace_events: "lowmemorykiller/lowmemory_kill"

      atrace_apps: "*"

      atrace_categories: "am"
      atrace_categories: "bionic"
      atrace_categories: "camera"
      atrace_categories: "wm"
      atrace_categories: "dalvik"
      atrace_categories: "sched"
      atrace_categories: "freq"
      atrace_categories: "gfx"
      atrace_categories: "view"
      atrace_categories: "webview"
      atrace_categories: "input"
      atrace_categories: "hal"
      atrace_categories: "binder_driver"
      atrace_categories: "sync"
      atrace_categories: "workq"
      atrace_categories: "res"

    }
  }
}

data_sources: {
  config {
    name: "android.gpu.memory"
    target_buffer: 0
  }
}

data_sources {
  config {
    name: "linux.process_stats"
    target_buffer: 1
    process_stats_config {
      proc_stats_poll_ms: 10000
    }
  }
}

data_sources {
  config {
    name: "linux.sys_stats"
    target_buffer: 1
    sys_stats_config {
      meminfo_period_ms: 1000
      meminfo_counters: MEMINFO_MEM_TOTAL
      meminfo_counters: MEMINFO_MEM_FREE
      meminfo_counters: MEMINFO_MEM_AVAILABLE
      meminfo_counters: MEMINFO_BUFFERS
      meminfo_counters: MEMINFO_CACHED
      meminfo_counters: MEMINFO_SWAP_CACHED
      meminfo_counters: MEMINFO_ACTIVE
      meminfo_counters: MEMINFO_INACTIVE
      meminfo_counters: MEMINFO_ACTIVE_ANON
      meminfo_counters: MEMINFO_INACTIVE_ANON
      meminfo_counters: MEMINFO_ACTIVE_FILE
      meminfo_counters: MEMINFO_INACTIVE_FILE
      meminfo_counters: MEMINFO_UNEVICTABLE
      meminfo_counters: MEMINFO_SWAP_TOTAL
      meminfo_counters: MEMINFO_SWAP_FREE
      meminfo_counters: MEMINFO_DIRTY
      meminfo_counters: MEMINFO_WRITEBACK
      meminfo_counters: MEMINFO_ANON_PAGES
      meminfo_counters: MEMINFO_MAPPED
      meminfo_counters: MEMINFO_SHMEM
    }
  }
}

data_sources: {
  config: {
    name: "android.surfaceflinger.frametimeline"
  }
}