File: TraceIntelPTOptions.td

package info (click to toggle)
llvm-toolchain-17 1%3A17.0.6-22
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,799,624 kB
  • sloc: cpp: 6,428,607; ansic: 1,383,196; asm: 793,408; python: 223,504; objc: 75,364; f90: 60,502; lisp: 33,869; pascal: 15,282; sh: 9,684; perl: 7,453; ml: 4,937; awk: 3,523; makefile: 2,889; javascript: 2,149; xml: 888; fortran: 619; cs: 573
file content (132 lines) | stat: -rw-r--r-- 6,401 bytes parent folder | download | duplicates (12)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
include "../../../../source/Commands/OptionsBase.td"

// The information of the start commands here should match the description of
// the intel-pt section of the jLLDBTraceStart packet in the
// lldb/docs/lldb-gdb-remote.txt documentation file. Similarly, it should match
// the API help message of TraceIntelPT::GetStartConfigurationHelp().

let Command = "thread trace start intel pt" in {
  def thread_trace_start_intel_pt_size
      : Option<"size", "s">,
        Group<1>,
        Arg<"Value">,
        Desc<
            "Trace size in bytes per thread. It must be a power of 2 greater "
            "than or equal to 4096 (2^12). The trace is circular keeping "
            "the most recent data. Defaults to 4096 bytes. It's possible to "
            "specify size using multiples of unit bytes, e.g., 4KB, 1MB, 1MiB, "
            "where 1K is 1024 bytes and 1M is 1048576 bytes.">;
  def thread_trace_start_intel_pt_tsc
      : Option<"tsc", "t">,
        Group<1>,
        Desc<"Enable the use of TSC timestamps. This is supported on all "
             "devices "
             "that support intel-pt.">;
  def thread_trace_start_intel_pt_psb_period
      : Option<"psb-period", "p">,
        Group<1>,
        Arg<"Value">,
        Desc<"This value defines the period in which PSB packets will be "
             "generated. A PSB packet is a synchronization packet that "
             "contains a "
             "TSC timestamp and the current absolute instruction pointer. "
             "This parameter can only be used if "
             "/sys/bus/event_source/devices/intel_pt/caps/psb_cyc is 1. "
             "Otherwise, "
             "the PSB period will be defined by the processor. If supported, "
             "valid "
             "values for this period can be found in "
             "/sys/bus/event_source/devices/intel_pt/caps/psb_periods which "
             "contains a hexadecimal number, whose bits represent valid values "
             "e.g. if bit 2 is set, then value 2 is valid. The psb_period "
             "value is "
             "converted to the approximate number of raw trace bytes between "
             "PSB "
             "packets as: 2 ^ (value + 11), e.g. value 3 means 16KiB between "
             "PSB "
             "packets. Defaults to 0 if supported.">;
}

let Command = "process trace start intel pt" in {
  def process_trace_start_intel_pt_buffer_size
      : Option<"buffer-size", "s">,
        Group<1>,
        Arg<"Value">,
        Desc<
            "Size in bytes used by each individual per-thread or per-cpu trace "
            "buffer. It must be a power of 2 greater than or equal to 4096 "
            "(2^12) "
            "bytes. It's possible to specify a unit for these bytes, like 4KB, "
            "16KiB or 1MB. Lower case units are allowed for convenience.">;
  def process_trace_start_intel_pt_per_cpu_tracing
      : Option<"per-cpu-tracing", "c">,
        Group<1>,
        Desc<
            "Instead of having an individual trace buffer per thread, which "
            "uses "
            "a number trace buffers proportional to the number of running "
            "threads, this option triggers the collection on a per cpu core "
            "basis. This effectively traces the entire activity on all cpus "
            "using a limited amount of trace buffers regardless of the number "
            "of "
            "threads. This might cause data loss for less frequent threads. "
            "This "
            "option forces the capture of TSC timestamps (see --tsc). Also, "
            "this "
            "option can't be used simulatenously with any other trace sessions "
            "because of its system-wide nature.">;
  def process_trace_start_intel_pt_process_size_limit
      : Option<"total-size-limit", "l">,
        Group<1>,
        Arg<"Value">,
        Desc<
            "Maximum total trace size per process in bytes. This limit applies "
            "to "
            "the sum of the sizes of all thread and cpu traces of this "
            "process, "
            "excluding the ones created with the \"thread trace start\" "
            "command. "
            "Whenever a thread is attempted to be traced due to this command "
            "and "
            "the limit would be reached, the process is stopped with a "
            "\"processor trace\" reason, so that the user can retrace the "
            "process "
            "if needed. Defaults to 500MB. It's possible to specify a unit for "
            "these bytes, like 4KB, 16KiB or 1MB. Lower case units are allowed "
            "for convenience.">;
  def process_trace_start_intel_pt_tsc
      : Option<"tsc", "t">,
        Group<1>,
        Desc<"Enable the use of TSC timestamps. This is supported on all "
             "devices "
             "that support intel-pt.">;
  def process_trace_start_intel_pt_psb_period
      : Option<"psb-period", "p">,
        Group<1>,
        Arg<"Value">,
        Desc<"This value defines the period in which PSB packets will be "
             "generated. A PSB packet is a synchronization packet that "
             "contains a "
             "TSC timestamp and the current absolute instruction pointer. "
             "This parameter can only be used if "
             "/sys/bus/event_source/devices/intel_pt/caps/psb_cyc is 1. "
             "Otherwise, "
             "the PSB period will be defined by the processor. If supported, "
             "valid "
             "values for this period can be found in "
             "/sys/bus/event_source/devices/intel_pt/caps/psb_periods which "
             "contains a hexadecimal number, whose bits represent valid values "
             "e.g. if bit 2 is set, then value 2 is valid. The psb_period "
             "value is "
             "converted to the approximate number of raw trace bytes between "
             "PSB "
             "packets as: 2 ^ (value + 11), e.g. value 3 means 16KiB between "
             "PSB "
             "packets. Defaults to 0 if supported.">;
  def process_trace_start_intel_pt_disable_cgroup_filtering
      : Option<"disable-cgroup-filtering", "d">,
        Desc<"Disable the automatic cgroup filtering that is applied if "
             "--per-cpu "
             "is provided. Cgroup filtering allows collecting intel pt data "
             "exclusively of processes of the same cgroup as the target.">;
}