brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.3 KiB · 4fb7944 Raw
133 lines · plain
1include "../../../../source/Commands/OptionsBase.td"2 3// The information of the start commands here should match the description of4// the intel-pt section of the jLLDBTraceStart packet in the5// lldb/docs/lldb-gdb-remote.txt documentation file. Similarly, it should match6// the API help message of TraceIntelPT::GetStartConfigurationHelp().7 8let Command = "thread trace start intel pt" in {9  def thread_trace_start_intel_pt_size10      : Option<"size", "s">,11        Group<1>,12        Arg<"Value">,13        Desc<14            "Trace size in bytes per thread. It must be a power of 2 greater "15            "than or equal to 4096 (2^12). The trace is circular keeping "16            "the most recent data. Defaults to 4096 bytes. It's possible to "17            "specify size using multiples of unit bytes, e.g., 4KB, 1MB, 1MiB, "18            "where 1K is 1024 bytes and 1M is 1048576 bytes.">;19  def thread_trace_start_intel_pt_tsc20      : Option<"tsc", "t">,21        Group<1>,22        Desc<"Enable the use of TSC timestamps. This is supported on all "23             "devices "24             "that support intel-pt.">;25  def thread_trace_start_intel_pt_psb_period26      : Option<"psb-period", "p">,27        Group<1>,28        Arg<"Value">,29        Desc<"This value defines the period in which PSB packets will be "30             "generated. A PSB packet is a synchronization packet that "31             "contains a "32             "TSC timestamp and the current absolute instruction pointer. "33             "This parameter can only be used if "34             "/sys/bus/event_source/devices/intel_pt/caps/psb_cyc is 1. "35             "Otherwise, "36             "the PSB period will be defined by the processor. If supported, "37             "valid "38             "values for this period can be found in "39             "/sys/bus/event_source/devices/intel_pt/caps/psb_periods which "40             "contains a hexadecimal number, whose bits represent valid values "41             "e.g. if bit 2 is set, then value 2 is valid. The psb_period "42             "value is "43             "converted to the approximate number of raw trace bytes between "44             "PSB "45             "packets as: 2 ^ (value + 11), e.g. value 3 means 16KiB between "46             "PSB "47             "packets. Defaults to 0 if supported.">;48}49 50let Command = "process trace start intel pt" in {51  def process_trace_start_intel_pt_buffer_size52      : Option<"buffer-size", "s">,53        Group<1>,54        Arg<"Value">,55        Desc<56            "Size in bytes used by each individual per-thread or per-cpu trace "57            "buffer. It must be a power of 2 greater than or equal to 4096 "58            "(2^12) "59            "bytes. It's possible to specify a unit for these bytes, like 4KB, "60            "16KiB or 1MB. Lower case units are allowed for convenience.">;61  def process_trace_start_intel_pt_per_cpu_tracing62      : Option<"per-cpu-tracing", "c">,63        Group<1>,64        Desc<65            "Instead of having an individual trace buffer per thread, which "66            "uses "67            "a number trace buffers proportional to the number of running "68            "threads, this option triggers the collection on a per cpu core "69            "basis. This effectively traces the entire activity on all cpus "70            "using a limited amount of trace buffers regardless of the number "71            "of "72            "threads. This might cause data loss for less frequent threads. "73            "This "74            "option forces the capture of TSC timestamps (see --tsc). Also, "75            "this "76            "option can't be used simulatenously with any other trace sessions "77            "because of its system-wide nature.">;78  def process_trace_start_intel_pt_process_size_limit79      : Option<"total-size-limit", "l">,80        Group<1>,81        Arg<"Value">,82        Desc<83            "Maximum total trace size per process in bytes. This limit applies "84            "to "85            "the sum of the sizes of all thread and cpu traces of this "86            "process, "87            "excluding the ones created with the \"thread trace start\" "88            "command. "89            "Whenever a thread is attempted to be traced due to this command "90            "and "91            "the limit would be reached, the process is stopped with a "92            "\"processor trace\" reason, so that the user can retrace the "93            "process "94            "if needed. Defaults to 500MB. It's possible to specify a unit for "95            "these bytes, like 4KB, 16KiB or 1MB. Lower case units are allowed "96            "for convenience.">;97  def process_trace_start_intel_pt_tsc98      : Option<"tsc", "t">,99        Group<1>,100        Desc<"Enable the use of TSC timestamps. This is supported on all "101             "devices "102             "that support intel-pt.">;103  def process_trace_start_intel_pt_psb_period104      : Option<"psb-period", "p">,105        Group<1>,106        Arg<"Value">,107        Desc<"This value defines the period in which PSB packets will be "108             "generated. A PSB packet is a synchronization packet that "109             "contains a "110             "TSC timestamp and the current absolute instruction pointer. "111             "This parameter can only be used if "112             "/sys/bus/event_source/devices/intel_pt/caps/psb_cyc is 1. "113             "Otherwise, "114             "the PSB period will be defined by the processor. If supported, "115             "valid "116             "values for this period can be found in "117             "/sys/bus/event_source/devices/intel_pt/caps/psb_periods which "118             "contains a hexadecimal number, whose bits represent valid values "119             "e.g. if bit 2 is set, then value 2 is valid. The psb_period "120             "value is "121             "converted to the approximate number of raw trace bytes between "122             "PSB "123             "packets as: 2 ^ (value + 11), e.g. value 3 means 16KiB between "124             "PSB "125             "packets. Defaults to 0 if supported.">;126  def process_trace_start_intel_pt_disable_cgroup_filtering127      : Option<"disable-cgroup-filtering", "d">,128        Desc<"Disable the automatic cgroup filtering that is applied if "129             "--per-cpu "130             "is provided. Cgroup filtering allows collecting intel pt data "131             "exclusively of processes of the same cgroup as the target.">;132}133