/** *Theper-threadaccumulatedperiodstoragenode.
*/ struct perf_sample_id_period { struct list_head node; struct hlist_node hnode; /* Holds total ID period value for PERF_SAMPLE_READ processing. */
u64 period; /* The TID that the values belongs to */
u32 tid;
};
struct perf_evsel { struct list_head node; struct perf_event_attr attr; /** The commonly used cpu map of CPUs the event should be opened upon, etc. */ struct perf_cpu_map *cpus; /** *ThecpumapreadfromthePMU.ForcorePMUsthisisthelistofall *CPUstheeventcanbeopenedupon.ForotherPMUsthisisthedefault *cpumapforopeningtheeventon,forexample,thefirstCPUona *socketforanuncoreevent.
*/ struct perf_cpu_map *pmu_cpus; struct perf_thread_map *threads; struct xyarray *fd; struct xyarray *mmap; struct xyarray *sample_id;
u64 *id;
u32 ids; struct perf_evsel *leader;
/* For events where the read_format value is per-thread rather than
* global, stores the per-thread cumulative period */ struct list_head per_stream_periods;
/* parse modifier helper */ int nr_members; /* *system_wideisforeventsthatneedtobeoneveryCPU,irrespective *ofuserrequestedCPUsorthreads.Thamainexampleofthisisthe *dummyevent.MappropagationwillsetcpusforthiseventtoallCPUs *assoftwarePMUeventslikedummy,haveaCPUmapthatisempty.
*/ bool system_wide; /* *Someevents,forexampleuncoreevents,requireaCPU. *i.e.itcannotbethe'anyCPU'valueof-1.
*/ bool requires_cpu; /** Is the PMU for the event a core one? Effects the handling of own_cpus. */ bool is_pmu_core; int idx;
};
void perf_evsel__init(struct perf_evsel *evsel, struct perf_event_attr *attr, int idx); void perf_evsel__exit(struct perf_evsel *evsel); int perf_evsel__alloc_fd(struct perf_evsel *evsel, int ncpus, int nthreads); void perf_evsel__close_fd(struct perf_evsel *evsel); void perf_evsel__free_fd(struct perf_evsel *evsel); int perf_evsel__read_size(struct perf_evsel *evsel); int perf_evsel__apply_filter(struct perf_evsel *evsel, constchar *filter);
int perf_evsel__alloc_id(struct perf_evsel *evsel, int ncpus, int nthreads); void perf_evsel__free_id(struct perf_evsel *evsel);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.