Lines Matching +full:clock +full:- +full:names
6 #include "parse-options.h"
7 #include "parse-events.h"
32 { CHW(CPU_CYCLES), "cpu-cycles", "cycles" },
33 { CHW(STALLED_CYCLES_FRONTEND), "stalled-cycles-frontend", "idle-cycles-frontend" },
34 { CHW(STALLED_CYCLES_BACKEND), "stalled-cycles-backend", "idle-cycles-backend" },
36 { CHW(CACHE_REFERENCES), "cache-references", "" },
37 { CHW(CACHE_MISSES), "cache-misses", "" },
38 { CHW(BRANCH_INSTRUCTIONS), "branch-instructions", "branches" },
39 { CHW(BRANCH_MISSES), "branch-misses", "" },
40 { CHW(BUS_CYCLES), "bus-cycles", "" },
41 { CHW(REF_CPU_CYCLES), "ref-cycles", "" },
43 { CSW(CPU_CLOCK), "cpu-clock", "" },
44 { CSW(TASK_CLOCK), "task-clock", "" },
45 { CSW(PAGE_FAULTS), "page-faults", "faults" },
46 { CSW(PAGE_FAULTS_MIN), "minor-faults", "" },
47 { CSW(PAGE_FAULTS_MAJ), "major-faults", "" },
48 { CSW(CONTEXT_SWITCHES), "context-switches", "cs" },
49 { CSW(CPU_MIGRATIONS), "cpu-migrations", "migrations" },
50 { CSW(ALIGNMENT_FAULTS), "alignment-faults", "" },
51 { CSW(EMULATION_FAULTS), "emulation-faults", "" },
65 "cache-references",
66 "cache-misses",
68 "branch-misses",
69 "bus-cycles",
70 "stalled-cycles-frontend",
71 "stalled-cycles-backend",
72 "ref-cycles",
76 "cpu-clock",
77 "task-clock",
78 "page-faults",
79 "context-switches",
80 "CPU-migrations",
81 "minor-faults",
82 "major-faults",
83 "alignment-faults",
84 "emulation-faults",
90 { "L1-dcache", "l1-d", "l1d", "L1-data", },
91 { "L1-icache", "l1-i", "l1i", "L1-instruction", },
93 { "dTLB", "d-tlb", "Data-TLB", },
94 { "iTLB", "i-tlb", "Instruction-TLB", },
102 { "prefetch", "prefetches", "speculative-read", "speculative-load", },
120 * ITLB and BPU : Read-only
144 sys_dir->d_name, evt_dir->d_name); in tp_event_has_id()
147 return -EINVAL; in tp_event_has_id()
206 path->system = malloc(MAX_EVENT_LENGTH); in tracepoint_id_to_path()
207 if (!path->system) { in tracepoint_id_to_path()
211 path->name = malloc(MAX_EVENT_LENGTH); in tracepoint_id_to_path()
212 if (!path->name) { in tracepoint_id_to_path()
213 free(path->system); in tracepoint_id_to_path()
217 strncpy(path->system, sys_dirent.d_name, in tracepoint_id_to_path()
219 strncpy(path->name, evt_dirent.d_name, in tracepoint_id_to_path()
239 snprintf(buf, TP_PATH_LEN, "%s:%s", path->system, path->name); in tracepoint_id_to_name()
240 free(path->name); in tracepoint_id_to_name()
241 free(path->system); in tracepoint_id_to_name()
262 sprintf(name, "%s-%s-%s", hw_cache[cache_type][0], in event_cache_name()
266 sprintf(name, "%s-%s", hw_cache[cache_type][0], in event_cache_name()
286 return "hardware-cache"; in event_type()
297 u64 config = evsel->attr.config; in event_name()
298 int type = evsel->attr.type; in event_name()
300 if (evsel->name) in event_name()
301 return evsel->name; in event_name()
319 return "unknown-hardware"; in __event_name()
326 return "unknown-ext-hardware-cache-type"; in __event_name()
330 return "unknown-ext-hardware-cache-op"; in __event_name()
334 return "unknown-ext-hardware-cache-result"; in __event_name()
337 return "invalid-cache"; in __event_name()
345 return "unknown-software"; in __event_name()
357 static int parse_aliases(const char **str, const char *names[][MAX_ALIASES], int size) in parse_aliases()
360 int n, longest = -1; in parse_aliases()
363 for (j = 0; j < MAX_ALIASES && names[i][j]; j++) { in parse_aliases()
364 n = strlen(names[i][j]); in parse_aliases()
365 if (n > longest && !strncasecmp(*str, names[i][j], n)) in parse_aliases()
374 return -1; in parse_aliases()
381 int cache_type = -1, cache_op = -1, cache_result = -1; in parse_generic_hw_event()
385 * No fallback - if we cannot get a clear cache type in parse_generic_hw_event()
388 if (cache_type == -1) in parse_generic_hw_event()
391 while ((cache_op == -1 || cache_result == -1) && *s == '-') { in parse_generic_hw_event()
394 if (cache_op == -1) { in parse_generic_hw_event()
404 if (cache_result == -1) { in parse_generic_hw_event()
413 * to the '-'. in parse_generic_hw_event()
415 --s; in parse_generic_hw_event()
422 if (cache_op == -1) in parse_generic_hw_event()
428 if (cache_result == -1) in parse_generic_hw_event()
431 attr->config = cache_type | (cache_op << 8) | (cache_result << 16); in parse_generic_hw_event()
432 attr->type = PERF_TYPE_HW_CACHE; in parse_generic_hw_event()
464 attr->config = id; in parse_single_tracepoint_event()
465 attr->type = PERF_TYPE_TRACEPOINT; in parse_single_tracepoint_event()
468 attr->sample_type |= PERF_SAMPLE_RAW; in parse_single_tracepoint_event()
469 attr->sample_type |= PERF_SAMPLE_TIME; in parse_single_tracepoint_event()
470 attr->sample_type |= PERF_SAMPLE_CPU; in parse_single_tracepoint_event()
472 attr->sample_period = 1; in parse_single_tracepoint_event()
500 if (!strcmp(evt_ent->d_name, ".") in parse_multiple_tracepoint_event()
501 || !strcmp(evt_ent->d_name, "..") in parse_multiple_tracepoint_event()
502 || !strcmp(evt_ent->d_name, "enable") in parse_multiple_tracepoint_event()
503 || !strcmp(evt_ent->d_name, "filter")) in parse_multiple_tracepoint_event()
506 if (!strglobmatch(evt_ent->d_name, evt_exp)) in parse_multiple_tracepoint_event()
510 evt_ent->d_name, flags ? ":" : "", in parse_multiple_tracepoint_event()
538 sys_length = evt_name - *strp; in parse_tracepoint_event()
549 evt_name = strndup(evt_name, comma_loc - evt_name); in parse_tracepoint_event()
554 evt_name = strndup(evt_name, flags - evt_name); in parse_tracepoint_event()
583 attr->bp_type |= HW_BREAKPOINT_R; in parse_breakpoint_type()
586 attr->bp_type |= HW_BREAKPOINT_W; in parse_breakpoint_type()
589 attr->bp_type |= HW_BREAKPOINT_X; in parse_breakpoint_type()
595 if (!attr->bp_type) /* Default */ in parse_breakpoint_type()
596 attr->bp_type = HW_BREAKPOINT_R | HW_BREAKPOINT_W; in parse_breakpoint_type()
616 if (strncmp(*strp, "mem", target - *strp) != 0) in parse_breakpoint_event()
625 attr->bp_addr = addr; in parse_breakpoint_event()
632 attr->bp_type = HW_BREAKPOINT_R | HW_BREAKPOINT_W; in parse_breakpoint_event()
643 if (attr->bp_type == HW_BREAKPOINT_X) in parse_breakpoint_event()
644 attr->bp_len = sizeof(long); in parse_breakpoint_event()
646 attr->bp_len = HW_BREAKPOINT_LEN_4; in parse_breakpoint_event()
648 attr->type = PERF_TYPE_BREAKPOINT; in parse_breakpoint_event()
680 attr->type = event_symbols[i].type; in parse_symbolic_event()
681 attr->config = event_symbols[i].config; in parse_symbolic_event()
705 attr->type = PERF_TYPE_RAW; in parse_raw_event()
706 attr->config = config; in parse_raw_event()
725 attr->type = type; in parse_numeric_event()
726 attr->config = config; in parse_numeric_event()
748 return -1; in parse_event_modifier()
779 return -1; in parse_event_modifier()
783 attr->exclude_user = eu; in parse_event_modifier()
784 attr->exclude_kernel = ek; in parse_event_modifier()
785 attr->exclude_hv = eh; in parse_event_modifier()
786 attr->precise_ip = precise; in parse_event_modifier()
787 attr->exclude_host = eH; in parse_event_modifier()
788 attr->exclude_guest = eG; in parse_event_modifier()
794 * Each event can have multiple symbolic names.
795 * Symbolic names are (almost) exactly matched.
854 return -1; in parse_events()
857 return -1; in parse_events()
861 evsel = perf_evsel__new(&attr, evlist->nr_entries); in parse_events()
863 return -1; in parse_events()
866 evsel->name = calloc(str - ostr + 1, 1); in parse_events()
867 if (!evsel->name) in parse_events()
868 return -1; in parse_events()
869 strncpy(evsel->name, ostr, str - ostr); in parse_events()
886 struct perf_evlist *evlist = *(struct perf_evlist **)opt->value; in parse_events_option()
893 struct perf_evlist *evlist = *(struct perf_evlist **)opt->value; in parse_filter()
896 if (evlist->nr_entries > 0) in parse_filter()
897 last = list_entry(evlist->entries.prev, struct perf_evsel, node); in parse_filter()
899 if (last == NULL || last->attr.type != PERF_TYPE_TRACEPOINT) { in parse_filter()
901 "-F option should follow a -e tracepoint option\n"); in parse_filter()
902 return -1; in parse_filter()
905 last->filter = strdup(str); in parse_filter()
906 if (last->filter == NULL) { in parse_filter()
908 return -1; in parse_filter()
959 printf(" %-50s [%s]\n", evt_path, in print_tracepoint_events()
1015 if (type != syms->type) in print_events_type()
1018 if (strlen(syms->alias)) in print_events_type()
1020 syms->symbol, syms->alias); in print_events_type()
1022 snprintf(name, sizeof(name), "%s", syms->symbol); in print_events_type()
1024 printf(" %-50s [%s]\n", name, in print_events_type()
1045 printf(" %-50s [%s]\n", name, in print_hwcache_events()
1062 unsigned int i, type, prev_type = -1, printed = 0, ntypes_printed = 0; in print_events()
1067 printf("List of pre-defined events (to be used in -e):\n"); in print_events()
1070 type = syms->type; in print_events()
1079 !(strglobmatch(syms->symbol, event_glob) || in print_events()
1080 (syms->alias && strglobmatch(syms->alias, event_glob)))) in print_events()
1083 if (strlen(syms->alias)) in print_events()
1084 snprintf(name, MAX_NAME_LEN, "%s OR %s", syms->symbol, syms->alias); in print_events()
1086 strncpy(name, syms->symbol, MAX_NAME_LEN); in print_events()
1087 printf(" %-50s [%s]\n", name, in print_events()
1104 printf(" %-50s [%s]\n", in print_events()
1105 "rNNN (see 'perf list --help' on how to encode it)", in print_events()
1109 printf(" %-50s [%s]\n", in print_events()