Lines Matching refs:event
116 PMU_FORMAT_ATTR(event, "config:0-63");
132 static int msr_event_init(struct perf_event *event) in msr_event_init() argument
134 u64 cfg = event->attr.config; in msr_event_init()
136 if (event->attr.type != event->pmu->type) in msr_event_init()
143 if (event->attr.exclude_user || in msr_event_init()
144 event->attr.exclude_kernel || in msr_event_init()
145 event->attr.exclude_hv || in msr_event_init()
146 event->attr.exclude_idle || in msr_event_init()
147 event->attr.exclude_host || in msr_event_init()
148 event->attr.exclude_guest || in msr_event_init()
149 event->attr.sample_period) /* no sampling */ in msr_event_init()
155 event->hw.idx = -1; in msr_event_init()
156 event->hw.event_base = msr[cfg].msr; in msr_event_init()
157 event->hw.config = cfg; in msr_event_init()
162 static inline u64 msr_read_counter(struct perf_event *event) in msr_read_counter() argument
166 if (event->hw.event_base) in msr_read_counter()
167 rdmsrl(event->hw.event_base, now); in msr_read_counter()
173 static void msr_event_update(struct perf_event *event) in msr_event_update() argument
180 prev = local64_read(&event->hw.prev_count); in msr_event_update()
181 now = msr_read_counter(event); in msr_event_update()
183 if (local64_cmpxchg(&event->hw.prev_count, prev, now) != prev) in msr_event_update()
187 if (unlikely(event->hw.event_base == MSR_SMI_COUNT)) in msr_event_update()
190 local64_add(delta, &event->count); in msr_event_update()
193 static void msr_event_start(struct perf_event *event, int flags) in msr_event_start() argument
197 now = msr_read_counter(event); in msr_event_start()
198 local64_set(&event->hw.prev_count, now); in msr_event_start()
201 static void msr_event_stop(struct perf_event *event, int flags) in msr_event_stop() argument
203 msr_event_update(event); in msr_event_stop()
206 static void msr_event_del(struct perf_event *event, int flags) in msr_event_del() argument
208 msr_event_stop(event, PERF_EF_UPDATE); in msr_event_del()
211 static int msr_event_add(struct perf_event *event, int flags) in msr_event_add() argument
214 msr_event_start(event, flags); in msr_event_add()