etm 151 drivers/clk/mxs/clk-imx23.c clks[etm] = mxs_clk_gate("etm", "etm_div", ETM, 31); etm 223 drivers/clk/mxs/clk-imx28.c clks[etm] = mxs_clk_gate("etm", "etm_div", ETM, 31); etm 8432 drivers/infiniband/hw/qib/qib_iba7322.c u8 *portsel, *etm; etm 8443 drivers/infiniband/hw/qib/qib_iba7322.c etm = atetm_1port; etm 8446 drivers/infiniband/hw/qib/qib_iba7322.c etm = atetm_2port; etm 8459 drivers/infiniband/hw/qib/qib_iba7322.c qib_r_shift(dd, BISTEN_ETM, LEN_ETM, etm, NULL) < 0 || etm 893 drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c DB8500_FUNC_GROUPS(etm, "etmr4_oc2_1", "etmr4_oc3_1"); etm 951 drivers/pinctrl/nomadik/pinctrl-nomadik-db8500.c FUNCTION(etm), etm 84 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm; etm 97 tools/perf/util/cs-etm.c static int cs_etm__update_queues(struct cs_etm_auxtrace *etm); etm 98 tools/perf/util/cs-etm.c static int cs_etm__process_queues(struct cs_etm_auxtrace *etm); etm 99 tools/perf/util/cs-etm.c static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm, etm 236 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = etmq->etm; etm 240 tools/perf/util/cs-etm.c queue = &etmq->etm->queues.queue_array[etmq->queue_nr]; etm 253 tools/perf/util/cs-etm.c if (etm->synth_opts.last_branch) { etm 256 tools/perf/util/cs-etm.c sz += etm->synth_opts.last_branch_sz * etm 288 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = etmq->etm; etm 290 tools/perf/util/cs-etm.c if (etm->timeless_decoding) etm 380 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm, int idx, etm 383 tools/perf/util/cs-etm.c u64 **metadata = etm->metadata; etm 391 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm, int idx) etm 393 tools/perf/util/cs-etm.c u64 **metadata = etm->metadata; etm 405 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm) etm 411 tools/perf/util/cs-etm.c for (i = 0; i < etm->num_cpu; i++) { etm 412 tools/perf/util/cs-etm.c architecture = etm->metadata[i][CS_ETM_MAGIC]; etm 416 tools/perf/util/cs-etm.c etmidr = etm->metadata[i][CS_ETM_ETMIDR]; etm 417 tools/perf/util/cs-etm.c cs_etm__set_trace_param_etmv3(t_params, etm, i, etmidr); etm 420 tools/perf/util/cs-etm.c cs_etm__set_trace_param_etmv4(t_params, etm, i); etm 452 tools/perf/util/cs-etm.c static void cs_etm__dump_event(struct cs_etm_auxtrace *etm, etm 468 tools/perf/util/cs-etm.c t_params = zalloc(sizeof(*t_params) * etm->num_cpu); etm 473 tools/perf/util/cs-etm.c if (cs_etm__init_trace_params(t_params, etm)) etm 481 tools/perf/util/cs-etm.c decoder = cs_etm_decoder__new(etm->num_cpu, &d_params, t_params); etm 508 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = container_of(session->auxtrace, etm 517 tools/perf/util/cs-etm.c ret = cs_etm__update_queues(etm); etm 522 tools/perf/util/cs-etm.c if (etm->timeless_decoding) etm 523 tools/perf/util/cs-etm.c return cs_etm__process_timeless_queues(etm, -1); etm 525 tools/perf/util/cs-etm.c return cs_etm__process_queues(etm); etm 621 tools/perf/util/cs-etm.c machine = etmq->etm->machine; etm 623 tools/perf/util/cs-etm.c if (address >= etmq->etm->kernel_start) { etm 652 tools/perf/util/cs-etm.c machine = etmq->etm->machine; etm 662 tools/perf/util/cs-etm.c thread = etmq->etm->unknown_thread; etm 684 tools/perf/util/cs-etm.c static struct cs_etm_queue *cs_etm__alloc_queue(struct cs_etm_auxtrace *etm) etm 699 tools/perf/util/cs-etm.c t_params = zalloc(sizeof(*t_params) * etm->num_cpu); etm 704 tools/perf/util/cs-etm.c if (cs_etm__init_trace_params(t_params, etm)) etm 712 tools/perf/util/cs-etm.c etmq->decoder = cs_etm_decoder__new(etm->num_cpu, &d_params, t_params); etm 738 tools/perf/util/cs-etm.c static int cs_etm__setup_queue(struct cs_etm_auxtrace *etm, etm 751 tools/perf/util/cs-etm.c etmq = cs_etm__alloc_queue(etm); etm 759 tools/perf/util/cs-etm.c etmq->etm = etm; etm 763 tools/perf/util/cs-etm.c if (etm->timeless_decoding) etm 823 tools/perf/util/cs-etm.c ret = auxtrace_heap__add(&etm->heap, cs_queue_nr, timestamp); etm 828 tools/perf/util/cs-etm.c static int cs_etm__setup_queues(struct cs_etm_auxtrace *etm) etm 833 tools/perf/util/cs-etm.c if (!etm->kernel_start) etm 834 tools/perf/util/cs-etm.c etm->kernel_start = machine__kernel_start(etm->machine); etm 836 tools/perf/util/cs-etm.c for (i = 0; i < etm->queues.nr_queues; i++) { etm 837 tools/perf/util/cs-etm.c ret = cs_etm__setup_queue(etm, &etm->queues.queue_array[i], i); etm 845 tools/perf/util/cs-etm.c static int cs_etm__update_queues(struct cs_etm_auxtrace *etm) etm 847 tools/perf/util/cs-etm.c if (etm->queues.new_data) { etm 848 tools/perf/util/cs-etm.c etm->queues.new_data = false; etm 849 tools/perf/util/cs-etm.c return cs_etm__setup_queues(etm); etm 880 tools/perf/util/cs-etm.c nr = etmq->etm->synth_opts.last_branch_sz - tidq->last_branch_pos; etm 892 tools/perf/util/cs-etm.c if (bs_src->nr >= etmq->etm->synth_opts.last_branch_sz) { etm 973 tools/perf/util/cs-etm.c tidq->last_branch_pos = etmq->etm->synth_opts.last_branch_sz; etm 988 tools/perf/util/cs-etm.c if (bs->nr < etmq->etm->synth_opts.last_branch_sz) etm 1007 tools/perf/util/cs-etm.c queue = &etmq->etm->queues.queue_array[etmq->queue_nr]; etm 1024 tools/perf/util/cs-etm.c int fd = perf_data__fd(etmq->etm->session->data); etm 1042 tools/perf/util/cs-etm.c static void cs_etm__set_pid_tid_cpu(struct cs_etm_auxtrace *etm, etm 1046 tools/perf/util/cs-etm.c tidq->thread = machine__find_thread(etm->machine, -1, etm 1057 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = etmq->etm; etm 1067 tools/perf/util/cs-etm.c err = machine__set_current_tid(etm->machine, cpu, tid, tid); etm 1074 tools/perf/util/cs-etm.c cs_etm__set_pid_tid_cpu(etm, tidq); etm 1080 tools/perf/util/cs-etm.c return !!etmq->etm->timeless_decoding; etm 1117 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = etmq->etm; etm 1128 tools/perf/util/cs-etm.c sample.id = etmq->etm->instructions_id; etm 1129 tools/perf/util/cs-etm.c sample.stream_id = etmq->etm->instructions_id; etm 1137 tools/perf/util/cs-etm.c if (etm->synth_opts.last_branch) { etm 1142 tools/perf/util/cs-etm.c if (etm->synth_opts.inject) { etm 1144 tools/perf/util/cs-etm.c etm->instructions_sample_type); etm 1149 tools/perf/util/cs-etm.c ret = perf_session__deliver_synth_event(etm->session, event, &sample); etm 1156 tools/perf/util/cs-etm.c if (etm->synth_opts.last_branch) etm 1170 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = etmq->etm; etm 1189 tools/perf/util/cs-etm.c sample.id = etmq->etm->branches_id; etm 1190 tools/perf/util/cs-etm.c sample.stream_id = etmq->etm->branches_id; etm 1202 tools/perf/util/cs-etm.c if (etm->synth_opts.last_branch) { etm 1213 tools/perf/util/cs-etm.c if (etm->synth_opts.inject) { etm 1215 tools/perf/util/cs-etm.c etm->branches_sample_type); etm 1220 tools/perf/util/cs-etm.c ret = perf_session__deliver_synth_event(etm->session, event, &sample); etm 1259 tools/perf/util/cs-etm.c static int cs_etm__synth_events(struct cs_etm_auxtrace *etm, etm 1270 tools/perf/util/cs-etm.c if (evsel->core.attr.type == etm->pmu_type) { etm 1287 tools/perf/util/cs-etm.c if (etm->timeless_decoding) etm 1306 tools/perf/util/cs-etm.c if (etm->synth_opts.branches) { etm 1313 tools/perf/util/cs-etm.c etm->sample_branches = true; etm 1314 tools/perf/util/cs-etm.c etm->branches_sample_type = attr.sample_type; etm 1315 tools/perf/util/cs-etm.c etm->branches_id = id; etm 1320 tools/perf/util/cs-etm.c if (etm->synth_opts.last_branch) etm 1323 tools/perf/util/cs-etm.c if (etm->synth_opts.instructions) { etm 1325 tools/perf/util/cs-etm.c attr.sample_period = etm->synth_opts.period; etm 1326 tools/perf/util/cs-etm.c etm->instructions_sample_period = attr.sample_period; etm 1330 tools/perf/util/cs-etm.c etm->sample_instructions = true; etm 1331 tools/perf/util/cs-etm.c etm->instructions_sample_type = attr.sample_type; etm 1332 tools/perf/util/cs-etm.c etm->instructions_id = id; etm 1342 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = etmq->etm; etm 1354 tools/perf/util/cs-etm.c if (etm->synth_opts.last_branch && etm 1359 tools/perf/util/cs-etm.c if (etm->sample_instructions && etm 1360 tools/perf/util/cs-etm.c tidq->period_instructions >= etm->instructions_sample_period) { etm 1368 tools/perf/util/cs-etm.c etm->instructions_sample_period; etm 1380 tools/perf/util/cs-etm.c etmq, tidq, addr, etm->instructions_sample_period); etm 1388 tools/perf/util/cs-etm.c if (etm->sample_branches) { etm 1407 tools/perf/util/cs-etm.c if (etm->sample_branches || etm->synth_opts.last_branch) { etm 1443 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = etmq->etm; etm 1450 tools/perf/util/cs-etm.c if (etmq->etm->synth_opts.last_branch && etm 1471 tools/perf/util/cs-etm.c if (etm->sample_branches && etm 1479 tools/perf/util/cs-etm.c if (etm->sample_branches || etm->synth_opts.last_branch) { etm 1506 tools/perf/util/cs-etm.c if (etmq->etm->synth_opts.last_branch && etm 2061 tools/perf/util/cs-etm.c static int cs_etm__process_timeless_queues(struct cs_etm_auxtrace *etm, etm 2065 tools/perf/util/cs-etm.c struct auxtrace_queues *queues = &etm->queues; etm 2068 tools/perf/util/cs-etm.c struct auxtrace_queue *queue = &etm->queues.queue_array[i]; etm 2082 tools/perf/util/cs-etm.c cs_etm__set_pid_tid_cpu(etm, tidq); etm 2090 tools/perf/util/cs-etm.c static int cs_etm__process_queues(struct cs_etm_auxtrace *etm) etm 2101 tools/perf/util/cs-etm.c if (!etm->heap.heap_cnt) etm 2105 tools/perf/util/cs-etm.c cs_queue_nr = etm->heap.heap_array[0].queue_nr; etm 2108 tools/perf/util/cs-etm.c queue = &etm->queues.queue_array[queue_nr]; etm 2115 tools/perf/util/cs-etm.c auxtrace_heap__pop(&etm->heap); etm 2182 tools/perf/util/cs-etm.c ret = auxtrace_heap__add(&etm->heap, cs_queue_nr, timestamp); etm 2189 tools/perf/util/cs-etm.c static int cs_etm__process_itrace_start(struct cs_etm_auxtrace *etm, etm 2194 tools/perf/util/cs-etm.c if (etm->timeless_decoding) etm 2201 tools/perf/util/cs-etm.c th = machine__findnew_thread(etm->machine, etm 2212 tools/perf/util/cs-etm.c static int cs_etm__process_switch_cpu_wide(struct cs_etm_auxtrace *etm, etm 2222 tools/perf/util/cs-etm.c if (etm->timeless_decoding) etm 2237 tools/perf/util/cs-etm.c th = machine__findnew_thread(etm->machine, etm 2255 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = container_of(session->auxtrace, etm 2272 tools/perf/util/cs-etm.c if (timestamp || etm->timeless_decoding) { etm 2273 tools/perf/util/cs-etm.c err = cs_etm__update_queues(etm); etm 2278 tools/perf/util/cs-etm.c if (etm->timeless_decoding && etm 2280 tools/perf/util/cs-etm.c return cs_etm__process_timeless_queues(etm, etm 2284 tools/perf/util/cs-etm.c return cs_etm__process_itrace_start(etm, event); etm 2286 tools/perf/util/cs-etm.c return cs_etm__process_switch_cpu_wide(etm, event); etm 2288 tools/perf/util/cs-etm.c if (!etm->timeless_decoding && etm 2290 tools/perf/util/cs-etm.c return cs_etm__process_queues(etm); etm 2299 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = container_of(session->auxtrace, etm 2302 tools/perf/util/cs-etm.c if (!etm->data_queued) { etm 2317 tools/perf/util/cs-etm.c err = auxtrace_queues__add_event(&etm->queues, session, etm 2324 tools/perf/util/cs-etm.c cs_etm__dump_event(etm, buffer); etm 2332 tools/perf/util/cs-etm.c static bool cs_etm__is_timeless_decoding(struct cs_etm_auxtrace *etm) etm 2335 tools/perf/util/cs-etm.c struct evlist *evlist = etm->session->evlist; etm 2401 tools/perf/util/cs-etm.c struct cs_etm_auxtrace *etm = NULL; etm 2528 tools/perf/util/cs-etm.c etm = zalloc(sizeof(*etm)); etm 2530 tools/perf/util/cs-etm.c if (!etm) { etm 2535 tools/perf/util/cs-etm.c err = auxtrace_queues__init(&etm->queues); etm 2539 tools/perf/util/cs-etm.c etm->session = session; etm 2540 tools/perf/util/cs-etm.c etm->machine = &session->machines.host; etm 2542 tools/perf/util/cs-etm.c etm->num_cpu = num_cpu; etm 2543 tools/perf/util/cs-etm.c etm->pmu_type = pmu_type; etm 2544 tools/perf/util/cs-etm.c etm->snapshot_mode = (hdr[CS_ETM_SNAPSHOT] != 0); etm 2545 tools/perf/util/cs-etm.c etm->metadata = metadata; etm 2546 tools/perf/util/cs-etm.c etm->auxtrace_type = auxtrace_info->type; etm 2547 tools/perf/util/cs-etm.c etm->timeless_decoding = cs_etm__is_timeless_decoding(etm); etm 2549 tools/perf/util/cs-etm.c etm->auxtrace.process_event = cs_etm__process_event; etm 2550 tools/perf/util/cs-etm.c etm->auxtrace.process_auxtrace_event = cs_etm__process_auxtrace_event; etm 2551 tools/perf/util/cs-etm.c etm->auxtrace.flush_events = cs_etm__flush_events; etm 2552 tools/perf/util/cs-etm.c etm->auxtrace.free_events = cs_etm__free_events; etm 2553 tools/perf/util/cs-etm.c etm->auxtrace.free = cs_etm__free; etm 2554 tools/perf/util/cs-etm.c session->auxtrace = &etm->auxtrace; etm 2556 tools/perf/util/cs-etm.c etm->unknown_thread = thread__new(999999999, 999999999); etm 2557 tools/perf/util/cs-etm.c if (!etm->unknown_thread) { etm 2566 tools/perf/util/cs-etm.c INIT_LIST_HEAD(&etm->unknown_thread->node); etm 2568 tools/perf/util/cs-etm.c err = thread__set_comm(etm->unknown_thread, "unknown", 0); etm 2572 tools/perf/util/cs-etm.c if (thread__init_map_groups(etm->unknown_thread, etm->machine)) { etm 2583 tools/perf/util/cs-etm.c etm->synth_opts = *session->itrace_synth_opts; etm 2585 tools/perf/util/cs-etm.c itrace_synth_opts__set_default(&etm->synth_opts, etm 2587 tools/perf/util/cs-etm.c etm->synth_opts.callchain = false; etm 2590 tools/perf/util/cs-etm.c err = cs_etm__synth_events(etm, session); etm 2594 tools/perf/util/cs-etm.c err = auxtrace_queues__process_index(&etm->queues, session); etm 2598 tools/perf/util/cs-etm.c etm->data_queued = etm->queues.populated; etm 2603 tools/perf/util/cs-etm.c thread__zput(etm->unknown_thread); etm 2605 tools/perf/util/cs-etm.c auxtrace_queues__free(&etm->queues); etm 2608 tools/perf/util/cs-etm.c zfree(&etm);