From d3a02d9d9e6910dcbd7568af41ca51e0d5e16c5d Mon Sep 17 00:00:00 2001 From: Brendan Jackman Date: Wed, 12 Oct 2016 18:24:15 +0100 Subject: [PATCH] cpuidle: Make desc, name, latency, power memoized properties When this information is not needed, this avoids executing 4 commands on the host for each CPU, which significantly speeds up initialising the cpuidle module. --- devlib/module/cpuidle.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/devlib/module/cpuidle.py b/devlib/module/cpuidle.py index adf7fdc..1ac06ff 100644 --- a/devlib/module/cpuidle.py +++ b/devlib/module/cpuidle.py @@ -47,10 +47,26 @@ class CpuidleState(object): self.path = path self.id = self.target.path.basename(self.path) self.cpu = self.target.path.basename(self.target.path.dirname(path)) - self.desc = self.get('desc') - self.name = self.get('name') - self.latency = self.get('latency') - self.power = self.get('power') + + @property + @memoized + def desc(self): + return self.get('desc') + + @property + @memoized + def name(self): + return self.get('name') + + @property + @memoized + def latency(self): + return self.get('latency') + + @property + @memoized + def power(self): + return self.get('power') def enable(self): self.set('disable', 0)