summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgopinath <gelanchezhian@google.com>2019-02-19 15:20:32 -0800
committergopinath <gelanchezhian@google.com>2019-02-19 15:20:32 -0800
commitb2a29b811f1c767c1f8aa6a78d7d3d31e7600d3b (patch)
tree2eaec95c1eeacb580684b882ed0a3dff03949b4c /src
parent149fa628e537feebdbe19998e0d766d0ce36cc64 (diff)
downloadloganalysis-b2a29b811f1c767c1f8aa6a78d7d3d31e7600d3b.tar.gz
Parse "Wait for property" duration from dmesg.
Bug: b/123788098 Test: DmesgParserTest Change-Id: I12fd7fc8095de72bc011c07a187564d1cae549ec
Diffstat (limited to 'src')
-rw-r--r--src/com/android/loganalysis/parser/DmesgParser.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/com/android/loganalysis/parser/DmesgParser.java b/src/com/android/loganalysis/parser/DmesgParser.java
index 63026d4..be292ff 100644
--- a/src/com/android/loganalysis/parser/DmesgParser.java
+++ b/src/com/android/loganalysis/parser/DmesgParser.java
@@ -42,6 +42,7 @@ public class DmesgParser implements IParser {
private static final String ACTION = "ACTION";
private static final String DURATION = "DURATION";
private static final String UEVENTD = "ueventd";
+ private static final String INIT = "init";
// Matches: [ 14.822691] init:
private static final String SERVICE_PREFIX = String.format("^\\[\\s+(?<%s>.*)\\] init:\\s+",
@@ -94,6 +95,11 @@ public class DmesgParser implements IParser {
private static final Pattern UEVENTD_STAGE_INFO = Pattern.compile(
String.format("%s%s", UEVENTD_PREFIX, STAGE_SUFFIX));
+ private static final String PROPERTY_SUFFIX= String.format(
+ "(?<%s>.*)\\s+took\\s+(?<%s>.*)ms$", STAGE, DURATION);
+ // Matches [ 7.270487] init: Wait for property 'apexd.status=ready' took 230ms
+ private static final Pattern WAIT_FOR_PROPERTY_INFO = Pattern.compile(
+ String.format("%s%s", SERVICE_PREFIX, PROPERTY_SUFFIX));
private DmesgItem mDmesgItem = new DmesgItem();
@@ -142,6 +148,7 @@ public class DmesgParser implements IParser {
* @param line individual line of the dmesg log
*/
private void parse(String line) {
+
if (parseServiceInfo(line)) {
return;
}
@@ -210,7 +217,17 @@ public class DmesgParser implements IParser {
stageInfoItem.setDuration((long) (Double.parseDouble(
match.group(DURATION)) * 1000));
mDmesgItem.addStageInfoItem(stageInfoItem);
+ return true;
+ }
+ if((match = matches(WAIT_FOR_PROPERTY_INFO, line)) != null) {
+ DmesgStageInfoItem stageInfoItem = new DmesgStageInfoItem();
+ stageInfoItem.setStageName(String.format("%s_%s", INIT, match.group(STAGE)));
+ stageInfoItem.setDuration((long) (Double.parseDouble(
+ match.group(DURATION))));
+ mDmesgItem.addStageInfoItem(stageInfoItem);
+ return true;
}
+
return false;
}