Merge remote-tracking branch 'goog/mirror-upstream-master' into HEAD
diff --git a/devlib/bin/scripts/shutils.in b/devlib/bin/scripts/shutils.in
index d44e444..04712aa 100755
--- a/devlib/bin/scripts/shutils.in
+++ b/devlib/bin/scripts/shutils.in
@@ -177,6 +177,15 @@
exit 0
}
+cgroup_trace_attach_task() {
+ DST_ROOT=${1}
+ DST_PATH=${2}
+ TASKS_FILE=${3}
+
+ cat $TASKS_FILE | while read PID; do
+ echo "cgroup_attach_task_devlib: dst_root=$DST_ROOT dst_path=$DST_PATH pid=$PID" > /sys/kernel/debug/tracing/trace_marker
+ done
+}
################################################################################
# Main Function Dispatcher
@@ -198,6 +207,9 @@
cpufreq_trace_all_frequencies)
cpufreq_trace_all_frequencies $*
;;
+cgroup_trace_attach_task)
+ cgroup_trace_attach_task $*
+ ;;
cpuidle_wake_all_cpus)
cpuidle_wake_all_cpus $*
;;
diff --git a/devlib/instrument/monsoon.py b/devlib/instrument/monsoon.py
index e373d68..dd99df0 100644
--- a/devlib/instrument/monsoon.py
+++ b/devlib/instrument/monsoon.py
@@ -61,6 +61,8 @@
if self.process:
self.process.kill()
+ os.system(self.monsoon_bin + ' --usbpassthrough off')
+
cmd = [self.monsoon_bin,
'--hz', str(self.sample_rate_hz),
'--samples', '-1', # -1 means sample indefinitely
@@ -97,6 +99,11 @@
self.buffer_file = None
self.output = (stdout, stderr)
+ os.system(self.monsoon_bin + ' --usbpassthrough on')
+
+ # Wait for USB connection to be restored
+ print ('waiting for usb connection to be back')
+ os.system('adb wait-for-device')
def get_data(self, outfile):
if self.process:
diff --git a/devlib/module/cgroups.py b/devlib/module/cgroups.py
index bfe2785..472304e 100644
--- a/devlib/module/cgroups.py
+++ b/devlib/module/cgroups.py
@@ -287,6 +287,11 @@
logging.debug('Tasks: %s', task_ids)
return map(int, task_ids)
+ # Used to insert fake cgroup attach events to know existing cgroup assignments
+ def trace_cgroup_tasks(self):
+ exec_cmd = "cgroup_trace_attach_task {} {} {}".format(self.controller.hid, self.directory, self.tasks_file)
+ self.target._execute_util(exec_cmd)
+
def add_task(self, tid):
self.target.write_value(self.tasks_file, tid, verify=False)
diff --git a/devlib/utils/android.py b/devlib/utils/android.py
index f683190..d2a1629 100644
--- a/devlib/utils/android.py
+++ b/devlib/utils/android.py
@@ -451,7 +451,15 @@
logger.debug('Discovering ANDROID_HOME from adb path.')
env.platform_tools = os.path.dirname(adb_full_path)
env.android_home = os.path.dirname(env.platform_tools)
- _init_common(env)
+ try:
+ _init_common(env)
+ except:
+ env.aapt = which('aapt')
+ if env.aapt:
+ logger.info('Using aapt: ' + env.aapt)
+ else:
+ raise RuntimeError('aapt not found, try setting ANDROID_HOME to \
+ Android SDK or run LISA from android environment')
return env