1
0
mirror of https://github.com/ARM-software/devlib.git synced 2025-09-23 12:21:54 +01:00

1 Commits

Author SHA1 Message Date
Sergei Trofimov
8eba937262 Version bump. 2015-11-13 08:26:36 +00:00
4 changed files with 21 additions and 44 deletions

View File

@@ -363,16 +363,3 @@ class CpufreqModule(Module):
"done"\ "done"\
.format(governor), as_root=True) .format(governor), as_root=True)
def trace_frequencies(self):
"""
Report current frequencies on trace file
"""
self.target.execute(
'FREQS=$(cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq); '
'CPU=0; for F in $FREQS; do '
' echo "cpu_frequency: state=$F cpu_id=$CPU" > /sys/kernel/debug/tracing/trace_marker; '
' let CPU++; '
'done',
as_root=True
)

View File

@@ -176,7 +176,6 @@ class Target(object):
self.platform.init_target_connection(self) self.platform.init_target_connection(self)
tid = id(threading.current_thread()) tid = id(threading.current_thread())
self._connections[tid] = self.get_connection(timeout=timeout) self._connections[tid] = self.get_connection(timeout=timeout)
self._resolve_paths()
self.busybox = self.get_installed('busybox') self.busybox = self.get_installed('busybox')
self.platform.update_from_target(self) self.platform.update_from_target(self)
self._update_modules('connected') self._update_modules('connected')
@@ -402,7 +401,6 @@ class Target(object):
return self.path.join(path, name) return self.path.join(path, name)
except TargetError: except TargetError:
pass # directory does not exist or no executable premssions pass # directory does not exist or no executable premssions
if self.file_exists(self.executables_directory):
if name in self.list_directory(self.executables_directory): if name in self.list_directory(self.executables_directory):
return self.path.join(self.executables_directory, name) return self.path.join(self.executables_directory, name)
@@ -439,9 +437,6 @@ class Target(object):
else: else:
self.logger.debug('Module {} is already installed.'.format(mod.name)) self.logger.debug('Module {} is already installed.'.format(mod.name))
def _resolve_paths(self):
raise NotImplementedError()
class LinuxTarget(Target): class LinuxTarget(Target):
@@ -478,6 +473,13 @@ class LinuxTarget(Target):
def connect(self, timeout=None): def connect(self, timeout=None):
super(LinuxTarget, self).connect(timeout=timeout) super(LinuxTarget, self).connect(timeout=timeout)
if self.working_directory is None:
if self.connected_as_root:
self.working_directory = '/root/devlib-target'
else:
self.working_directory = '/home/{}/devlib-target'.format(self.user)
if self.executables_directory is None:
self.executables_directory = self.path.join(self.working_directory, 'bin')
def kick_off(self, command, as_root=False): def kick_off(self, command, as_root=False):
command = 'sh -c "{}" 1>/dev/null 2>/dev/null &'.format(escape_double_quotes(command)) command = 'sh -c "{}" 1>/dev/null 2>/dev/null &'.format(escape_double_quotes(command))
@@ -545,15 +547,6 @@ class LinuxTarget(Target):
message = e.message.split('OUTPUT:', 1)[1].strip() # pylint: disable=no-member message = e.message.split('OUTPUT:', 1)[1].strip() # pylint: disable=no-member
self.logger.debug('Could not take screenshot: {}'.format(message)) self.logger.debug('Could not take screenshot: {}'.format(message))
def _resolve_paths(self):
if self.working_directory is None:
if self.connected_as_root:
self.working_directory = '/root/devlib-target'
else:
self.working_directory = '/home/{}/devlib-target'.format(self.user)
if self.executables_directory is None:
self.executables_directory = self.path.join(self.working_directory, 'bin')
class AndroidTarget(Target): class AndroidTarget(Target):
@@ -592,6 +585,10 @@ class AndroidTarget(Target):
return (0, 0) return (0, 0)
def __init__(self, *args, **kwargs):
super(AndroidTarget, self).__init__(*args, **kwargs)
self._file_transfer_cache = None
def reset(self, fastboot=False): # pylint: disable=arguments-differ def reset(self, fastboot=False): # pylint: disable=arguments-differ
try: try:
self.execute('reboot {}'.format(fastboot and 'fastboot' or ''), self.execute('reboot {}'.format(fastboot and 'fastboot' or ''),
@@ -611,6 +608,11 @@ class AndroidTarget(Target):
# always disconnect first. # always disconnect first.
adb_disconnect(device) adb_disconnect(device)
super(AndroidTarget, self).connect(timeout=timeout) super(AndroidTarget, self).connect(timeout=timeout)
if self.working_directory is None:
self.working_directory = '/data/local/tmp/devlib-target'
self._file_transfer_cache = self.path.join(self.working_directory, '.file-cache')
if self.executables_directory is None:
self.executables_directory = self.path.join(self.working_directory, 'bin')
if check_boot_completed: if check_boot_completed:
boot_completed = boolean(self.getprop('sys.boot_completed')) boot_completed = boolean(self.getprop('sys.boot_completed'))
@@ -791,13 +793,6 @@ class AndroidTarget(Target):
if not self.is_screen_on(): if not self.is_screen_on():
self.execute('input keyevent 26') self.execute('input keyevent 26')
def _resolve_paths(self):
if self.working_directory is None:
self.working_directory = '/data/local/tmp/devlib-target'
self._file_transfer_cache = self.path.join(self.working_directory, '.file-cache')
if self.executables_directory is None:
self.executables_directory = self.path.join(self.working_directory, 'bin')
def _ensure_executables_directory_is_writable(self): def _ensure_executables_directory_is_writable(self):
matched = [] matched = []
for entry in self.list_file_systems(): for entry in self.list_file_systems():
@@ -959,11 +954,12 @@ class LocalLinuxTarget(LinuxTarget):
conn_cls = LocalConnection conn_cls = LocalConnection
def _resolve_paths(self): def connect(self, timeout=None):
if self.working_directory is None: if self.working_directory is None:
self.working_directory = '/tmp' self.working_directory = '/tmp'
if self.executables_directory is None: if self.executables_directory is None:
self.executables_directory = '/tmp' self.executables_directory = '/tmp'
super(LocalLinuxTarget, self).connect(timeout)
def _get_model_name(section): def _get_model_name(section):

View File

@@ -101,14 +101,8 @@ class FtraceCollector(TraceCollector):
if self.automark: if self.automark:
self.mark_start() self.mark_start()
self.target.execute('{} start {}'.format(self.target_binary, self.event_string), as_root=True) self.target.execute('{} start {}'.format(self.target_binary, self.event_string), as_root=True)
if 'cpufreq' in self.target.modules:
self.logger.debug('Trace CPUFreq frequencies')
self.target.cpufreq.trace_frequencies()
def stop(self): def stop(self):
if 'cpufreq' in self.target.modules:
self.logger.debug('Trace CPUFreq frequencies')
self.target.cpufreq.trace_frequencies()
self.stop_time = time.time() self.stop_time = time.time()
if self.automark: if self.automark:
self.mark_stop() self.mark_stop()

View File

@@ -59,7 +59,7 @@ for root, dirs, files in os.walk(devlib_dir):
params = dict( params = dict(
name='devlib', name='devlib',
description='A framework for automating workload execution and measurment collection on ARM devices.', description='A framework for automating workload execution and measurment collection on ARM devices.',
version='0.0.3', version='0.0.2',
packages=packages, packages=packages,
package_data=data_files, package_data=data_files,
url='N/A', url='N/A',