OSDN Git Service

Merge "Crypto performance benchmark" into nyc-dev
[android-x86/system-extras.git] / simpleperf / generate_event_type_table.py
index 9fbd278..ff60c23 100755 (executable)
 
 
 def gen_event_type_entry_str(event_type_name, event_type, event_config):
-    """
-    return string like:
-    {"cpu-cycles", PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES},
-    """
-    return '{"%s", %s, %s},\n' % (event_type_name, event_type, event_config)
+  """
+  return string like:
+  {"cpu-cycles", PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES},
+  """
+  return '{"%s", %s, %s},\n' % (event_type_name, event_type, event_config)
 
 
 def gen_hardware_events():
-    hardware_configs = ["cpu-cycles",
-                        "instructions",
-                        "cache-references",
-                        "cache-misses",
-                        "branch-instructions",
-                        "branch-misses",
-                        "bus-cycles",
-                        "stalled-cycles-frontend",
-                        "stalled-cycles-backend",
-                        ]
-    generated_str = ""
-    for config in hardware_configs:
-        event_type_name = config
-        event_config = "PERF_COUNT_HW_" + config.replace('-', '_').upper()
+  hardware_configs = ["cpu-cycles",
+                      "instructions",
+                      "cache-references",
+                      "cache-misses",
+                      "branch-instructions",
+                      "branch-misses",
+                      "bus-cycles",
+                      "stalled-cycles-frontend",
+                      "stalled-cycles-backend",
+                      ]
+  generated_str = ""
+  for config in hardware_configs:
+    event_type_name = config
+    event_config = "PERF_COUNT_HW_" + config.replace('-', '_').upper()
 
-        generated_str += gen_event_type_entry_str(
-            event_type_name, "PERF_TYPE_HARDWARE", event_config)
+    generated_str += gen_event_type_entry_str(
+        event_type_name, "PERF_TYPE_HARDWARE", event_config)
 
-    return generated_str
+  return generated_str
 
 
 def gen_software_events():
-    software_configs = ["cpu-clock",
-                        "task-clock",
-                        "page-faults",
-                        "context-switches",
-                        "cpu-migrations",
-                        ["minor-faults", "PERF_COUNT_SW_PAGE_FAULTS_MIN"],
-                        ["major-faults", "PERF_COUNT_SW_PAGE_FAULTS_MAJ"],
-                        "alignment-faults",
-                        "emulation-faults",
-                        ]
-    generated_str = ""
-    for config in software_configs:
-        if type(config) is list:
-            event_type_name = config[0]
-            event_config = config[1]
-        else:
-            event_type_name = config
-            event_config = "PERF_COUNT_SW_" + config.replace('-', '_').upper()
+  software_configs = ["cpu-clock",
+                      "task-clock",
+                      "page-faults",
+                      "context-switches",
+                      "cpu-migrations",
+                      ["minor-faults", "PERF_COUNT_SW_PAGE_FAULTS_MIN"],
+                      ["major-faults", "PERF_COUNT_SW_PAGE_FAULTS_MAJ"],
+                      "alignment-faults",
+                      "emulation-faults",
+                      ]
+  generated_str = ""
+  for config in software_configs:
+    if isinstance(config, list):
+      event_type_name = config[0]
+      event_config = config[1]
+    else:
+      event_type_name = config
+      event_config = "PERF_COUNT_SW_" + config.replace('-', '_').upper()
 
-        generated_str += gen_event_type_entry_str(
-            event_type_name, "PERF_TYPE_SOFTWARE", event_config)
+    generated_str += gen_event_type_entry_str(
+        event_type_name, "PERF_TYPE_SOFTWARE", event_config)
 
-    return generated_str
+  return generated_str
 
 
 def gen_hw_cache_events():
