#include <linux/perf_event.h>
#include <linux/types.h>
#include <asm/hardirq.h>
#include "../perf_event.h"
static const u64 knc_perfmon_event_map[] = …;
static const u64 __initconst knc_hw_cache_event_ids
[PERF_COUNT_HW_CACHE_MAX]
[PERF_COUNT_HW_CACHE_OP_MAX]
[PERF_COUNT_HW_CACHE_RESULT_MAX] = …;
static u64 knc_pmu_event_map(int hw_event)
{ … }
static struct event_constraint knc_event_constraints[] = …;
#define MSR_KNC_IA32_PERF_GLOBAL_STATUS …
#define MSR_KNC_IA32_PERF_GLOBAL_OVF_CONTROL …
#define MSR_KNC_IA32_PERF_GLOBAL_CTRL …
#define KNC_ENABLE_COUNTER0 …
#define KNC_ENABLE_COUNTER1 …
static void knc_pmu_disable_all(void)
{ … }
static void knc_pmu_enable_all(int added)
{ … }
static inline void
knc_pmu_disable_event(struct perf_event *event)
{ … }
static void knc_pmu_enable_event(struct perf_event *event)
{ … }
static inline u64 knc_pmu_get_status(void)
{ … }
static inline void knc_pmu_ack_status(u64 ack)
{ … }
static int knc_pmu_handle_irq(struct pt_regs *regs)
{ … }
PMU_FORMAT_ATTR(…);
PMU_FORMAT_ATTR(…);
PMU_FORMAT_ATTR(…);
PMU_FORMAT_ATTR(…);
PMU_FORMAT_ATTR(…);
static struct attribute *intel_knc_formats_attr[] = …;
static const struct x86_pmu knc_pmu __initconst = …;
__init int knc_pmu_init(void)
{ … }