Lines Matching refs:event

95 PMU_FORMAT_ATTR(event, "config:0-63");
111 static int msr_event_init(struct perf_event *event) in msr_event_init() argument
113 u64 cfg = event->attr.config; in msr_event_init()
115 if (event->attr.type != event->pmu->type) in msr_event_init()
122 if (event->attr.exclude_user || in msr_event_init()
123 event->attr.exclude_kernel || in msr_event_init()
124 event->attr.exclude_hv || in msr_event_init()
125 event->attr.exclude_idle || in msr_event_init()
126 event->attr.exclude_host || in msr_event_init()
127 event->attr.exclude_guest || in msr_event_init()
128 event->attr.sample_period) /* no sampling */ in msr_event_init()
134 event->hw.idx = -1; in msr_event_init()
135 event->hw.event_base = msr[cfg].msr; in msr_event_init()
136 event->hw.config = cfg; in msr_event_init()
141 static inline u64 msr_read_counter(struct perf_event *event) in msr_read_counter() argument
145 if (event->hw.event_base) in msr_read_counter()
146 rdmsrl(event->hw.event_base, now); in msr_read_counter()
152 static void msr_event_update(struct perf_event *event) in msr_event_update() argument
159 prev = local64_read(&event->hw.prev_count); in msr_event_update()
160 now = msr_read_counter(event); in msr_event_update()
162 if (local64_cmpxchg(&event->hw.prev_count, prev, now) != prev) in msr_event_update()
166 if (unlikely(event->hw.event_base == MSR_SMI_COUNT)) in msr_event_update()
169 local64_add(now - prev, &event->count); in msr_event_update()
172 static void msr_event_start(struct perf_event *event, int flags) in msr_event_start() argument
176 now = msr_read_counter(event); in msr_event_start()
177 local64_set(&event->hw.prev_count, now); in msr_event_start()
180 static void msr_event_stop(struct perf_event *event, int flags) in msr_event_stop() argument
182 msr_event_update(event); in msr_event_stop()
185 static void msr_event_del(struct perf_event *event, int flags) in msr_event_del() argument
187 msr_event_stop(event, PERF_EF_UPDATE); in msr_event_del()
190 static int msr_event_add(struct perf_event *event, int flags) in msr_event_add() argument
193 msr_event_start(event, flags); in msr_event_add()