From 655e3f03767c663faf7824970f5e15ac2f206596 Mon Sep 17 00:00:00 2001 From: Patrick Bellasi Date: Tue, 28 Jun 2016 15:15:26 +0100 Subject: [PATCH 1/2] libs/wlgen/rtapp: fix calibration for versions of Android >=N Apparently, since Android N, by default when running a command via ADB the STDERR is not forwarded along with the STDOUT and thus the RTApp calibration fails because we are not able to parse the pLoad value. This patch force every execution of RTApp to append the STDERR on STDOUT thus granting to collect from the host side all the output generated by the application. Signed-off-by: Patrick Bellasi --- libs/wlgen/wlgen/rta.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/wlgen/wlgen/rta.py b/libs/wlgen/wlgen/rta.py index 94acd6096..bbddd6685 100644 --- a/libs/wlgen/wlgen/rta.py +++ b/libs/wlgen/wlgen/rta.py @@ -502,7 +502,7 @@ class RTA(Workload): self.rta_cmd = self.target.executables_directory + '/rt-app' self.rta_conf = self.run_dir + '/' + self.json - self.command = '{0:s} {1:s}'.format(self.rta_cmd, self.rta_conf) + self.command = '{0:s} {1:s} 2>&1'.format(self.rta_cmd, self.rta_conf) # Set and return the test label self.test_label = '{0:s}_{1:02d}'.format(self.name, self.exc_id) -- GitLab From 0685819e9106c35188afa360e35f383b22f98dd7 Mon Sep 17 00:00:00 2001 From: Patrick Bellasi Date: Tue, 19 Jul 2016 09:38:24 +0100 Subject: [PATCH 2/2] libs/wlgen/rta: add a simple sanity check for calibration values On big.LITTLE platforms we always expect big CPUs to be more capable than LITTLE ones. If that does not happens, something wrong is going on and it's better either to repeat the calibration or just file a bug report for the specific platform. Signed-off-by: Patrick Bellasi --- libs/wlgen/wlgen/rta.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libs/wlgen/wlgen/rta.py b/libs/wlgen/wlgen/rta.py index bbddd6685..1b792ffe9 100644 --- a/libs/wlgen/wlgen/rta.py +++ b/libs/wlgen/wlgen/rta.py @@ -119,6 +119,18 @@ class RTA(Workload): logging.info('%s', "{" + ", ".join('"%r": %r' % (key, pload[key]) for key in pload) + "}") + # Sanity check calibration values for big.LITTLE systems + if 'bl' in target.modules: + bcpu = target.bl.bigs_online[0] + lcpu = target.bl.littles_online[0] + if pload[bcpu] > pload[lcpu]: + logging.warning("Calibration values reports big cores less " + "capable than LITTLE cores") + raise RuntimeError("Calibration failed: try again or file a bug") + bigs_speedup = ((float(pload[lcpu]) / pload[bcpu]) - 1) * 100 + logging.info("big cores are ~%.0f%% more capable than LITTLE cores", + bigs_speedup) + return pload def __postrun(self, params): -- GitLab