perf: add struct hw_perf_event
Change-Id: I0938e2b18064ad805a9edb6e15d26cf438bf0a59
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
#include <list.h>
|
||||
#include <ihk/context.h>
|
||||
#include <arch/cpu.h>
|
||||
#include <mc_perf_event.h>
|
||||
|
||||
extern int num_processors;
|
||||
|
||||
@@ -89,6 +90,12 @@ unsigned long ihk_mc_hw_cache_event_map(unsigned long hw_cache_event);
|
||||
unsigned long ihk_mc_hw_cache_extra_reg_map(unsigned long hw_cache_event);
|
||||
unsigned long ihk_mc_raw_event_map(unsigned long raw_event);
|
||||
int ihk_mc_validate_event(unsigned long hw_config);
|
||||
int hw_perf_event_init(struct mc_perf_event *event);
|
||||
|
||||
static inline int is_sampling_event(struct mc_perf_event *event)
|
||||
{
|
||||
return event->attr.sample_period != 0;
|
||||
}
|
||||
|
||||
/* returns the 'prev' argument of the call that caused the switch to the context returned. */
|
||||
void *ihk_mc_switch_context(ihk_mc_kernel_context_t *old_ctx,
|
||||
|
||||
@@ -257,6 +257,31 @@ struct hw_perf_event_extra {
|
||||
int idx;
|
||||
};
|
||||
|
||||
struct hw_perf_event {
|
||||
/*
|
||||
* The last observed hardware counter value, updated with a
|
||||
* local64_cmpxchg() such that pmu::read() can be called nested.
|
||||
*/
|
||||
ihk_atomic64_t prev_count;
|
||||
|
||||
/*
|
||||
* The period to start the next sample with.
|
||||
*/
|
||||
uint64_t sample_period;
|
||||
|
||||
/*
|
||||
* The period we started this sample with.
|
||||
*/
|
||||
uint64_t last_period;
|
||||
|
||||
/*
|
||||
* However much is left of the current period; note that this is
|
||||
* a full 64bit value and allows for generation of periods longer
|
||||
* than hardware might allow.
|
||||
*/
|
||||
ihk_atomic64_t period_left;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum perf_event_state - the states of an event:
|
||||
*/
|
||||
@@ -291,6 +316,7 @@ struct mc_perf_event {
|
||||
long long base_system_tsc;
|
||||
long long stopped_system_tsc;
|
||||
long long system_accum_count;
|
||||
struct hw_perf_event hw;
|
||||
};
|
||||
|
||||
struct perf_event_mmap_page {
|
||||
|
||||
Reference in New Issue
Block a user