perf record: Move record_opts and other record decls out of perf.h

And into a separate util/record.h, to better isolate things and make
sure that those who use record_opts and the other moved declarations
are explicitly including the necessary header.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-31q8mei1qkh74qvkl9nwidfq@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 38b7b678
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include <linux/zalloc.h> #include <linux/zalloc.h>
#include "cs-etm.h" #include "cs-etm.h"
#include "../../perf.h" #include "../../util/record.h"
#include "../../util/auxtrace.h" #include "../../util/auxtrace.h"
#include "../../util/cpumap.h" #include "../../util/cpumap.h"
#include "../../util/evlist.h" #include "../../util/evlist.h"
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#include "../../util/pmu.h" #include "../../util/pmu.h"
#include "../../util/debug.h" #include "../../util/debug.h"
#include "../../util/auxtrace.h" #include "../../util/auxtrace.h"
#include "../../util/record.h"
#include "../../util/arm-spe.h" #include "../../util/arm-spe.h"
#define KiB(x) ((x) * 1024) #define KiB(x) ((x) * 1024)
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "../../util/evlist.h" #include "../../util/evlist.h"
#include "../../util/auxtrace.h" #include "../../util/auxtrace.h"
#include "../../util/evsel.h" #include "../../util/evsel.h"
#include "../../util/record.h"
#define PERF_EVENT_CPUM_SF 0xB0000 /* Event: Basic-sampling */ #define PERF_EVENT_CPUM_SF 0xB0000 /* Event: Basic-sampling */
#define PERF_EVENT_CPUM_SF_DIAG 0xBD000 /* Event: Combined-sampling */ #define PERF_EVENT_CPUM_SF_DIAG 0xBD000 /* Event: Combined-sampling */
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <errno.h> #include <errno.h>
#include <inttypes.h> #include <inttypes.h>
#include <stdbool.h>
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <linux/types.h> #include <linux/types.h>
...@@ -13,6 +14,7 @@ ...@@ -13,6 +14,7 @@
#include "evsel.h" #include "evsel.h"
#include "thread_map.h" #include "thread_map.h"
#include "cpumap.h" #include "cpumap.h"
#include "record.h"
#include "tsc.h" #include "tsc.h"
#include "tests/tests.h" #include "tests/tests.h"
......
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "../../util/session.h" #include "../../util/session.h"
#include "../../util/pmu.h" #include "../../util/pmu.h"
#include "../../util/debug.h" #include "../../util/debug.h"
#include "../../util/record.h"
#include "../../util/tsc.h" #include "../../util/tsc.h"
#include "../../util/auxtrace.h" #include "../../util/auxtrace.h"
#include "../../util/intel-bts.h" #include "../../util/intel-bts.h"
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include <linux/zalloc.h> #include <linux/zalloc.h>
#include <cpuid.h> #include <cpuid.h>
#include "../../perf.h"
#include "../../util/session.h" #include "../../util/session.h"
#include "../../util/event.h" #include "../../util/event.h"
#include "../../util/evlist.h" #include "../../util/evlist.h"
...@@ -24,6 +23,8 @@ ...@@ -24,6 +23,8 @@
#include "../../util/pmu.h" #include "../../util/pmu.h"
#include "../../util/debug.h" #include "../../util/debug.h"
#include "../../util/auxtrace.h" #include "../../util/auxtrace.h"
#include "../../util/record.h"
#include "../../util/target.h"
#include "../../util/tsc.h" #include "../../util/tsc.h"
#include "../../util/intel-pt.h" #include "../../util/intel-pt.h"
......
...@@ -8,8 +8,6 @@ ...@@ -8,8 +8,6 @@
*/ */
#include "builtin.h" #include "builtin.h"
#include "perf.h"
#include "util/build-id.h" #include "util/build-id.h"
#include <subcmd/parse-options.h> #include <subcmd/parse-options.h>
#include "util/parse-events.h" #include "util/parse-events.h"
...@@ -22,9 +20,11 @@ ...@@ -22,9 +20,11 @@
#include "util/evlist.h" #include "util/evlist.h"
#include "util/evsel.h" #include "util/evsel.h"
#include "util/debug.h" #include "util/debug.h"
#include "util/target.h"
#include "util/session.h" #include "util/session.h"
#include "util/tool.h" #include "util/tool.h"
#include "util/symbol.h" #include "util/symbol.h"
#include "util/record.h"
#include "util/cpumap.h" #include "util/cpumap.h"
#include "util/thread_map.h" #include "util/thread_map.h"
#include "util/data.h" #include "util/data.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "builtin.h" #include "builtin.h"
#include "perf.h"
#include "util/cache.h" #include "util/cache.h"
#include "util/counts.h" #include "util/counts.h"
#include "util/debug.h" #include "util/debug.h"
...@@ -51,6 +50,7 @@ ...@@ -51,6 +50,7 @@
#include <unistd.h> #include <unistd.h>
#include <subcmd/pager.h> #include <subcmd/pager.h>
#include <perf/evlist.h> #include <perf/evlist.h>
#include "util/record.h"
#include <linux/ctype.h> #include <linux/ctype.h>
......
...@@ -40,7 +40,6 @@ ...@@ -40,7 +40,6 @@
* Jaswinder Singh Rajput <jaswinder@kernel.org> * Jaswinder Singh Rajput <jaswinder@kernel.org>
*/ */
#include "perf.h"
#include "builtin.h" #include "builtin.h"
#include "util/cgroup.h" #include "util/cgroup.h"
#include <subcmd/parse-options.h> #include <subcmd/parse-options.h>
...@@ -62,6 +61,7 @@ ...@@ -62,6 +61,7 @@
#include "util/tool.h" #include "util/tool.h"
#include "util/string2.h" #include "util/string2.h"
#include "util/metricgroup.h" #include "util/metricgroup.h"
#include "util/target.h"
#include "util/top.h" #include "util/top.h"
#include "asm/bug.h" #include "asm/bug.h"
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
* http://lwn.net/Articles/415728/ ("Announcing a new utility: 'trace'") * http://lwn.net/Articles/415728/ ("Announcing a new utility: 'trace'")
*/ */
#include "util/record.h"
#include <traceevent/event-parse.h> #include <traceevent/event-parse.h>
#include <api/fs/tracing_path.h> #include <api/fs/tracing_path.h>
#include <bpf/bpf.h> #include <bpf/bpf.h>
......
...@@ -35,63 +35,6 @@ extern const char perf_version_string[]; ...@@ -35,63 +35,6 @@ extern const char perf_version_string[];
void pthread__unblock_sigwinch(void); void pthread__unblock_sigwinch(void);
#include "util/target.h"
struct record_opts {
struct target target;
bool group;
bool inherit_stat;
bool no_buffering;
bool no_inherit;
bool no_inherit_set;
bool no_samples;
bool raw_samples;
bool sample_address;
bool sample_phys_addr;
bool sample_weight;
bool sample_time;
bool sample_time_set;
bool sample_cpu;
bool period;
bool period_set;
bool running_time;
bool full_auxtrace;
bool auxtrace_snapshot_mode;
bool auxtrace_snapshot_on_exit;
bool record_namespaces;
bool record_switch_events;
bool all_kernel;
bool all_user;
bool kernel_callchains;
bool user_callchains;
bool tail_synthesize;
bool overwrite;
bool ignore_missing_thread;
bool strict_freq;
bool sample_id;
bool no_bpf_event;
unsigned int freq;
unsigned int mmap_pages;
unsigned int auxtrace_mmap_pages;
unsigned int user_freq;
u64 branch_stack;
u64 sample_intr_regs;
u64 sample_user_regs;
u64 default_interval;
u64 user_interval;
size_t auxtrace_snapshot_size;
const char *auxtrace_snapshot_opts;
bool sample_transaction;
unsigned initial_delay;
bool use_clockid;
clockid_t clockid;
u64 clockid_res_ns;
int nr_cblocks;
int affinity;
int mmap_flush;
unsigned int comp_level;
};
enum perf_affinity { enum perf_affinity {
PERF_AFFINITY_SYS = 0, PERF_AFFINITY_SYS = 0,
PERF_AFFINITY_NODE, PERF_AFFINITY_NODE,
...@@ -99,10 +42,5 @@ enum perf_affinity { ...@@ -99,10 +42,5 @@ enum perf_affinity {
PERF_AFFINITY_MAX PERF_AFFINITY_MAX
}; };
struct option;
extern const char * const *record_usage;
extern struct option *record_options;
extern int version_verbose; extern int version_verbose;
int record__parse_freq(const struct option *opt, const char *str, int unset);
#endif #endif
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
* beginning * beginning
*/ */
#include <perf.h>
#include <evlist.h> #include <evlist.h>
#include <sys/prctl.h> #include <sys/prctl.h>
#include "record.h"
#include "tests.h" #include "tests.h"
#include "debug.h" #include "debug.h"
#include <errno.h> #include <errno.h>
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
#include <util/record.h>
#include <util/util.h> #include <util/util.h>
#include <util/bpf-loader.h> #include <util/bpf-loader.h>
#include <util/evlist.h> #include <util/evlist.h>
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "map.h" #include "map.h"
#include "symbol.h" #include "symbol.h"
#include "event.h" #include "event.h"
#include "record.h"
#include "thread.h" #include "thread.h"
#include "tests.h" #include "tests.h"
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "parse-events.h" #include "parse-events.h"
#include "evlist.h" #include "evlist.h"
#include "evsel.h" #include "evsel.h"
#include "record.h"
#include "thread_map.h" #include "thread_map.h"
#include "cpumap.h" #include "cpumap.h"
#include "tests.h" #include "tests.h"
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include <stdbool.h>
#include <linux/err.h> #include <linux/err.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <fcntl.h> #include <fcntl.h>
#include "perf.h"
#include "evlist.h" #include "evlist.h"
#include "evsel.h" #include "evsel.h"
#include "thread_map.h" #include "thread_map.h"
#include "record.h"
#include "tests.h" #include "tests.h"
#include "debug.h" #include "debug.h"
#include <errno.h> #include <errno.h>
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
#include <sched.h> #include <sched.h>
#include "evlist.h" #include "evlist.h"
#include "evsel.h" #include "evsel.h"
#include "perf.h"
#include "debug.h" #include "debug.h"
#include "record.h"
#include "tests.h" #include "tests.h"
static int sched__get_first_possible_cpu(pid_t pid, cpu_set_t *maskp) static int sched__get_first_possible_cpu(pid_t pid, cpu_set_t *maskp)
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "evsel.h" #include "evsel.h"
#include "thread_map.h" #include "thread_map.h"
#include "cpumap.h" #include "cpumap.h"
#include "record.h"
#include "tests.h" #include "tests.h"
static int spin_sleep(void) static int spin_sleep(void)
......
// SPDX-License-Identifier: GPL-2.0 // SPDX-License-Identifier: GPL-2.0
#include "evlist.h" #include "evlist.h"
#include "evsel.h" #include "evsel.h"
#include "target.h"
#include "thread_map.h" #include "thread_map.h"
#include "cpumap.h" #include "cpumap.h"
#include "tests.h" #include "tests.h"
......
...@@ -26,7 +26,6 @@ ...@@ -26,7 +26,6 @@
#include <linux/list.h> #include <linux/list.h>
#include <linux/zalloc.h> #include <linux/zalloc.h>
#include "../perf.h"
#include "evlist.h" #include "evlist.h"
#include "dso.h" #include "dso.h"
#include "map.h" #include "map.h"
...@@ -41,6 +40,7 @@ ...@@ -41,6 +40,7 @@
#include <linux/hash.h> #include <linux/hash.h>
#include "event.h" #include "event.h"
#include "record.h"
#include "session.h" #include "session.h"
#include "debug.h" #include "debug.h"
#include <subcmd/parse-options.h> #include <subcmd/parse-options.h>
......
...@@ -14,6 +14,7 @@ ...@@ -14,6 +14,7 @@
#include "session.h" #include "session.h"
#include "map.h" #include "map.h"
#include "evlist.h" #include "evlist.h"
#include "record.h"
#define ptr_to_u64(ptr) ((__u64)(unsigned long)(ptr)) #define ptr_to_u64(ptr) ((__u64)(unsigned long)(ptr))
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include "thread_map.h" #include "thread_map.h"
#include "target.h" #include "target.h"
#include "perf_regs.h" #include "perf_regs.h"
#include "record.h"
#include "debug.h" #include "debug.h"
#include "trace-event.h" #include "trace-event.h"
#include "stat.h" #include "stat.h"
......
...@@ -2,9 +2,9 @@ ...@@ -2,9 +2,9 @@
#ifndef __PERF_KVM_STAT_H #ifndef __PERF_KVM_STAT_H
#define __PERF_KVM_STAT_H #define __PERF_KVM_STAT_H
#include "../perf.h"
#include "tool.h" #include "tool.h"
#include "stat.h" #include "stat.h"
#include "record.h"
struct evsel; struct evsel;
struct evlist; struct evlist;
......
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
#include "symbol.h" #include "symbol.h"
#include "sort.h" #include "sort.h"
#include "strlist.h" #include "strlist.h"
#include "target.h"
#include "thread.h" #include "thread.h"
#include "vdso.h" #include "vdso.h"
#include <stdbool.h> #include <stdbool.h>
......
...@@ -14,6 +14,7 @@ struct branch_stack; ...@@ -14,6 +14,7 @@ struct branch_stack;
struct evsel; struct evsel;
struct perf_sample; struct perf_sample;
struct symbol; struct symbol;
struct target;
struct thread; struct thread;
union perf_event; union perf_event;
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <perf/cpumap.h> #include <perf/cpumap.h>
#include "util.h" #include "util.h"
#include "cloexec.h" #include "cloexec.h"
#include "record.h"
typedef void (*setup_probe_fn_t)(struct evsel *evsel); typedef void (*setup_probe_fn_t)(struct evsel *evsel);
......
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _PERF_RECORD_H
#define _PERF_RECORD_H
#include <time.h>
#include <stdbool.h>
#include <linux/types.h>
#include <linux/stddef.h>
#include <linux/perf_event.h>
#include "util/target.h"
struct option;
struct record_opts {
struct target target;
bool group;
bool inherit_stat;
bool no_buffering;
bool no_inherit;
bool no_inherit_set;
bool no_samples;
bool raw_samples;
bool sample_address;
bool sample_phys_addr;
bool sample_weight;
bool sample_time;
bool sample_time_set;
bool sample_cpu;
bool period;
bool period_set;
bool running_time;
bool full_auxtrace;
bool auxtrace_snapshot_mode;
bool auxtrace_snapshot_on_exit;
bool record_namespaces;
bool record_switch_events;
bool all_kernel;
bool all_user;
bool kernel_callchains;
bool user_callchains;
bool tail_synthesize;
bool overwrite;
bool ignore_missing_thread;
bool strict_freq;
bool sample_id;
bool no_bpf_event;
unsigned int freq;
unsigned int mmap_pages;
unsigned int auxtrace_mmap_pages;
unsigned int user_freq;
u64 branch_stack;
u64 sample_intr_regs;
u64 sample_user_regs;
u64 default_interval;
u64 user_interval;
size_t auxtrace_snapshot_size;
const char *auxtrace_snapshot_opts;
bool sample_transaction;
unsigned initial_delay;
bool use_clockid;
clockid_t clockid;
u64 clockid_res_ns;
int nr_cblocks;
int affinity;
int mmap_flush;
unsigned int comp_level;
};
extern const char * const *record_usage;
extern struct option *record_options;
int record__parse_freq(const struct option *opt, const char *str, int unset);
#endif // _PERF_RECORD_H
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
#include <math.h> #include <math.h>
#include "counts.h" #include "counts.h"
#include "stat.h" #include "stat.h"
#include "target.h"
#include "evlist.h" #include "evlist.h"
#include "evsel.h" #include "evsel.h"
#include "thread_map.h" #include "thread_map.h"
......
...@@ -198,6 +198,8 @@ int perf_stat_process_counter(struct perf_stat_config *config, ...@@ -198,6 +198,8 @@ int perf_stat_process_counter(struct perf_stat_config *config,
struct perf_tool; struct perf_tool;
union perf_event; union perf_event;
struct perf_session; struct perf_session;
struct target;
int perf_event__process_stat_event(struct perf_session *session, int perf_event__process_stat_event(struct perf_session *session,
union perf_event *event); union perf_event *event);
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
#include "tool.h" #include "tool.h"
#include "evswitch.h" #include "evswitch.h"
#include "annotate.h" #include "annotate.h"
#include "record.h"
#include <linux/types.h> #include <linux/types.h>
#include <stddef.h> #include <stddef.h>
#include <stdbool.h> #include <stdbool.h>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment