perf/x86/intel/rapl: Add support for Knights Landing (KNL)
Knights Landing DRAM RAPL supports PKG and DRAM RAPL domains. DRAM RAPL has a different fixed energy unit (2^-16J) similar to that of HSW. Signed-off-by: Dasaratharaman Chandramouli <dasaratharaman.chandramouli@intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Stephane Eranian <eranian@google.com> Acked-by: Jacob Pan <jacob.jun.pan@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Jacob Pan Jun <jacob.jun.pan@linux.intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Nikhil Rao <nikhil.rao@intel.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/aa63b4a3af3160152fea1a10c807f4200527280c.1432665809.git.dasaratharaman.chandramouli@intel.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Родитель
2a742cedcf
Коммит
3a2a779732
|
@ -86,6 +86,10 @@ static const char *rapl_domain_names[NR_RAPL_DOMAINS] __initconst = {
|
||||||
1<<RAPL_IDX_RAM_NRG_STAT|\
|
1<<RAPL_IDX_RAM_NRG_STAT|\
|
||||||
1<<RAPL_IDX_PP1_NRG_STAT)
|
1<<RAPL_IDX_PP1_NRG_STAT)
|
||||||
|
|
||||||
|
/* Knights Landing has PKG, RAM */
|
||||||
|
#define RAPL_IDX_KNL (1<<RAPL_IDX_PKG_NRG_STAT|\
|
||||||
|
1<<RAPL_IDX_RAM_NRG_STAT)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* event code: LSB 8 bits, passed in attr->config
|
* event code: LSB 8 bits, passed in attr->config
|
||||||
* any other bit is reserved
|
* any other bit is reserved
|
||||||
|
@ -486,6 +490,18 @@ static struct attribute *rapl_events_hsw_attr[] = {
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct attribute *rapl_events_knl_attr[] = {
|
||||||
|
EVENT_PTR(rapl_pkg),
|
||||||
|
EVENT_PTR(rapl_ram),
|
||||||
|
|
||||||
|
EVENT_PTR(rapl_pkg_unit),
|
||||||
|
EVENT_PTR(rapl_ram_unit),
|
||||||
|
|
||||||
|
EVENT_PTR(rapl_pkg_scale),
|
||||||
|
EVENT_PTR(rapl_ram_scale),
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
static struct attribute_group rapl_pmu_events_group = {
|
static struct attribute_group rapl_pmu_events_group = {
|
||||||
.name = "events",
|
.name = "events",
|
||||||
.attrs = NULL, /* patched at runtime */
|
.attrs = NULL, /* patched at runtime */
|
||||||
|
@ -730,6 +746,10 @@ static int __init rapl_pmu_init(void)
|
||||||
rapl_cntr_mask = RAPL_IDX_SRV;
|
rapl_cntr_mask = RAPL_IDX_SRV;
|
||||||
rapl_pmu_events_group.attrs = rapl_events_srv_attr;
|
rapl_pmu_events_group.attrs = rapl_events_srv_attr;
|
||||||
break;
|
break;
|
||||||
|
case 87: /* Knights Landing */
|
||||||
|
rapl_add_quirk(rapl_hsw_server_quirk);
|
||||||
|
rapl_cntr_mask = RAPL_IDX_KNL;
|
||||||
|
rapl_pmu_events_group.attrs = rapl_events_knl_attr;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
/* unsupported */
|
/* unsupported */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче