Contributors: 21
Author Tokens Token Proportion Commits Commit Proportion
Adrian Hunter 67 21.75% 11 15.94%
Arnaldo Carvalho de Melo 63 20.45% 10 14.49%
Jiri Olsa 28 9.09% 8 11.59%
Namhyung Kim 27 8.77% 5 7.25%
Alexey Budankov 23 7.47% 7 10.14%
Roberto Agostino Vitillo 16 5.19% 1 1.45%
Andi Kleen 14 4.55% 5 7.25%
Peter Zijlstra 10 3.25% 2 2.90%
Kan Liang 9 2.92% 3 4.35%
Alexey Bayduraev 8 2.60% 2 2.90%
Ingo Molnar 8 2.60% 1 1.45%
Stéphane Eranian 8 2.60% 3 4.35%
yuzhoujian 6 1.95% 1 1.45%
Wang Nan 6 1.95% 2 2.90%
Andrey Vagin 3 0.97% 1 1.45%
Hari Bathini 3 0.97% 1 1.45%
Song Liu 3 0.97% 2 2.90%
Alexander Shishkin 3 0.97% 1 1.45%
Feng Tang 1 0.32% 1 1.45%
Greg Kroah-Hartman 1 0.32% 1 1.45%
Mathieu J. Poirier 1 0.32% 1 1.45%
Total 308 69


/* 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;
	int	      initial_delay;
	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