aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorLeandro Pereira <leandro@hardinfo.org>2020-05-03 21:50:39 -0700
committerLeandro Pereira <leandro@hardinfo.org>2020-05-09 11:09:03 -0700
commit539a4f019cf68ca93452e1b6d384daf823271d23 (patch)
tree6e9e98ff41a08c107f01ab3349a47cdbe7387bdd /tools
parentf299962b0fa6c35e4074168abdb452cf49f6826c (diff)
Cleanups in benchmark-conf-to-json.py
Diffstat (limited to 'tools')
-rwxr-xr-xtools/benchmark-conf-to-json.py60
1 files changed, 18 insertions, 42 deletions
diff --git a/tools/benchmark-conf-to-json.py b/tools/benchmark-conf-to-json.py
index 928797a1..ce61ee4a 100755
--- a/tools/benchmark-conf-to-json.py
+++ b/tools/benchmark-conf-to-json.py
@@ -39,60 +39,44 @@ def nice_cpu_name(name,
vendor_intel = re.compile(r'Intel '),
vendor_amd = re.compile(r'AMD '),
integrated_processor = re.compile(r'(Integrated Processor|Processor)', re.I),
- frequency = re.compile(r'(\d+\.?\d+?\+?\s*[GH]z)')):
+ frequency = re.compile(r'(\d+\.?\d+?\+?\s*[GH]z)'),
+ core_count = re.compile(r'(Dual|Triple|Quad|Six|Eight|Octal|Twelve|Sixteen|\d+)[ -]Core'),
+ radeon = re.compile(r'(with )?Radeon'),
+ cpu_apu = re.compile(r' [CA]PU'),
+ multiple_spaces = re.compile(r'\s\s+')):
# Cleaned-up port of nice_name_x86_cpuid_model_string() from
# deps/sysobj_early/src/nice_name.c
name = name.strip()
name = name.replace("@", "")
- name = trademark_stuff.sub("", name)
# Move vendor to front
match = first_truthy_or_none(vendor_intel.search(name), vendor_amd.search(name))
if match:
span = match.span()
- name = name[span[0]:span[1]] + name[0:span[0]] + name[span[1]:]
+ name = name[span[0]:span[1]] + name[:span[0]] + name[span[1]:]
# Remove vendor-specific crud
if name.startswith("AMD"):
name = name.replace("Mobile Technology", "Mobile")
- name = name.replace("with Radeon", "")
- name = name.replace("Radeon", "")
+ name = radeon.sub("", name)
if "COMPUTE CORES" in name:
name, _ = name.split(',', 2)
- if "X2" in name:
- name = name.replace("Dual-Core", "")
- name = name.replace("Dual Core", "")
- if "X3" in name:
- name = name.replace("Triple-Core", "")
- if "X4" in name:
- name = name.replace("Quad-Core", "")
elif name.startswith("Cyrix"):
name = name.replace("tm ", "")
else:
name = name.replace("Genuine Intel", "Intel")
- name = name.replace(" CPU", "")
- name = name.replace(" APU", "")
- name = integrated_processor.sub("", name)
- name = frequency.sub("", name)
-
- for core_count in ("Dual", "Triple", "Quad", "Six",
- "Eight", "Octal", "Twelve", "Sixteen",
- "8", "16", "24", "32", "48", "56", "64"):
- name = name.replace("%s-Core" % core_count, "")
- name = name.replace("%s Core" % core_count, "")
-
- while " " in name:
- name = name.replace(" ", " ")
+ for regex in (cpu_apu, integrated_processor, frequency, core_count, trademark_stuff):
+ name = regex.sub("", name)
+ name = multiple_spaces.sub(" ", name)
return name.strip()
def cleanup_old_style_cpu_name(name):
- for n in ('Intel', 'AMD', 'VIA', 'Cyrix'):
- if n in name:
- return nice_cpu_name(name)
+ if any(vendor in name for vendor in ('Intel', 'AMD', 'VIA', 'Cyrix')):
+ return nice_cpu_name(name)
return name
def cpu_config_val(config,
@@ -103,14 +87,8 @@ def cpu_config_val(config,
value += float(val) * (float(num) if num else 1.0)
return value
-def cpu_config_cmp(config1, config2):
- r0 = cpu_config_val(config1)
- r1 = cpu_config_val(config2)
- if r0 == r1:
- return 0
- if r0 < r1:
- return -1
- return 1
+def cpu_config_less(config1, config2):
+ return cpu_config_val(config1) < cpu_config_val(config2)
def cpu_config_is_close(config1, config2):
r0 = cpu_config_val(config1)
@@ -132,7 +110,7 @@ def guess_old_style_cpu_config(cpu_config, num_logical_cpus,
freq *= 1000
candidate_config = "%dx %.2f MHz" % (num_logical_cpus, freq)
- if cpu_config_cmp(cpu_config, candidate_config) == -1 and \
+ if cpu_config_less(cpu_config, candidate_config) and \
not cpu_config_is_close(cpu_config, candidate_config):
return candidate_config
@@ -157,7 +135,7 @@ def parse_old_style_cpu_info(cpu_config, cpu_name, bench_name,
def generate_machine_id(bench,
invalid_chars_re = re.compile(r'[^A-Za-z0-9\(\);]')):
mid = "%s;%s;%.2f" % (
- bench['Board'] if 'Board' in bench else '(Unknown)',
+ bench.get('Board', '(Unknown)'),
bench['CpuName'],
cpu_config_val(bench['CpuConfig']),
)
@@ -239,10 +217,8 @@ if __name__ == '__main__':
'BenchmarkResult': float(values[0]),
}
- bench.update(parse_old_style_cpu_info(
- values[1].replace(",", "."),
- key,
- section))
+ cpu_info = parse_old_style_cpu_info(values[1].replace(",", "."), key, section)
+ bench.update(cpu_info)
bench['MachineId'] = generate_machine_id(bench)
else:
raise SyntaxError("unexpected value length: %d (%s)" % (len(values), values))