Linux Perf
intel-pt.c File Reference
#include <inttypes.h>
#include <stdio.h>
#include <stdbool.h>
#include <errno.h>
#include <linux/kernel.h>
#include <linux/types.h>
#include "../perf.h"
#include "session.h"
#include "machine.h"
#include "memswap.h"
#include "sort.h"
#include "tool.h"
#include "event.h"
#include "evlist.h"
#include "evsel.h"
#include "map.h"
#include "color.h"
#include "util.h"
#include "thread.h"
#include "thread-stack.h"
#include "symbol.h"
#include "callchain.h"
#include "dso.h"
#include "debug.h"
#include "auxtrace.h"
#include "tsc.h"
#include "intel-pt.h"
#include "config.h"
#include "intel-pt-decoder/intel-pt-log.h"
#include "intel-pt-decoder/intel-pt-decoder.h"
#include "intel-pt-decoder/intel-pt-insn-decoder.h"
#include "intel-pt-decoder/intel-pt-pkt-decoder.h"
Include dependency graph for intel-pt.c:

Go to the source code of this file.

Classes

struct  intel_pt
 
struct  intel_pt_queue
 
struct  intel_pt_cache_entry
 
struct  intel_pt_synth
 

Macros

#define MAX_TIMESTAMP   (~0ULL)
 
#define INTEL_PT_PWR_EVT
 

Enumerations

enum  switch_state {
  INTEL_PT_SS_NOT_TRACING, INTEL_PT_SS_UNKNOWN, INTEL_PT_SS_TRACING, INTEL_PT_SS_EXPECTING_SWITCH_EVENT,
  INTEL_PT_SS_EXPECTING_SWITCH_IP
}
 

Functions

static void intel_pt_dump (struct intel_pt *pt __maybe_unused, unsigned char *buf, size_t len)
 
static void intel_pt_dump_event (struct intel_pt *pt, unsigned char *buf, size_t len)
 
static int intel_pt_do_fix_overlap (struct intel_pt *pt, struct auxtrace_buffer *a, struct auxtrace_buffer *b)
 
static int intel_pt_get_trace (struct intel_pt_buffer *b, void *data)
 
static int intel_pt_config_div (const char *var, const char *value, void *data)
 
static int intel_pt_cache_divisor (void)
 
static unsigned int intel_pt_cache_size (struct dso *dso, struct machine *machine)
 
static struct auxtrace_cacheintel_pt_cache (struct dso *dso, struct machine *machine)
 
static int intel_pt_cache_add (struct dso *dso, struct machine *machine, u64 offset, u64 insn_cnt, u64 byte_cnt, struct intel_pt_insn *intel_pt_insn)
 
static struct intel_pt_cache_entryintel_pt_cache_lookup (struct dso *dso, struct machine *machine, u64 offset)
 
static int intel_pt_walk_next_insn (struct intel_pt_insn *intel_pt_insn, uint64_t *insn_cnt_ptr, uint64_t *ip, uint64_t to_ip, uint64_t max_insn_cnt, void *data)
 
static bool intel_pt_match_pgd_ip (struct intel_pt *pt, uint64_t ip, uint64_t offset, const char *filename)
 
static int __intel_pt_pgd_ip (uint64_t ip, void *data)
 
static bool intel_pt_pgd_ip (uint64_t ip, void *data)
 
static bool intel_pt_get_config (struct intel_pt *pt, struct perf_event_attr *attr, u64 *config)
 
static bool intel_pt_exclude_kernel (struct intel_pt *pt)
 
static bool intel_pt_return_compression (struct intel_pt *pt)
 
static bool intel_pt_branch_enable (struct intel_pt *pt)
 
static unsigned int intel_pt_mtc_period (struct intel_pt *pt)
 
static bool intel_pt_timeless_decoding (struct intel_pt *pt)
 
static bool intel_pt_tracing_kernel (struct intel_pt *pt)
 
static bool intel_pt_have_tsc (struct intel_pt *pt)
 
static u64 intel_pt_ns_to_ticks (const struct intel_pt *pt, u64 ns)
 
static struct intel_pt_queueintel_pt_alloc_queue (struct intel_pt *pt, unsigned int queue_nr)
 
static void intel_pt_free_queue (void *priv)
 
static void intel_pt_set_pid_tid_cpu (struct intel_pt *pt, struct auxtrace_queue *queue)
 
static void intel_pt_sample_flags (struct intel_pt_queue *ptq)
 
