Lines Matching refs:event
207 DEFINE_CSTATE_FORMAT_ATTR(core_event, event, "config:0-63");
350 DEFINE_CSTATE_FORMAT_ATTR(pkg_event, event, "config:0-63");
385 static int cstate_pmu_event_init(struct perf_event *event) in cstate_pmu_event_init() argument
387 u64 cfg = event->attr.config; in cstate_pmu_event_init()
390 if (event->attr.type != event->pmu->type) in cstate_pmu_event_init()
394 if (event->attr.exclude_user || in cstate_pmu_event_init()
395 event->attr.exclude_kernel || in cstate_pmu_event_init()
396 event->attr.exclude_hv || in cstate_pmu_event_init()
397 event->attr.exclude_idle || in cstate_pmu_event_init()
398 event->attr.exclude_host || in cstate_pmu_event_init()
399 event->attr.exclude_guest || in cstate_pmu_event_init()
400 event->attr.sample_period) /* no sampling */ in cstate_pmu_event_init()
403 if (event->pmu == &cstate_core_pmu) { in cstate_pmu_event_init()
408 event->hw.event_base = core_msr[cfg].msr; in cstate_pmu_event_init()
409 } else if (event->pmu == &cstate_pkg_pmu) { in cstate_pmu_event_init()
414 event->hw.event_base = pkg_msr[cfg].msr; in cstate_pmu_event_init()
419 event->hw.config = cfg; in cstate_pmu_event_init()
420 event->hw.idx = -1; in cstate_pmu_event_init()
425 static inline u64 cstate_pmu_read_counter(struct perf_event *event) in cstate_pmu_read_counter() argument
429 rdmsrl(event->hw.event_base, val); in cstate_pmu_read_counter()
433 static void cstate_pmu_event_update(struct perf_event *event) in cstate_pmu_event_update() argument
435 struct hw_perf_event *hwc = &event->hw; in cstate_pmu_event_update()
440 new_raw_count = cstate_pmu_read_counter(event); in cstate_pmu_event_update()
446 local64_add(new_raw_count - prev_raw_count, &event->count); in cstate_pmu_event_update()
449 static void cstate_pmu_event_start(struct perf_event *event, int mode) in cstate_pmu_event_start() argument
451 local64_set(&event->hw.prev_count, cstate_pmu_read_counter(event)); in cstate_pmu_event_start()
454 static void cstate_pmu_event_stop(struct perf_event *event, int mode) in cstate_pmu_event_stop() argument
456 cstate_pmu_event_update(event); in cstate_pmu_event_stop()
459 static void cstate_pmu_event_del(struct perf_event *event, int mode) in cstate_pmu_event_del() argument
461 cstate_pmu_event_stop(event, PERF_EF_UPDATE); in cstate_pmu_event_del()
464 static int cstate_pmu_event_add(struct perf_event *event, int mode) in cstate_pmu_event_add() argument
467 cstate_pmu_event_start(event, mode); in cstate_pmu_event_add()