Revert "Use only half of the cores in testrunner by default on target."
This reverts commit ea1a849fda20e5110ab1073355036c1ad56597af.
Reason for revert: Fails on buildbot
Change-Id: Iff330c6482781ea1be11431186dbb6abe7496b2b
diff --git a/test/testrunner/testrunner.py b/test/testrunner/testrunner.py
index ffb5112..23bd37d 100755
--- a/test/testrunner/testrunner.py
+++ b/test/testrunner/testrunner.py
@@ -127,7 +127,7 @@
skipped_tests = []
# Flags
-n_thread = 0
+n_thread = -1
total_test_count = 0
verbose = False
dry_run = False
@@ -272,12 +272,11 @@
_user_input_variants['address_sizes_target']['target'] = _user_input_variants['address_sizes']
global n_thread
- if n_thread == 0:
+ if n_thread == -1:
if 'target' in _user_input_variants['target']:
- # Use only half of the cores since fully loading the device tends to lead to timeouts.
- n_thread = get_target_cpu_count() // 2
+ n_thread = get_default_threads('target')
else:
- n_thread = get_host_cpu_count()
+ n_thread = get_default_threads('host')
print_text("Concurrency: " + str(n_thread) + "\n")
global extra_arguments
@@ -1003,15 +1002,22 @@
return {parsed[12]}
-def get_target_cpu_count():
- adb_command = 'adb shell getconf _NPROCESSORS_ONLN'
- cpu_info_proc = subprocess.Popen(adb_command.split(), stdout=subprocess.PIPE)
- return int(cpu_info_proc.stdout.read())
-
-
-def get_host_cpu_count():
- return multiprocessing.cpu_count()
-
+def get_default_threads(target):
+ if target == 'target':
+ adb_command = 'adb shell cat /sys/devices/system/cpu/present'
+ cpu_info_proc = subprocess.Popen(adb_command.split(), stdout=subprocess.PIPE)
+ cpu_info = cpu_info_proc.stdout.read()
+ if type(cpu_info) is bytes:
+ cpu_info = cpu_info.decode('utf-8')
+ cpu_info_regex = r'\d*-(\d*)'
+ match = re.match(cpu_info_regex, cpu_info)
+ if match:
+ return int(match.group(1))
+ else:
+ raise ValueError('Unable to predict the concurrency for the target. '
+ 'Is device connected?')
+ else:
+ return multiprocessing.cpu_count()
def parse_option():
global verbose