static int intel_pt_setup_queue (struct intel_pt *pt, struct auxtrace_queue *queue, unsigned int queue_nr)
 
static int intel_pt_setup_queues (struct intel_pt *pt)
 
static void intel_pt_copy_last_branch_rb (struct intel_pt_queue *ptq)
 
static void intel_pt_reset_last_branch_rb (struct intel_pt_queue *ptq)
 
static void intel_pt_update_last_branch_rb (struct intel_pt_queue *ptq)
 
static bool intel_pt_skip_event (struct intel_pt *pt)
 
static void intel_pt_prep_b_sample (struct intel_pt *pt, struct intel_pt_queue *ptq, union perf_event *event, struct perf_sample *sample)
 
static int intel_pt_inject_event (union perf_event *event, struct perf_sample *sample, u64 type)
 
static int intel_pt_opt_inject (struct intel_pt *pt, union perf_event *event, struct perf_sample *sample, u64 type)
 
static int intel_pt_deliver_synth_b_event (struct intel_pt *pt, union perf_event *event, struct perf_sample *sample, u64 type)
 
static int intel_pt_synth_branch_sample (struct intel_pt_queue *ptq)
 
static void intel_pt_prep_sample (struct intel_pt *pt, struct intel_pt_queue *ptq, union perf_event *event, struct perf_sample *sample)
 
static int intel_pt_deliver_synth_event (struct intel_pt *pt, struct intel_pt_queue *ptq, union perf_event *event, struct perf_sample *sample, u64 type)
 
static int intel_pt_synth_instruction_sample (struct intel_pt_queue *ptq)
 
static int intel_pt_synth_transaction_sample (struct intel_pt_queue *ptq)
 
static void intel_pt_prep_p_sample (struct intel_pt *pt, struct intel_pt_queue *ptq, union perf_event *event, struct perf_sample *sample)
 
static int intel_pt_synth_ptwrite_sample (struct intel_pt_queue *ptq)
 
static int intel_pt_synth_cbr_sample (struct intel_pt_queue *ptq)
 
static int intel_pt_synth_mwait_sample (struct intel_pt_queue *ptq)
 
static int intel_pt_synth_pwre_sample (struct intel_pt_queue *ptq)
 
static int intel_pt_synth_exstop_sample (struct intel_pt_queue *ptq)
 
static int intel_pt_synth_pwrx_sample (struct intel_pt_queue *ptq)
 
static int intel_pt_synth_error (struct intel_pt *pt, int code, int cpu, pid_t pid, pid_t tid, u64 ip)
 
static int intel_pt_next_tid (struct intel_pt *pt, struct intel_pt_queue *ptq)
 
static bool intel_pt_is_switch_ip (struct intel_pt_queue *ptq, u64 ip)
 
static int intel_pt_sample (struct intel_pt_queue *ptq)
 
static u64 intel_pt_switch_ip (struct intel_pt *pt, u64 *ptss_ip)
 
static void intel_pt_enable_sync_switch (struct intel_pt *pt)
 
static int intel_pt_run_decoder (struct intel_pt_queue *ptq, u64 *timestamp)
 
static int intel_pt_update_queues (struct intel_pt *pt)
 
static int intel_pt_process_queues (struct intel_pt *pt, u64 timestamp)
 
static int intel_pt_process_timeless_queues (struct intel_pt *pt, pid_t tid, u64 time_)
 
static int intel_pt_lost (struct intel_pt *pt, struct perf_sample *sample)
 
static struct intel_pt_queueintel_pt_cpu_to_ptq (struct intel_pt *pt, int cpu)
 
static int intel_pt_sync_switch (struct intel_pt *pt, int cpu, pid_t tid, u64 timestamp)
 
static int intel_pt_process_switch (struct intel_pt *pt, struct perf_sample *sample)
 
static int intel_pt_context_switch (struct intel_pt *pt, union perf_event *event, struct perf_sample *sample)
 
static int intel_pt_process_itrace_start (struct intel_pt *pt, union perf_event *event, struct perf_sample *sample)
 
static int intel_pt_process_event (struct perf_session *session, union perf_event *event, struct perf_sample *sample, struct perf_tool *tool)
 
static int intel_pt_flush (struct perf_session *session, struct perf_tool *tool)
 
static void intel_pt_free_events (struct perf_session *session)
 
static void intel_pt_free (struct perf_session *session)
 
