OPT_CALLBACK
OPT_CALLBACK('C', "cpus", NULL, "cpu[,cpu2,...cpuN]",
OPT_CALLBACK('M', "memnodes", NULL, "node[,node2,...nodeN]",
OPT_CALLBACK('G', "cgroups", NULL, "SEND,RECV",
OPT_CALLBACK(0, "symfs", NULL, "directory",
OPT_CALLBACK(0, "percent-type", &annotate_opts, "local-period",
OPT_CALLBACK(0, "percent-limit", &annotate, "percent",
OPT_CALLBACK('e', "event", &event_set, "event",
OPT_CALLBACK('c', "compute", &compute,
OPT_CALLBACK(0, "symfs", NULL, "directory",
OPT_CALLBACK(0, "percentage", NULL, "relative|absolute",
OPT_CALLBACK('T', "trace-funcs", &ftrace.filters, "func",
OPT_CALLBACK('N', "notrace-funcs", &ftrace.notrace, "func",
OPT_CALLBACK(0, "func-opts", &ftrace, "options",
OPT_CALLBACK('G', "graph-funcs", &ftrace.graph_funcs, "func",
OPT_CALLBACK('g', "nograph-funcs", &ftrace.nograph_funcs, "func",
OPT_CALLBACK(0, "graph-opts", &ftrace, "options",
OPT_CALLBACK('m', "buffer-size", &ftrace.percpu_buffer_size, "size",
OPT_CALLBACK('T', "trace-funcs", &ftrace.filters, "func",
OPT_CALLBACK('e', "events", &ftrace.event_pair, "event1,event2",
OPT_CALLBACK('T', "trace-funcs", &ftrace.filters, "func",
OPT_CALLBACK('N', "notrace-funcs", &ftrace.notrace, "func",
OPT_CALLBACK('G', "graph-funcs", &ftrace.graph_funcs, "func",
OPT_CALLBACK('g', "nograph-funcs", &ftrace.nograph_funcs, "func",
OPT_CALLBACK('m', "buffer-size", &ftrace.percpu_buffer_size, "size",
OPT_CALLBACK('s', "sort", &profile_sort, "key",
OPT_CALLBACK(0, "graph-opts", &ftrace, "options",
OPT_CALLBACK('s', "sort", NULL, "key[,key2...]",
OPT_CALLBACK('l', "line", NULL, "num", "show n lines", parse_line_opt),
OPT_CALLBACK('m', "mmap-pages", &kvm->opts.mmap_pages, "pages",
OPT_CALLBACK(0, "output", &output_name, "file", "output file name", parse_output),
OPT_CALLBACK('M', "map-nr-entries", &bpf_map_entries, "num",
OPT_CALLBACK(0, "max-stack", &max_stack_depth, "num",
OPT_CALLBACK('Y', "type-filter", NULL, "FLAGS",
OPT_CALLBACK('L', "lock-filter", NULL, "ADDRS/NAMES",
OPT_CALLBACK('S', "callstack-filter", NULL, "NAMES",
OPT_CALLBACK('G', "cgroup-filter", NULL, "CGROUPS",
OPT_CALLBACK('J', "inject-delay", NULL, "TIME@FUNC",
OPT_CALLBACK('t', "type", &mem.operation,
OPT_CALLBACK('e', "event", &mem, "event",
OPT_CALLBACK('d', "del", NULL, "[GROUP:]EVENT", "delete a probe event.",
OPT_CALLBACK('a', "add", NULL, PROBEDEF_STR,
OPT_CALLBACK('D', "definition", NULL, PROBEDEF_STR,
OPT_CALLBACK('L', "line", NULL,
OPT_CALLBACK('V', "vars", NULL,
OPT_CALLBACK('\0', "filter", NULL,
OPT_CALLBACK('x', "exec", NULL, "executable|path",
OPT_CALLBACK('m', "module", NULL, "modname|path",
OPT_CALLBACK(0, "target-ns", NULL, "pid",
OPT_CALLBACK('e', "event", &parse_events_option_args, "event",
OPT_CALLBACK(0, "filter", &record.evlist, "filter",
OPT_CALLBACK('F', "freq", &record.opts, "freq or 'max'",
OPT_CALLBACK('m', "mmap-pages", &record.opts, "pages[,pages]",
OPT_CALLBACK(0, "mmap-flush", &record.opts, "number",
OPT_CALLBACK(0, "call-graph", &record.opts,
OPT_CALLBACK('G', "cgroup", &record.evlist, "name",
OPT_CALLBACK('D', "delay", &record, "ms",
OPT_CALLBACK('j', "branch-filter", &record.opts.branch_stack,
OPT_CALLBACK('k', "clockid", &record.opts,
OPT_CALLBACK(0, "affinity", &record.opts, "node|cpu",
OPT_CALLBACK(0, "max-size", &record.output_max_size,
OPT_CALLBACK(0, "pfm-events", &record.evlist, "event",
OPT_CALLBACK(0, "control", &record.opts, "fd:ctl-fd[,ack-fd] or fifo:ctl-fifo[,ack-fifo]",
OPT_CALLBACK(0, "synth", &record.opts, "no|all|task|mmap|cgroup",
OPT_CALLBACK(0, "off-cpu-thresh", &record.opts, "ms",
OPT_CALLBACK(0, "ignore-callees", NULL, "regex",
OPT_CALLBACK(0, "symfs", NULL, "directory",
OPT_CALLBACK(0, "addr2line-style", NULL, "addr2line style",
OPT_CALLBACK(0, "percent-limit", &report, "percent",
OPT_CALLBACK(0, "percentage", NULL, "relative|absolute",
OPT_CALLBACK(0, "percent-type", &annotate_opts, "local-period",
OPT_CALLBACK(0, "time-quantum", &symbol_conf.time_quantum, "time (ms|us|ns|s)",
OPT_CALLBACK('s', "script", NULL, "name",
OPT_CALLBACK(0, "dlarg", NULL, "argument", "filter argument",
OPT_CALLBACK(0, "symfs", NULL, "directory",
OPT_CALLBACK('F', "fields", NULL, "str",
OPT_CALLBACK('e', "event", &parse_events_option_args, "event",
OPT_CALLBACK(0, "filter", &evsel_list, "filter",
OPT_CALLBACK('G', "cgroup", &evsel_list, "name",
OPT_CALLBACK(0, "tpebs-mode", &tpebs_mode, "tpebs-mode",
OPT_CALLBACK('M', "metrics", &evsel_list, "metric/metric group list",
OPT_CALLBACK(0, "cputype", &evsel_list, "hybrid cpu type",
OPT_CALLBACK(0, "pfm-events", &evsel_list, "event",
OPT_CALLBACK(0, "control", &stat_config, "fd:ctl-fd[,ack-fd] or fifo:ctl-fifo[,ack-fifo]",
OPT_CALLBACK(0, "highlight", NULL, "duration or task name",
OPT_CALLBACK('p', "process", NULL, "process",
OPT_CALLBACK(0, "symfs", NULL, "directory",
OPT_CALLBACK(0, "io-min-time", &tchart.min_time, "time",
OPT_CALLBACK(0, "io-merge-dist", &tchart.merge_dist, "time",
OPT_CALLBACK('e', "event", &parse_events_option_args, "event",
OPT_CALLBACK(0, "filter", &top.evlist, "filter",
OPT_CALLBACK('m', "mmap-pages", &opts->mmap_pages, "pages",
OPT_CALLBACK('F', "freq", &top.record_opts, "freq or 'max'",
OPT_CALLBACK(0, "call-graph", &callchain_param,
OPT_CALLBACK(0, "ignore-callees", NULL, "regex",
OPT_CALLBACK(0, "percent-limit", &top, "percent",
OPT_CALLBACK(0, "percentage", NULL, "relative|absolute",
OPT_CALLBACK('j', "branch-filter", &opts->branch_stack,
OPT_CALLBACK('G', "cgroup", &top.evlist, "name",
OPT_CALLBACK(0, "pfm-events", &top.evlist, "event",
OPT_CALLBACK('e', "event", &trace, "event",
OPT_CALLBACK(0, "filter", &trace.evlist, "filter",
OPT_CALLBACK(0, "expr", &trace, "expr", "list of syscalls/events to trace",
OPT_CALLBACK(0, "filter-pids", &trace, "CSV list of pids",
OPT_CALLBACK('m', "mmap-pages", &trace.opts.mmap_pages, "pages",
OPT_CALLBACK(0, "duration", &trace, "float",
OPT_CALLBACK(0, "summary-mode", &trace, "mode",
OPT_CALLBACK(0, "call-graph", &trace.opts,
OPT_CALLBACK('G', "cgroup", &trace, "name", "monitor event in cgroup name only",