Contributors: 21
Author Tokens Token Proportion Commits Commit Proportion
Adrian Hunter 67 21.97% 11 16.42%
Arnaldo Carvalho de Melo 63 20.66% 10 14.93%
Jiri Olsa 28 9.18% 8 11.94%
Namhyung Kim 27 8.85% 5 7.46%
Alexey Budankov 22 7.21% 6 8.96%
Roberto Agostino Vitillo 16 5.25% 1 1.49%
Andi Kleen 12 3.93% 4 5.97%
Peter Zijlstra 10 3.28% 2 2.99%
Kan Liang 9 2.95% 3 4.48%
Stéphane Eranian 8 2.62% 3 4.48%
Alexey Bayduraev 8 2.62% 2 2.99%
Ingo Molnar 8 2.62% 1 1.49%
yuzhoujian 6 1.97% 1 1.49%
Wang Nan 6 1.97% 2 2.99%
Song Liu 3 0.98% 2 2.99%
Hari Bathini 3 0.98% 1 1.49%
Andrey Vagin 3 0.98% 1 1.49%
Alexander Shishkin 3 0.98% 1 1.49%
Feng Tang 1 0.33% 1 1.49%
Greg Kroah-Hartman 1 0.33% 1 1.49%
Mathieu J. Poirier 1 0.33% 1 1.49%
Total 305 67


/* 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	      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_data_page_size;
	bool	      sample_code_page_size;
	bool	      sample_weight;
	bool	      sample_time;
	bool	      sample_time_set;
	bool	      sample_cpu;
	bool	      sample_identifier;
	bool	      period;
	bool	      period_set;
	bool	      running_time;
	bool	      full_auxtrace;
	bool	      auxtrace_snapshot_mode;
	bool	      auxtrace_snapshot_on_exit;
	bool	      auxtrace_sample_mode;
	bool	      record_namespaces;
	bool	      record_cgroup;
	bool	      record_switch_events;
	bool	      record_switch_events_set;
	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;
	bool	      kcore;
	bool	      text_poke;
	bool	      build_id;
	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;
	const char    *auxtrace_sample_opts;
	bool	      sample_transaction;
	bool	      use_clockid;
	clockid_t     clockid;
	u64	      clockid_res_ns;
	int	      nr_cblocks;
	int	      affinity;
	int	      mmap_flush;
	unsigned int  comp_level;
	unsigned int  nr_threads_synthesize;
	int	      ctl_fd;
	int	      ctl_fd_ack;
	bool	      ctl_fd_close;
	int	      synth;
	int	      threads_spec;
	const char    *threads_user_spec;
};

extern const char * const *record_usage;
extern struct option *record_options;

int record__parse_freq(const struct option *opt, const char *str, int unset);

static inline bool record_opts__no_switch_events(const struct record_opts *opts)
{
	return opts->record_switch_events_set && !opts->record_switch_events;
}

#endif // _PERF_RECORD_H