diff options
author | Jamie Gennis <jgennis@google.com> | 2012-04-09 17:33:45 -0700 |
---|---|---|
committer | Jamie Gennis <jgennis@google.com> | 2012-04-09 17:37:17 -0700 |
commit | fe312b98f747d7818ce865fb5b12b805f2ce9a9b (patch) | |
tree | ee6f6ac0055a8c4ecfceb51a702a0811977bd3cc /cmds/atrace | |
parent | cc24c8e6b48c2eb204bf3d7f974dbff6dc0cc862 (diff) | |
download | frameworks_native-fe312b98f747d7818ce865fb5b12b805f2ce9a9b.zip frameworks_native-fe312b98f747d7818ce865fb5b12b805f2ce9a9b.tar.gz frameworks_native-fe312b98f747d7818ce865fb5b12b805f2ce9a9b.tar.bz2 |
atrace: make cpu freq governor tracing optional
This change allows atrace to run on kernels that do not have CPU frequency
interactive governor tracing enabled in the kernel.
Change-Id: Ibfde751da7b6cc9a55794355093a37feb28f5e52
Diffstat (limited to 'cmds/atrace')
-rw-r--r-- | cmds/atrace/atrace.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cmds/atrace/atrace.c b/cmds/atrace/atrace.c index a617432..92fe5d1 100644 --- a/cmds/atrace/atrace.c +++ b/cmds/atrace/atrace.c @@ -55,7 +55,6 @@ static const char* k_cpuFreqEnablePath = static const char* k_governorLoadEnablePath = "/sys/kernel/debug/tracing/events/cpufreq_interactive/enable"; - static const char* k_workqueueEnablePath = "/sys/kernel/debug/tracing/events/workqueue/enable"; @@ -169,6 +168,11 @@ static bool setGlobalClockEnable(bool enable) return writeStr(k_traceClockPath, enable ? "global" : "local"); } +// Check whether a file exists. +static bool fileExists(const char* filename) { + return access(filename, F_OK) != -1; +} + // Enable tracing in the kernel. static bool startTrace() { @@ -178,7 +182,9 @@ static bool startTrace() ok &= setTraceOverwriteEnable(g_traceOverwrite); ok &= setSchedSwitchTracingEnable(g_traceSchedSwitch); ok &= setCpuFrequencyTracingEnable(g_traceCpuFrequency); - ok &= setGovernorLoadTracingEnable(g_traceGovernorLoad); + if (fileExists(k_governorLoadEnablePath) || g_traceGovernorLoad) { + ok &= setGovernorLoadTracingEnable(g_traceGovernorLoad); + } ok &= setWorkqueueTracingEnabled(g_traceWorkqueue); ok &= setTraceBufferSizeKB(g_traceBufferSizeKB); ok &= setGlobalClockEnable(true); @@ -203,7 +209,9 @@ static void stopTrace() setTraceOverwriteEnable(true); setSchedSwitchTracingEnable(false); setCpuFrequencyTracingEnable(false); - setGovernorLoadTracingEnable(false); + if (fileExists(k_governorLoadEnablePath)) { + setGovernorLoadTracingEnable(false); + } setWorkqueueTracingEnabled(false); setGlobalClockEnable(false); |