perf_missing_features
if (perf_missing_features.write_backward &&
attr->sample_id_all = perf_missing_features.sample_id_all ? 0 : 1;
(!perf_missing_features.sample_id_all &&
attr->mmap2 = track && !perf_missing_features.mmap2;
attr->ksymbol = track && !perf_missing_features.ksymbol;
attr->bpf_event = track && !opts->no_bpf_event && !perf_missing_features.bpf;
attr->cgroup = track && !perf_missing_features.cgroup;
if ((perf_missing_features.write_backward && evsel->core.attr.write_backward) ||
(perf_missing_features.aux_output && evsel->core.attr.aux_output))
if (perf_missing_features.defer_callchain && evsel->core.attr.defer_callchain)
if (perf_missing_features.defer_callchain && evsel->core.attr.defer_output)
if (perf_missing_features.inherit_sample_read && evsel->core.attr.inherit &&
if (perf_missing_features.branch_counters)
if (perf_missing_features.read_lost)
if (perf_missing_features.weight_struct) {
if (perf_missing_features.clockid_wrong)
if (perf_missing_features.clockid) {
if (perf_missing_features.cloexec)
if (perf_missing_features.mmap2)
if (perf_missing_features.lbr_flags)
if (perf_missing_features.group_read && evsel->core.attr.inherit)
if (perf_missing_features.ksymbol)
if (perf_missing_features.bpf)
if (perf_missing_features.branch_hw_idx)
if (perf_missing_features.sample_id_all)
perf_missing_features.branch_counters = true;
perf_missing_features.branch_hw_idx = true;
perf_missing_features.lbr_flags = true;
perf_missing_features.aux_action = true;
perf_missing_features.aux_action = true;
perf_missing_features.defer_callchain = true;
perf_missing_features.inherit_sample_read = true;
perf_missing_features.read_lost = true;
perf_missing_features.weight_struct = true;
perf_missing_features.code_page_size = true;
perf_missing_features.data_page_size = true;
perf_missing_features.cgroup = true;
perf_missing_features.aux_output = true;
perf_missing_features.bpf = true;
perf_missing_features.ksymbol = true;
perf_missing_features.write_backward = true;
perf_missing_features.clockid = true;
perf_missing_features.cloexec = true;
perf_missing_features.mmap2 = true;
perf_missing_features.sample_id_all = true;
perf_missing_features.group_read = true;
perf_missing_features.defer_callchain)
perf_missing_features.inherit_sample_read)
perf_missing_features.branch_counters)
perf_missing_features.read_lost)
perf_missing_features.weight_struct)
!perf_missing_features.clockid) {
perf_missing_features.clockid_wrong = true;
if (evsel->core.attr.use_clockid && perf_missing_features.clockid)
perf_missing_features.cloexec)
if (evsel->core.attr.mmap2 && perf_missing_features.mmap2)
perf_missing_features.lbr_flags)
perf_missing_features.group_read)
if (evsel->core.attr.ksymbol && perf_missing_features.ksymbol)
if (evsel->core.attr.bpf_event && perf_missing_features.bpf)
perf_missing_features.branch_hw_idx)
if (evsel->core.attr.sample_id_all && perf_missing_features.sample_id_all)
if (perf_missing_features.clockid ||
perf_missing_features.clockid_wrong) {
if (evsel->core.attr.sample_type & PERF_SAMPLE_CODE_PAGE_SIZE && perf_missing_features.code_page_size)
if (evsel->core.attr.sample_type & PERF_SAMPLE_DATA_PAGE_SIZE && perf_missing_features.data_page_size)
if (evsel->core.attr.write_backward && perf_missing_features.write_backward)
if (perf_missing_features.clockid)
if (perf_missing_features.clockid_wrong)
if (perf_missing_features.aux_action)
if (perf_missing_features.aux_output)
struct perf_missing_features perf_missing_features;
extern struct perf_missing_features perf_missing_features;