fix wrong time offset adjustment
- Always picking the closest bigger time for getting delta can go wrong
if time changes in the middle.
- If the close bigger time is giving negative time, use the one right
before it instead.
bug: 33210752
Test: python packages/services/Car/tools/bootanalyze/bootanalyze.py -r -c packages/services/Car/tools/bootanalyze/config.yaml -n 10
Change-Id: Ice44e4839aa9e8d5222e8aa73eb2f7b4329d4757
diff --git a/tools/bootanalyze/bootanalyze.py b/tools/bootanalyze/bootanalyze.py
index e66bbcf..4cc23886 100755
--- a/tools/bootanalyze/bootanalyze.py
+++ b/tools/bootanalyze/bootanalyze.py
@@ -215,14 +215,19 @@
else:
events_to_correct.append(k)
+ diff_prev = diffs[0]
for k in events_to_correct:
diff = diffs[0]
while diff[0] < events[k] and len(diffs) > 1:
diffs.pop(0)
+ diff_prev = diff
diff = diffs[0]
events[k] = events[k] - diff[1]
if events[k] < 0.0:
- events[k] = 0.0
+ if events[k] < -0.1: # maybe previous one is better fit
+ events[k] = events[k] + diff[1] - diff_prev[1]
+ else:
+ events[k] = 0.0
data_points = {}
timing_points = collections.OrderedDict()