-    hw_cache_types = [["L1-dcache", "PERF_COUNT_HW_CACHE_L1D"],
-                      ["L1-icache", "PERF_COUNT_HW_CACHE_L1I"],
-                      ["LLC", "PERF_COUNT_HW_CACHE_LL"],
-                      ["dTLB", "PERF_COUNT_HW_CACHE_DTLB"],
-                      ["iTLB", "PERF_COUNT_HW_CACHE_ITLB"],
-                      ["branch", "PERF_COUNT_HW_CACHE_BPU"],
-                      ["node", "PERF_COUNT_HW_CACHE_NODE"],
-                      ]
-    hw_cache_ops = [["loads", "load", "PERF_COUNT_HW_CACHE_OP_READ"],
-                    ["stores", "store", "PERF_COUNT_HW_CACHE_OP_WRITE"],
-                    ["prefetches", "prefetch",
-                     "PERF_COUNT_HW_CACHE_OP_PREFETCH"],
+  hw_cache_types = [["L1-dcache", "PERF_COUNT_HW_CACHE_L1D"],
+                    ["L1-icache", "PERF_COUNT_HW_CACHE_L1I"],
+                    ["LLC", "PERF_COUNT_HW_CACHE_LL"],
+                    ["dTLB", "PERF_COUNT_HW_CACHE_DTLB"],
+                    ["iTLB", "PERF_COUNT_HW_CACHE_ITLB"],
+                    ["branch", "PERF_COUNT_HW_CACHE_BPU"],
+                    ["node", "PERF_COUNT_HW_CACHE_NODE"],
                     ]
-    hw_cache_op_results = [["accesses", "PERF_COUNT_HW_CACHE_RESULT_ACCESS"],
-                           ["misses", "PERF_COUNT_HW_CACHE_RESULT_MISS"],
-                           ]
-    generated_str = ""
-    for (type_name, type_config) in hw_cache_types:
-        for (op_name_access, op_name_miss, op_config) in hw_cache_ops:
-            for (result_name, result_config) in hw_cache_op_results:
-                if result_name == "accesses":
-                    event_type_name = type_name + '-' + op_name_access
-                else:
-                    event_type_name = type_name + '-' + \
-                        op_name_miss + '-' + result_name
-                event_config = "((%s) | (%s << 8) | (%s << 16))" % (
-                    type_config, op_config, result_config)
-                generated_str += gen_event_type_entry_str(
-                    event_type_name, "PERF_TYPE_HW_CACHE", event_config)
-
-    return generated_str
+  hw_cache_ops = [["loads", "load", "PERF_COUNT_HW_CACHE_OP_READ"],
+                  ["stores", "store", "PERF_COUNT_HW_CACHE_OP_WRITE"],
+                  ["prefetches", "prefetch",
+                   "PERF_COUNT_HW_CACHE_OP_PREFETCH"],
+                  ]
+  hw_cache_op_results = [["accesses", "PERF_COUNT_HW_CACHE_RESULT_ACCESS"],
+                         ["misses", "PERF_COUNT_HW_CACHE_RESULT_MISS"],
+                         ]
+  generated_str = ""
+  for (type_name, type_config) in hw_cache_types:
+    for (op_name_access, op_name_miss, op_config) in hw_cache_ops:
+      for (result_name, result_config) in hw_cache_op_results:
+        if result_name == "accesses":
+          event_type_name = type_name + '-' + op_name_access
+        else:
+          event_type_name = type_name + '-' + \
+              op_name_miss + '-' + result_name
+        event_config = "((%s) | (%s << 8) | (%s << 16))" % (
+            type_config, op_config, result_config)
+        generated_str += gen_event_type_entry_str(
+            event_type_name, "PERF_TYPE_HW_CACHE", event_config)
+
+  return generated_str
 
 
 def gen_events():
-    generated_str = "// This file is auto-generated by generate-event_table.py.\n\n"
-    generated_str += gen_hardware_events() + '\n'
-    generated_str += gen_software_events() + '\n'
-    generated_str += gen_hw_cache_events() + '\n'
-    return generated_str
+  generated_str = "// This file is auto-generated by generate-event_table.py.\n\n"
+  generated_str += gen_hardware_events() + '\n'
+  generated_str += gen_software_events() + '\n'
+  generated_str += gen_hw_cache_events() + '\n'
+  return generated_str
 
 generated_str = gen_events()
 fh = open('event_type_table.h', 'w')