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

Commit dc340974 authored by Carmen Jackson's avatar Carmen Jackson
Browse files

Revert "Set the atrace clock to boot when possible and mono otherwise."

This change broke CTS tests.

This reverts commit 56a2ba0b.

Bug: 37906221
Test: cts-tradefed run singleCommand cts-dev --module
CtsAtraceHostTestCases passes locally.
Change-Id: Ia82732eac33fbde8bddc1e8de7a68c20befe760e
parent 8bba03d3
Loading
Loading
Loading
Loading
+8 −32
Original line number Original line Diff line number Diff line
@@ -450,8 +450,8 @@ static bool isTraceClock(const char *mode)
        return false;
        return false;
    }
    }


    char buf[100];
    char buf[4097];
    ssize_t n = read(fd, buf, 99);
    ssize_t n = read(fd, buf, 4096);
    close(fd);
    close(fd);
    if (n == -1) {
    if (n == -1) {
        fprintf(stderr, "error reading %s: %s (%d)\n", k_traceClockPath,
        fprintf(stderr, "error reading %s: %s (%d)\n", k_traceClockPath,
@@ -475,38 +475,13 @@ static bool isTraceClock(const char *mode)
    return strcmp(mode, start) == 0;
    return strcmp(mode, start) == 0;
}
}


// Read the trace_clock sysfs file and return true if it contains the requested
// Enable or disable the kernel's use of the global clock.  Disabling the global
// value.  The trace_clock file format is:
// clock will result in the kernel using a per-CPU local clock.
// local [global] counter uptime perf
static bool traceClockContains(const char *mode)
{
    int fd = open((g_traceFolder + k_traceClockPath).c_str(), O_RDONLY);
    if (fd == -1) {
        fprintf(stderr, "error opening %s: %s (%d)\n", k_traceClockPath,
            strerror(errno), errno);
        return false;
    }

    char buf[100];
    ssize_t n = read(fd, buf, 99);
    close(fd);
    if (n == -1) {
        fprintf(stderr, "error reading %s: %s (%d)\n", k_traceClockPath,
            strerror(errno), errno);
        return false;
    }
    buf[n] = '\0';

    return strstr(buf, mode) != NULL;
}

// Set the clock to the best available option while tracing. Use 'boot' if it's
// available; otherwise, use 'mono'.
// Any write to the trace_clock sysfs file will reset the buffer, so only
// Any write to the trace_clock sysfs file will reset the buffer, so only
// update it if the requested value is not the current value.
// update it if the requested value is not the current value.
static bool setClock()
static bool setGlobalClockEnable(bool enable)
{
{
    const char* clock = traceClockContains("boot") ? "boot" : "mono";
    const char *clock = enable ? "global" : "local";


    if (isTraceClock(clock)) {
    if (isTraceClock(clock)) {
        return true;
        return true;
@@ -808,7 +783,7 @@ static bool setUpTrace()
    ok &= setCategoriesEnableFromFile(g_categoriesFile);
    ok &= setCategoriesEnableFromFile(g_categoriesFile);
    ok &= setTraceOverwriteEnable(g_traceOverwrite);
    ok &= setTraceOverwriteEnable(g_traceOverwrite);
    ok &= setTraceBufferSizeKB(g_traceBufferSizeKB);
    ok &= setTraceBufferSizeKB(g_traceBufferSizeKB);
    ok &= setClock();
    ok &= setGlobalClockEnable(true);
    ok &= setPrintTgidEnableIfPresent(true);
    ok &= setPrintTgidEnableIfPresent(true);
    ok &= setKernelTraceFuncs(g_kernelTraceFuncs);
    ok &= setKernelTraceFuncs(g_kernelTraceFuncs);


@@ -884,6 +859,7 @@ static void cleanUpTrace()
    // Set the options back to their defaults.
    // Set the options back to their defaults.
    setTraceOverwriteEnable(true);
    setTraceOverwriteEnable(true);
    setTraceBufferSizeKB(1);
    setTraceBufferSizeKB(1);
    setGlobalClockEnable(false);
    setPrintTgidEnableIfPresent(false);
    setPrintTgidEnableIfPresent(false);
    setKernelTraceFuncs(NULL);
    setKernelTraceFuncs(NULL);
}
}
+0 −4
Original line number Original line Diff line number Diff line
@@ -124,10 +124,6 @@ on post-fs
    write /sys/kernel/debug/tracing/tracing_on 0
    write /sys/kernel/debug/tracing/tracing_on 0
    write /sys/kernel/tracing/tracing_on 0
    write /sys/kernel/tracing/tracing_on 0


    # Set the trace clock to boot if it exists, falling back to mono if not.
    write /d/tracing/trace_clock mono
    write /d/tracing/trace_clock boot

# Allow only the shell group to read and truncate the kernel trace.
# Allow only the shell group to read and truncate the kernel trace.
    chown root shell /sys/kernel/debug/tracing/trace
    chown root shell /sys/kernel/debug/tracing/trace
    chown root shell /sys/kernel/tracing/trace
    chown root shell /sys/kernel/tracing/trace