static int intel_pt_process_auxtrace_event (struct perf_session *session, union perf_event *event, struct perf_tool *tool __maybe_unused)
 
static int intel_pt_event_synth (struct perf_tool *tool, union perf_event *event, struct perf_sample *sample __maybe_unused, struct machine *machine __maybe_unused)
 
static int intel_pt_synth_event (struct perf_session *session, const char *name, struct perf_event_attr *attr, u64 id)
 
static void intel_pt_set_event_name (struct perf_evlist *evlist, u64 id, const char *name)
 
static struct perf_evselintel_pt_evsel (struct intel_pt *pt, struct perf_evlist *evlist)
 
static int intel_pt_synth_events (struct intel_pt *pt, struct perf_session *session)
 
static struct perf_evselintel_pt_find_sched_switch (struct perf_evlist *evlist)
 
static bool intel_pt_find_switch (struct perf_evlist *evlist)
 
static int intel_pt_perf_config (const char *var, const char *value, void *data)
 
static void intel_pt_print_info (u64 *arr, int start, int finish)
 
static void intel_pt_print_info_str (const char *name, const char *str)
 
static bool intel_pt_has (struct auxtrace_info_event *auxtrace_info, int pos)
 
int intel_pt_process_auxtrace_info (union perf_event *event, struct perf_session *session)
 

Variables

static const char *const intel_pt_info_fmts []
 

Macro Definition Documentation

◆ INTEL_PT_PWR_EVT

#define INTEL_PT_PWR_EVT
Value:

Definition at line 1443 of file intel-pt.c.

◆ MAX_TIMESTAMP

#define MAX_TIMESTAMP   (~0ULL)

Definition at line 51 of file intel-pt.c.

Enumeration Type Documentation

◆ switch_state

Enumerator
INTEL_PT_SS_NOT_TRACING 
INTEL_PT_SS_UNKNOWN 
INTEL_PT_SS_TRACING 
INTEL_PT_SS_EXPECTING_SWITCH_EVENT 
INTEL_PT_SS_EXPECTING_SWITCH_IP 

Definition at line 123 of file intel-pt.c.

Function Documentation

◆ __intel_pt_pgd_ip()

static int __intel_pt_pgd_ip ( uint64_t  ip,
void *  data 
)
static

Definition at line 581 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_alloc_queue()

static struct intel_pt_queue* intel_pt_alloc_queue ( struct intel_pt pt,
unsigned int  queue_nr 
)
static

Definition at line 748 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_branch_enable()

static bool intel_pt_branch_enable ( struct intel_pt pt)
static

Definition at line 652 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_cache()

static struct auxtrace_cache* intel_pt_cache ( struct dso dso,
struct machine machine 
)
static

Definition at line 350 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_cache_add()

static int intel_pt_cache_add ( struct dso dso,
struct machine machine,
u64  offset,
u64  insn_cnt,
u64  byte_cnt,
struct intel_pt_insn intel_pt_insn 
)
static

Definition at line 369 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_cache_divisor()

static int intel_pt_cache_divisor ( void  )
static

Definition at line 321 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_cache_lookup()

static struct intel_pt_cache_entry* intel_pt_cache_lookup ( struct dso dso,
struct machine machine,
u64  offset 
)
static

Definition at line 400 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_cache_size()

static unsigned int intel_pt_cache_size ( struct dso dso,
struct machine machine 
)
static

Definition at line 336 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_config_div()

static int intel_pt_config_div ( const char *  var,
const char *  value,
void *  data 
)
static

Definition at line 307 of file intel-pt.c.

◆ intel_pt_context_switch()

static int intel_pt_context_switch ( struct intel_pt pt,
union perf_event event,
struct perf_sample sample 
)
static

Definition at line 1887 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_copy_last_branch_rb()

static void intel_pt_copy_last_branch_rb ( struct intel_pt_queue ptq)
inlinestatic

Definition at line 993 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_cpu_to_ptq()

static struct intel_pt_queue* intel_pt_cpu_to_ptq ( struct intel_pt pt,
int  cpu 
)
static

Definition at line 1789 of file intel-pt.c.

◆ intel_pt_deliver_synth_b_event()

static int intel_pt_deliver_synth_b_event ( struct intel_pt pt,
union perf_event event,
struct perf_sample sample,
u64  type 
)
static

Definition at line 1092 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_deliver_synth_event()

