OSDN Git Service

Set the atrace clock to the best available value: boot, mono, or global.
authorCarmen Jackson <carmenjackson@google.com>
Fri, 5 May 2017 18:42:32 +0000 (11:42 -0700)
committerCarmen Jackson <carmenjackson@google.com>
Thu, 18 May 2017 23:23:26 +0000 (16:23 -0700)
commitea826794184be368f65f099ceac4fc31234700f6
treebfe9521067677cbfc18b3ecc904fc836f3a22e06
parentfb8cedea2730603d6bf95dd10466b2f2660ade9d
Set the atrace clock to the best available value: boot, mono, or global.

This reverts commit dc34097448a76a4bb09636f25567113d7a6551dc.
"Revert "Set the atrace clock to boot when possible and mono otherwise.""

...and includes a fix for devices that break with that change. Write will
fail with an Invalid Argument exception if we programmatically write a
value to the trace_file that doesn't exist in the file. So, we'll check
for both potential values we might set. If neither of them exist, fall
back to setting to 'global', which should be safe since we were doing it
before without checking.

Bug: 32379831
Test: cts-tradefed run singleCommand cts-dev --module
CtsAtraceHostTestCases passed.
Test: Manually examining trace_clock before and after running atrace shows that the
trace_clock changes as expected (for this test I disabled atrace.rc and added an
additional debug print statement):
$ cat /d/tracing/trace_clock
[local] global counter uptime perf mono boot
$ atrace --async_start freq
capturing trace...marlin:/ $ cat /d/tracing/trace_clock
local global counter uptime perf mono [boot]
$ atrace --async_stop > /dev/null
$ cat /d/tracing/trace_clock
local global counter uptime perf mono [boot]
$ atrace --async_start freq
clock is already correct!
$ atrace --async_stop > /dev/null

Change-Id: I267056d19bcdbea58881ab2b32f093caac5f14c1
cmds/atrace/atrace.cpp
cmds/atrace/atrace.rc