perf/x86/intel/uncore: Fix CHA registers configuration procedure for Knights Landing platform
CHA events in Knights Landing platform require programming filter registers properly.
Remote node, local node and NonNearMemCachable bits should be set to 1 at all times.
Signed-off-by: Hubert Chrzaniuk <hubert.chrzaniuk@intel.com>
Signed-off-by: Lawrence F Meadows <lawrence.f.meadows@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: bp@suse.de
Cc: harish.chegondi@intel.com
Cc: hpa@zytor.com
Cc: izumi.taku@jp.fujitsu.com
Cc: kan.liang@intel.com
Cc: lukasz.anaczkowski@intel.com
Cc: vthakkar1994@gmail.com
Fixes: 77af0037de
('perf/x86/intel/uncore: Add Knights Landing uncore PMU support')
Link: http://lkml.kernel.org/r/1462779419-17115-2-git-send-email-hubert.chrzaniuk@intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
e9d848cb65
commit
ec336c879c
|
@ -219,6 +219,9 @@
|
||||||
#define KNL_CHA_MSR_PMON_BOX_FILTER_TID 0x1ff
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_TID 0x1ff
|
||||||
#define KNL_CHA_MSR_PMON_BOX_FILTER_STATE (7 << 18)
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_STATE (7 << 18)
|
||||||
#define KNL_CHA_MSR_PMON_BOX_FILTER_OP (0xfffffe2aULL << 32)
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_OP (0xfffffe2aULL << 32)
|
||||||
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_REMOTE_NODE (0x1ULL << 32)
|
||||||
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_LOCAL_NODE (0x1ULL << 33)
|
||||||
|
#define KNL_CHA_MSR_PMON_BOX_FILTER_NNC (0x1ULL << 37)
|
||||||
|
|
||||||
/* KNL EDC/MC UCLK */
|
/* KNL EDC/MC UCLK */
|
||||||
#define KNL_UCLK_MSR_PMON_CTR0_LOW 0x400
|
#define KNL_UCLK_MSR_PMON_CTR0_LOW 0x400
|
||||||
|
@ -1902,6 +1905,10 @@ static int knl_cha_hw_config(struct intel_uncore_box *box,
|
||||||
reg1->reg = HSWEP_C0_MSR_PMON_BOX_FILTER0 +
|
reg1->reg = HSWEP_C0_MSR_PMON_BOX_FILTER0 +
|
||||||
KNL_CHA_MSR_OFFSET * box->pmu->pmu_idx;
|
KNL_CHA_MSR_OFFSET * box->pmu->pmu_idx;
|
||||||
reg1->config = event->attr.config1 & knl_cha_filter_mask(idx);
|
reg1->config = event->attr.config1 & knl_cha_filter_mask(idx);
|
||||||
|
|
||||||
|
reg1->config |= KNL_CHA_MSR_PMON_BOX_FILTER_REMOTE_NODE;
|
||||||
|
reg1->config |= KNL_CHA_MSR_PMON_BOX_FILTER_LOCAL_NODE;
|
||||||
|
reg1->config |= KNL_CHA_MSR_PMON_BOX_FILTER_NNC;
|
||||||
reg1->idx = idx;
|
reg1->idx = idx;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in a new issue