static int intel_pt_deliver_synth_event ( struct intel_pt pt,
struct intel_pt_queue ptq,
union perf_event event,
struct perf_sample sample,
u64  type 
)
inlinestatic

Definition at line 1168 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_do_fix_overlap()

static int intel_pt_do_fix_overlap ( struct intel_pt pt,
struct auxtrace_buffer a,
struct auxtrace_buffer b 
)
static

Definition at line 209 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_dump()

static void intel_pt_dump ( struct intel_pt *pt  __maybe_unused,
unsigned char *  buf,
size_t  len 
)
static

Definition at line 163 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_dump_event()

static void intel_pt_dump_event ( struct intel_pt pt,
unsigned char *  buf,
size_t  len 
)
static

Definition at line 202 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_enable_sync_switch()

static void intel_pt_enable_sync_switch ( struct intel_pt pt)
static

Definition at line 1605 of file intel-pt.c.

◆ intel_pt_event_synth()

static int intel_pt_event_synth ( struct perf_tool tool,
union perf_event event,
struct perf_sample *sample  __maybe_unused,
struct machine *machine  __maybe_unused 
)
static

Definition at line 2105 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_evsel()

static struct perf_evsel* intel_pt_evsel ( struct intel_pt pt,
struct perf_evlist evlist 
)
static

Definition at line 2153 of file intel-pt.c.

◆ intel_pt_exclude_kernel()

static bool intel_pt_exclude_kernel ( struct intel_pt pt)
static

Definition at line 624 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_find_sched_switch()

static struct perf_evsel* intel_pt_find_sched_switch ( struct perf_evlist evlist)
static

Definition at line 2319 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_find_switch()

static bool intel_pt_find_switch ( struct perf_evlist evlist)
static

Definition at line 2333 of file intel-pt.c.

◆ intel_pt_flush()

static int intel_pt_flush ( struct perf_session session,
struct perf_tool tool 
)
static

Definition at line 2009 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_free()

static void intel_pt_free ( struct perf_session session)
static

Definition at line 2047 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_free_events()

static void intel_pt_free_events ( struct perf_session session)
static

Definition at line 2032 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_free_queue()

static void intel_pt_free_queue ( void *  priv)
static

Definition at line 852 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_get_config()

static bool intel_pt_get_config ( struct intel_pt pt,
struct perf_event_attr *  attr,
u64 *  config 
)
static

Definition at line 612 of file intel-pt.c.

◆ intel_pt_get_trace()

static int intel_pt_get_trace ( struct intel_pt_buffer b,
void *  data 
)
static

Definition at line 227 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_has()

static bool intel_pt_has ( struct auxtrace_info_event auxtrace_info,
int  pos 
)
static

Definition at line 2393 of file intel-pt.c.

◆ intel_pt_have_tsc()

static bool intel_pt_have_tsc ( struct intel_pt pt)
static

Definition at line 718 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_inject_event()

static int intel_pt_inject_event ( union perf_event event,
struct perf_sample sample,
u64  type 
)
static

Definition at line 1075 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_is_switch_ip()

static bool intel_pt_is_switch_ip ( struct intel_pt_queue ptq,
u64  ip 
)
inlinestatic

Definition at line 1433 of file intel-pt.c.

◆ intel_pt_lost()

static int intel_pt_lost ( struct intel_pt pt,
struct perf_sample sample 
)
static

Definition at line 1783 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_match_pgd_ip()

static bool intel_pt_match_pgd_ip ( struct intel_pt pt,
uint64_t  ip,
uint64_t  offset,
const char *  filename 
)
static

Definition at line 543 of file intel-pt.c.

◆ intel_pt_mtc_period()

static unsigned int intel_pt_mtc_period ( struct intel_pt pt)
static

Definition at line 665 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_next_tid()

static int intel_pt_next_tid ( struct intel_pt pt,
struct intel_pt_queue ptq 
)
static

Definition at line 1412 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_ns_to_ticks()

static u64 intel_pt_ns_to_ticks ( const struct intel_pt pt,
u64  ns 
)
static

Definition at line 738 of file intel-pt.c.

◆ intel_pt_opt_inject()

static int intel_pt_opt_inject ( struct intel_pt pt,
union perf_event event,
struct perf_sample sample,
u64  type 
)
inlinestatic

Definition at line 1082 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_perf_config()

static int intel_pt_perf_config ( const char *  var,
const char *  value,
void *  data 
)
static

Definition at line 2345 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_pgd_ip()

