From 35c3e57686f6a29d9690c68dd43fc4d35dc1c43b Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Mon, 15 May 2017 14:18:45 +0300 Subject: scripts/buildstats-diff: support optimized rusage values Buildstats from oe-build-perf-test results have been optimized to not have child rusage values at all. There, rusage is the sum of parent and child rusage values. This patch makes buildstats-diff compatible with this format. [YOCTO #11355] (From OE-Core rev: 496a9dc179fe9dc370c940f4a2f7bcab869a804f) Signed-off-by: Markus Lehtonen Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- scripts/buildstats-diff | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'scripts/buildstats-diff') diff --git a/scripts/buildstats-diff b/scripts/buildstats-diff index adeba44988..4276464714 100755 --- a/scripts/buildstats-diff +++ b/scripts/buildstats-diff @@ -52,8 +52,12 @@ class BSTask(dict): @property def cputime(self): """Sum of user and system time taken by the task""" - return self['rusage']['ru_stime'] + self['rusage']['ru_utime'] + \ - self['child_rusage']['ru_stime'] + self['child_rusage']['ru_utime'] + rusage = self['rusage']['ru_stime'] + self['rusage']['ru_utime'] + if self['child_rusage']: + # Child rusage may have been optimized out + return rusage + self['child_rusage']['ru_stime'] + self['child_rusage']['ru_utime'] + else: + return rusage @property def walltime(self): @@ -73,12 +77,20 @@ class BSTask(dict): @property def read_ops(self): """Number of read operations on the block layer""" - return self['rusage']['ru_inblock'] + self['child_rusage']['ru_inblock'] + if self['child_rusage']: + # Child rusage may have been optimized out + return self['rusage']['ru_inblock'] + self['child_rusage']['ru_inblock'] + else: + return self['rusage']['ru_inblock'] @property def write_ops(self): """Number of write operations on the block layer""" - return self['rusage']['ru_oublock'] + self['child_rusage']['ru_oublock'] + if self['child_rusage']: + # Child rusage may have been optimized out + return self['rusage']['ru_oublock'] + self['child_rusage']['ru_oublock'] + else: + return self['rusage']['ru_oublock'] def read_buildstats_file(buildstat_file): -- cgit v1.2.3-54-g00ecf