Lines Matching +full:trace +full:- +full:buffer +full:- +full:extension
1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
5 * Copyright (C) 2008-2009, Thomas Gleixner <tglx@linutronix.de>
6 * Copyright (C) 2008-2011, Red Hat, Inc., Ingo Molnar
7 * Copyright (C) 2008-2011, Red Hat, Inc., Peter Zijlstra
13 * For licencing details see kernel-base/COPYING
23 * User-space ABI bits:
37 PERF_TYPE_MAX, /* non-ABI */
75 PERF_COUNT_HW_MAX, /* non-ABI */
81 * { L1-D, L1-I, LLC, ITLB, DTLB, BPU, NODE } x
94 PERF_COUNT_HW_CACHE_MAX, /* non-ABI */
102 PERF_COUNT_HW_CACHE_OP_MAX, /* non-ABI */
109 PERF_COUNT_HW_CACHE_RESULT_MAX, /* non-ABI */
132 PERF_COUNT_SW_MAX, /* non-ABI */
166 PERF_SAMPLE_MAX = 1U << 25, /* non-ABI */
209 PERF_SAMPLE_BRANCH_MAX_SHIFT /* non-ABI */
274 PERF_BR_NON_SPEC_CORRECT_PATH = 2, /* Non-speculative but on correct path */
332 PERF_TXN_MAX = (1 << 8), /* non-ABI */
369 PERF_FORMAT_MAX = 1U << 5, /* non-ABI */
427 task : 1, /* trace fork/exit */
432 * 0 - SAMPLE_IP can have arbitrary skid
433 * 1 - SAMPLE_IP must have constant skid
434 * 2 - SAMPLE_IP requested to have 0 skid
435 * 3 - SAMPLE_IP must have 0 skid
440 mmap_data : 1, /* non-exec mmap data */
452 write_backward : 1, /* Write ring buffer from end to beginning */
475 __u64 config1; /* extension of config */
481 __u64 config2; /* extension of config1 */
500 * - precise = 0: PMU interrupt
501 * - precise > 0: sampled instruction
519 * Note, siginfo_t::si_perf_data is long-sized, and sig_data will be
524 __u64 config3; /* extension of config2 */
543 * User provided buffer to store program ids
576 * Bits needed to read the hw events in user-space.
584 * seq = pc->lock;
587 * enabled = pc->time_enabled;
588 * running = pc->time_running;
590 * if (pc->cap_usr_time && enabled != running) {
592 * time_offset = pc->time_offset;
593 * time_mult = pc->time_mult;
594 * time_shift = pc->time_shift;
597 * index = pc->index;
598 * count = pc->offset;
599 * if (pc->cap_user_rdpmc && index) {
600 * width = pc->pmc_width;
601 * pmc = rdpmc(index - 1);
605 * } while (pc->lock != seq);
607 * NOTE: for obvious reason this only works on self-monitoring
630 * If cap_user_rdpmc this field provides the bit-width of the value
634 * pmc <<= 64 - width;
635 * pmc >>= 64 - width; // signed shift right
648 * rem = cyc & (((u64)1 << time_shift) - 1);
671 * time = timestamp - time_zero;
679 * rem = cyc & (((u64)1 << time_shift) - 1);
692 * cyc = time_cycles + ((cyc - time_cycles) & time_mask)
703 * Hole for extension of the self monitor capabilities
709 * Control data for the mmap() data buffer.
711 * User-space reading the @data_head value should issue an smp_rmb(),
716 * an smp_mb() to separate the data read from the ->data_tail store.
717 * In this case the kernel will not over-write unread data.
722 * buffer within the mmapped area.
725 __u64 data_tail; /* user-space written tail */
726 __u64 data_offset; /* where the buffer starts */
727 __u64 data_size; /* data buffer size */
737 * Ring buffer pointers aux_{head,tail} have the same semantics as
748 * ('|' used bit, '-' unused bit)
751 * |||---------||||
754 * 0-2 CPUMODE_MASK
778 * PERF_RECORD_MISC_MMAP_DATA - PERF_RECORD_MMAP* events
779 * PERF_RECORD_MISC_COMM_EXEC - PERF_RECORD_COMM event
780 * PERF_RECORD_MISC_FORK_EXEC - PERF_RECORD_FORK event (perf internal)
781 * PERF_RECORD_MISC_SWITCH_OUT - PERF_RECORD_SWITCH* events
791 * PERF_RECORD_MISC_EXACT_IP - PERF_RECORD_SAMPLE of precise events
792 * PERF_RECORD_MISC_SWITCH_OUT_PREEMPT - PERF_RECORD_SWITCH* events
793 * PERF_RECORD_MISC_MMAP_BUILD_ID - PERF_RECORD_MMAP2 event
1068 * Records that new data landed in the AUX buffer part.
1082 * Indicates that instruction trace has started
1118 * CPU-wide version of PERF_RECORD_SWITCH with next_prev_pid and
1188 * Records changes to kernel text i.e. self-modified code. 'old_len' is
1207 * to be matched to the event by an architecture-specific hardware ID.
1209 * event ID. e.g. Intel PT uses this record to disambiguate PEBS-via-PT
1220 PERF_RECORD_MAX, /* non-ABI */
1227 * Out of line code such as kprobe-replaced instructions or optimized
1231 PERF_RECORD_KSYMBOL_TYPE_MAX /* non-ABI */
1240 PERF_BPF_EVENT_MAX, /* non-ABI */
1247 PERF_CONTEXT_HV = (__u64)-32,
1248 PERF_CONTEXT_KERNEL = (__u64)-128,
1249 PERF_CONTEXT_USER = (__u64)-512,
1251 PERF_CONTEXT_GUEST = (__u64)-2048,
1252 PERF_CONTEXT_GUEST_KERNEL = (__u64)-2176,
1253 PERF_CONTEXT_GUEST_USER = (__u64)-2560,
1255 PERF_CONTEXT_MAX = (__u64)-4095,
1265 #define PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK 0xff00 /* PMU specific trace format type */
1267 /* CoreSight PMU AUX buffer formats */
1273 #define PERF_FLAG_PID_CGROUP (1UL << 2) /* pid=cgroup id, per-cpu mode only */
1333 #define PERF_MEM_LVL_LFB 0x10 /* Line Fill Buffer */
1352 #define PERF_MEM_LVLNUM_L2_MHB 0x05 /* L2 Miss Handling Buffer */
1353 #define PERF_MEM_LVLNUM_MSC 0x06 /* Memory-side Cache */
1359 #define PERF_MEM_LVLNUM_LFB 0x0c /* LFB / L1 Miss Handling Buffer */
1404 /* 5-7 available */