static bool intel_pt_pgd_ip ( uint64_t  ip,
void *  data 
)
static

Definition at line 607 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_prep_b_sample()

static void intel_pt_prep_b_sample ( struct intel_pt pt,
struct intel_pt_queue ptq,
union perf_event event,
struct perf_sample sample 
)
static

Definition at line 1051 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_prep_p_sample()

static void intel_pt_prep_p_sample ( struct intel_pt pt,
struct intel_pt_queue ptq,
union perf_event event,
struct perf_sample sample 
)
static

Definition at line 1223 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_prep_sample()

static void intel_pt_prep_sample ( struct intel_pt pt,
struct intel_pt_queue ptq,
union perf_event event,
struct perf_sample sample 
)
static

Definition at line 1149 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_print_info()

static void intel_pt_print_info ( u64 *  arr,
int  start,
int  finish 
)
static

Definition at line 2374 of file intel-pt.c.

◆ intel_pt_print_info_str()

static void intel_pt_print_info_str ( const char *  name,
const char *  str 
)
static

Definition at line 2385 of file intel-pt.c.

◆ intel_pt_process_auxtrace_event()

static int intel_pt_process_auxtrace_event ( struct perf_session session,
union perf_event event,
struct perf_tool *tool  __maybe_unused 
)
static

Definition at line 2061 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_process_auxtrace_info()

int intel_pt_process_auxtrace_info ( union perf_event event,
struct perf_session session 
)

Definition at line 2399 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_process_event()

static int intel_pt_process_event ( struct perf_session session,
union perf_event event,
struct perf_sample sample,
struct perf_tool tool 
)
static

Definition at line 1945 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_process_itrace_start()

static int intel_pt_process_itrace_start ( struct intel_pt pt,
union perf_event event,
struct perf_sample sample 
)
static

Definition at line 1928 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_process_queues()

static int intel_pt_process_queues ( struct intel_pt pt,
u64  timestamp 
)
static

Definition at line 1708 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_process_switch()

static int intel_pt_process_switch ( struct intel_pt pt,
struct perf_sample sample 
)
static

Definition at line 1862 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_process_timeless_queues()

static int intel_pt_process_timeless_queues ( struct intel_pt pt,
pid_t  tid,
u64  time_ 
)
static

Definition at line 1763 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_reset_last_branch_rb()

static void intel_pt_reset_last_branch_rb ( struct intel_pt_queue ptq)
inlinestatic

Definition at line 1016 of file intel-pt.c.

◆ intel_pt_return_compression()

static bool intel_pt_return_compression ( struct intel_pt pt)
static

Definition at line 636 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_run_decoder()

static int intel_pt_run_decoder ( struct intel_pt_queue ptq,
u64 *  timestamp 
)
static

Definition at line 1620 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_sample()

static int intel_pt_sample ( struct intel_pt_queue ptq)
static

Definition at line 1447 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_sample_flags()

static void intel_pt_sample_flags ( struct intel_pt_queue ptq)
static

Definition at line 887 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_set_event_name()

static void intel_pt_set_event_name ( struct perf_evlist evlist,
u64  id,
const char *  name 
)
static

Definition at line 2138 of file intel-pt.c.

◆ intel_pt_set_pid_tid_cpu()

static void intel_pt_set_pid_tid_cpu ( struct intel_pt pt,
struct auxtrace_queue queue 
)
static

Definition at line 867 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_setup_queue()

static int intel_pt_setup_queue ( struct intel_pt pt,
struct auxtrace_queue queue,
unsigned int  queue_nr 
)
static

Definition at line 913 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_setup_queues()

static int intel_pt_setup_queues ( struct intel_pt pt)
static

Definition at line 980 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_skip_event()

static bool intel_pt_skip_event ( struct intel_pt pt)
inlinestatic

Definition at line 1045 of file intel-pt.c.

◆ intel_pt_switch_ip()

static u64 intel_pt_switch_ip ( struct intel_pt pt,
u64 *  ptss_ip 
)
static

Definition at line 1553 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_sync_switch()

static int intel_pt_sync_switch ( struct intel_pt pt,
int  cpu,
pid_t  tid,
u64  timestamp 
)
static

Definition at line 1817 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_branch_sample()

static int intel_pt_synth_branch_sample ( struct intel_pt_queue ptq)
static

Definition at line 1109 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_cbr_sample()

static int intel_pt_synth_cbr_sample ( struct intel_pt_queue ptq)
static

