Fixes for Core2 Extreme support.

Submitted by:	 "Artem Belevich" <artemb at gmail dot com>
This commit is contained in:
Joseph Koshy 2008-12-03 17:30:36 +00:00
parent d205405c23
commit b4d091f3a4
3 changed files with 10 additions and 4 deletions

View File

@ -603,7 +603,8 @@ iap_allocate_pmc(enum pmc_event pe, char *ctrspec,
if (n != 1)
return (-1);
} else if (cpu_info.pm_cputype == PMC_CPU_INTEL_ATOM ||
cpu_info.pm_cputype == PMC_CPU_INTEL_CORE2) {
cpu_info.pm_cputype == PMC_CPU_INTEL_CORE2 ||
cpu_info.pm_cputype == PMC_CPU_INTEL_CORE2EXTREME) {
if (KWMATCH(p, IAP_KW_SNOOPRESPONSE)) {
n = pmc_parse_mask(iap_snoopresponse_mask, p,
&evmask);
@ -2273,6 +2274,7 @@ pmc_event_names_of_class(enum pmc_class cl, const char ***eventnames,
count = PMC_EVENT_TABLE_SIZE(core);
break;
case PMC_CPU_INTEL_CORE2:
case PMC_CPU_INTEL_CORE2EXTREME:
ev = core2_event_table;
count = PMC_EVENT_TABLE_SIZE(core2);
break;
@ -2455,6 +2457,7 @@ pmc_init(void)
pmc_class_table[n] = &core_class_table_descr;
break;
case PMC_CPU_INTEL_CORE2:
case PMC_CPU_INTEL_CORE2EXTREME:
PMC_MDEP_INIT(core2);
pmc_class_table[n++] = &iaf_class_table_descr;
pmc_class_table[n] = &core2_class_table_descr;
@ -2553,6 +2556,7 @@ _pmc_name_of_event(enum pmc_event pe, enum pmc_cputype cpu)
evfence = core_event_table + PMC_EVENT_TABLE_SIZE(core);
break;
case PMC_CPU_INTEL_CORE2:
case PMC_CPU_INTEL_CORE2EXTREME:
ev = core2_event_table;
evfence = core2_event_table + PMC_EVENT_TABLE_SIZE(core2);
break;

View File

@ -527,8 +527,8 @@ struct iap_event_descr {
};
#define IAP_F_CC (1 << 0) /* CPU: Core */
#define IAP_F_CC2 (1 << 1) /* CPU: Core2 */
#define IAP_F_CC2E (1 << 2) /* CPU: Core2 Extreme */
#define IAP_F_CC2 (1 << 1) /* CPU: Core2 family */
#define IAP_F_CC2E (1 << 2) /* CPU: Core2 Extreme only */
#define IAP_F_CA (1 << 3) /* CPU: Atom */
#define IAP_F_FM (1 << 4) /* Fixed mask */
@ -1111,7 +1111,7 @@ iap_allocate_pmc(int cpu, int ri, struct pmc *pm,
cpuflag = IAP_F_CC2;
break;
case PMC_CPU_INTEL_CORE2EXTREME:
cpuflag = IAP_F_CC2E;
cpuflag = IAP_F_CC2 | IAP_F_CC2E;
break;
}

View File

@ -168,6 +168,7 @@ pmc_intel_initialize(void)
case PMC_CPU_INTEL_ATOM:
case PMC_CPU_INTEL_CORE:
case PMC_CPU_INTEL_CORE2:
case PMC_CPU_INTEL_CORE2EXTREME:
error = pmc_core_initialize(pmc_mdep, ncpus);
break;
@ -238,6 +239,7 @@ pmc_intel_finalize(struct pmc_mdep *md)
case PMC_CPU_INTEL_ATOM:
case PMC_CPU_INTEL_CORE:
case PMC_CPU_INTEL_CORE2:
case PMC_CPU_INTEL_CORE2EXTREME:
pmc_core_finalize(md);
break;