From ad1e70c0ff3f60312c25fdb6f938c12be36552ef Mon Sep 17 00:00:00 2001 From: John Reck Date: Tue, 29 Mar 2022 18:10:49 -0400 Subject: Update ftrace parser for kernel 5.15 changes Test: FtraceImporterTest passes Fixes: 223537267 Change-Id: I7f11cb530f8f359cfea09b29b496a34e961d87fc --- build.gradle | 2 +- .../importers/ftrace/events/EventParserState.kt | 2 +- .../importers/ftrace/FtraceImporterTest.kt | 26 ++++++++++++++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 29 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index b9666b2..48d6f68 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ */ buildscript { - ext.kotlin_version = "1.3.21" + ext.kotlin_version = "1.5.10" repositories { mavenCentral() diff --git a/core/common/src/main/kotlin/trebuchet/importers/ftrace/events/EventParserState.kt b/core/common/src/main/kotlin/trebuchet/importers/ftrace/events/EventParserState.kt index ee207e2..7e9d141 100644 --- a/core/common/src/main/kotlin/trebuchet/importers/ftrace/events/EventParserState.kt +++ b/core/common/src/main/kotlin/trebuchet/importers/ftrace/events/EventParserState.kt @@ -26,7 +26,7 @@ import trebuchet.util.StringCache import java.util.regex.Matcher import java.util.regex.Pattern -const val FtraceLineRE = """^ *(.{1,16})-(\d+) +(?:\( *(\d+)?-*\) )?\[(\d+)] (?:[dX.]...)? *([\d.]*): *([^:]*): *(.*) *$""" +const val FtraceLineRE = """^ *(.{1,16})-(\d+) +(?:\( *(\d+)?-*\) )?\[(\d+)] (?:[dX.][^\s]+)? *([\d.]*): *([^:]*): *(.*) *$""" interface FtraceEventDetails { fun import(event: FtraceEvent, state: FtraceImporterState) diff --git a/core/common/src/test/kotlin/trebuchet/importers/ftrace/FtraceImporterTest.kt b/core/common/src/test/kotlin/trebuchet/importers/ftrace/FtraceImporterTest.kt index d0cc7ea..fd616ef 100644 --- a/core/common/src/test/kotlin/trebuchet/importers/ftrace/FtraceImporterTest.kt +++ b/core/common/src/test/kotlin/trebuchet/importers/ftrace/FtraceImporterTest.kt @@ -148,6 +148,32 @@ class FtraceImporterTest { } + @Test fun testKernel515Changes() { + val trace = """ # tracer: nop + > # ||| / _-=> migrate-disable + > # |||| / delay + > # TASK-PID TGID CPU# ||||| TIMESTAMP FUNCTION + > # | | | | ||||| | | + > atrace-6950 ( 6950) [001] ..... 7048.491867: tracing_mark_write: trace_event_clock_sync: parent_ts=7048.491699 + > atrace-6950 ( 6950) [001] ..... 7048.491873: tracing_mark_write: trace_event_clock_sync: realtime_ts=1648582795693 + > roidJUnitRunner-6981 ( 6966) [000] ..... 7048.755913: tracing_mark_write: S|6966|AtraceDeviceTest::asyncBeginEndSection|42 + > roidJUnitRunner-6981 ( 6966) [000] ..... 7048.755920: tracing_mark_write: F|6966|AtraceDeviceTest::asyncBeginEndSection|42 + > roidJUnitRunner-6981 ( 6966) [000] ..... 7048.755924: tracing_mark_write: S|6966|ndk::asyncBeginEndSection|4770 + > roidJUnitRunner-6981 ( 6966) [000] ..... 7048.755926: tracing_mark_write: F|6966|ndk::asyncBeginEndSection|4770 + """.trimMargin(">") + + val importer = FtraceImporter(FatalImportFeedback) + val modelFragment = importer.import(trace.makeReader()) + assertNotNull(modelFragment) + val model = Model(modelFragment!!) + assertNotNull(model) + val p = model.processes[6966].also { + assertNotNull(it) + }!! + assertEquals(6966, p.id) + assertEquals(1, p.threads.size) + } + fun parse(vararg lines: String): Model { val traceData = withHeader(*lines) val importer = FtraceImporter(FatalImportFeedback) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f860796..534d351 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-all.zip -- cgit v1.2.3