diff --git a/wlauto/common/linux/device.py b/wlauto/common/linux/device.py index 7d15c04d..f5577623 100644 --- a/wlauto/common/linux/device.py +++ b/wlauto/common/linux/device.py @@ -1018,7 +1018,7 @@ class LinuxDevice(BaseLinuxDevice): result = [] for line in lines: - parts = line.split() + parts = re.split('\s+', line, maxsplit=8) if parts: result.append(PsEntry(*(parts[0:1] + map(int, parts[1:5]) + parts[5:]))) diff --git a/wlauto/devices/linux/chromeos_test_image/__init__.py b/wlauto/devices/linux/chromeos_test_image/__init__.py new file mode 100644 index 00000000..a8b56dcd --- /dev/null +++ b/wlauto/devices/linux/chromeos_test_image/__init__.py @@ -0,0 +1,54 @@ + +# Copyright 2014-2015 ARM Limited +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + + +from wlauto import LinuxDevice, Parameter +from wlauto.utils.misc import convert_new_lines +import re + + +class ChromeOsDevice(LinuxDevice): + + name = "chromeos_test_image" + description = """ + Chrome OS test image device. Use this if you are working on a Chrome OS device with a test + image. An off the shelf device will not work with this device interface. + + More information on how to build a Chrome OS test image can be found here: + + https://www.chromium.org/chromium-os/developer-guide#TOC-Build-a-disk-image-for-your-board + + """ + + platform = 'chromeos' + abi = 'armeabi' + has_gpu = True + default_timeout = 100 + + parameters = [ + Parameter('core_names', default=[], override=True), + Parameter('core_clusters', default=[], override=True), + Parameter('username', default='root', override=True), + Parameter('password', default='test0000', override=True), + Parameter('password_prompt', default='Password:', override=True), + Parameter('binaries_directory', default='/usr/local/bin', override=True), + Parameter('working_directory', default='/home/root/wa-working', override=True), + ] + + def initialize(self, context, *args, **kwargs): + self.uninstall('busybox') # busybox that comes with chromeos is missing some usefull utilities + super(ChromeOsDevice, self).initialize(context, *args, **kwargs) + diff --git a/wlauto/instrumentation/energy_model/__init__.py b/wlauto/instrumentation/energy_model/__init__.py index 32703a86..bcbcefab 100644 --- a/wlauto/instrumentation/energy_model/__init__.py +++ b/wlauto/instrumentation/energy_model/__init__.py @@ -634,7 +634,7 @@ class EnergyModelInstrument(Instrument): spec.id = '{}_{}_{}'.format(cluster, num_cpus, freq) spec.label = 'freq_{}_{}'.format(cluster, spec.label) spec.workload_parameters['taskset_mask'] = list_to_mask(self.get_cpus(cluster)) - spec.workload_parameters['num_threads'] = len(num_cpus) + spec.workload_parameters['num_threads'] = num_cpus # max_requests set to an arbitrary high values to make sure # sysbench runs for full duriation even on highly # performant cores. @@ -649,7 +649,7 @@ class EnergyModelInstrument(Instrument): return new_specs def disable_thermal_management(self): - if self.device.file_exists('/sys/class/thermal'): + if self.device.file_exists('/sys/class/thermal/thermal_zone0'): tzone_paths = self.device.execute('ls /sys/class/thermal/thermal_zone*') for tzpath in tzone_paths.strip().split(): mode_file = '{}/mode'.format(tzpath)