Definition at line 1264 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_error()

static int intel_pt_synth_error ( struct intel_pt pt,
int  code,
int  cpu,
pid_t  pid,
pid_t  tid,
u64  ip 
)
static

Definition at line 1392 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_event()

static int intel_pt_synth_event ( struct perf_session session,
const char *  name,
struct perf_event_attr *  attr,
u64  id 
)
static

Definition at line 2117 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_events()

static int intel_pt_synth_events ( struct intel_pt pt,
struct perf_session session 
)
static

Definition at line 2166 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_exstop_sample()

static int intel_pt_synth_exstop_sample ( struct intel_pt_queue ptq)
static

Definition at line 1342 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_instruction_sample()

static int intel_pt_synth_instruction_sample ( struct intel_pt_queue ptq)
static

Definition at line 1184 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_mwait_sample()

static int intel_pt_synth_mwait_sample ( struct intel_pt_queue ptq)
static

Definition at line 1292 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_ptwrite_sample()

static int intel_pt_synth_ptwrite_sample ( struct intel_pt_queue ptq)
static

Definition at line 1238 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_pwre_sample()

static int intel_pt_synth_pwre_sample ( struct intel_pt_queue ptq)
static

Definition at line 1317 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_pwrx_sample()

static int intel_pt_synth_pwrx_sample ( struct intel_pt_queue ptq)
static

Definition at line 1367 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_synth_transaction_sample()

static int intel_pt_synth_transaction_sample ( struct intel_pt_queue ptq)
static

Definition at line 1205 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_timeless_decoding()

static bool intel_pt_timeless_decoding ( struct intel_pt pt)
static

Definition at line 684 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_tracing_kernel()

static bool intel_pt_tracing_kernel ( struct intel_pt pt)
static

Definition at line 706 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_update_last_branch_rb()

static void intel_pt_update_last_branch_rb ( struct intel_pt_queue ptq)
static

Definition at line 1022 of file intel-pt.c.

◆ intel_pt_update_queues()

static int intel_pt_update_queues ( struct intel_pt pt)
inlinestatic

Definition at line 1699 of file intel-pt.c.

Here is the call graph for this function:

◆ intel_pt_walk_next_insn()

static int intel_pt_walk_next_insn ( struct intel_pt_insn intel_pt_insn,
uint64_t *  insn_cnt_ptr,
uint64_t *  ip,
uint64_t  to_ip,
uint64_t  max_insn_cnt,
void *  data 
)
static

Definition at line 410 of file intel-pt.c.

Here is the call graph for this function:

Variable Documentation

◆ intel_pt_info_fmts

const char* const intel_pt_info_fmts[]
static
Initial value:
= {
[INTEL_PT_PMU_TYPE] = " PMU Type %"PRId64"\n",
[INTEL_PT_TIME_SHIFT] = " Time Shift %"PRIu64"\n",
[INTEL_PT_TIME_MULT] = " Time Muliplier %"PRIu64"\n",
[INTEL_PT_TIME_ZERO] = " Time Zero %"PRIu64"\n",
[INTEL_PT_CAP_USER_TIME_ZERO] = " Cap Time Zero %"PRId64"\n",
[INTEL_PT_TSC_BIT] = " TSC bit %#"PRIx64"\n",
[INTEL_PT_NORETCOMP_BIT] = " NoRETComp bit %#"PRIx64"\n",
[INTEL_PT_HAVE_SCHED_SWITCH] = " Have sched_switch %"PRId64"\n",
[INTEL_PT_SNAPSHOT_MODE] = " Snapshot mode %"PRId64"\n",
[INTEL_PT_PER_CPU_MMAPS] = " Per-cpu maps %"PRId64"\n",
[INTEL_PT_MTC_BIT] = " MTC bit %#"PRIx64"\n",
[INTEL_PT_TSC_CTC_N] = " TSC:CTC numerator %"PRIu64"\n",
[INTEL_PT_TSC_CTC_D] = " TSC:CTC denominator %"PRIu64"\n",
[INTEL_PT_CYC_BIT] = " CYC bit %#"PRIx64"\n",
[INTEL_PT_MAX_NONTURBO_RATIO] = " Max non-turbo ratio %"PRIu64"\n",
[INTEL_PT_FILTER_STR_LEN] = " Filter string len. %"PRIu64"\n",
}

Definition at line 2355 of file intel-pt.c.