On Fri, Sep 01, 2017 at 09:53:54AM -0700, Yonghong Song wrote:
quoted hunk ↗ jump to hunk
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index b14095b..7fd5e94 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -901,6 +901,8 @@ extern void perf_pmu_migrate_context(struct pmu *pmu,
int perf_event_read_local(struct perf_event *event, u64 *value);
extern u64 perf_event_read_value(struct perf_event *event,
u64 *enabled, u64 *running);
+extern void calc_timer_values(struct perf_event *event, u64 *now,
+ u64 *enabled, u64 *running);
quoted hunk ↗ jump to hunk
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 8c01572..ef5c7fb 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -4883,7 +4883,7 @@ static int perf_event_index(struct perf_event *event)
return event->pmu->event_idx(event);
}
-static void calc_timer_values(struct perf_event *event,
+void calc_timer_values(struct perf_event *event,
u64 *now,
u64 *enabled,
u64 *running)
Yeah, not going to happen...
Why not do the obvious thing and extend perf_event_read_local() to
optionally return the enabled/running times?