Author: jkoshy
Date: Wed Dec  3 17:30:36 2008
New Revision: 185585
URL: http://svn.freebsd.org/changeset/base/185585

Log:
  Fixes for Core2 Extreme support.
  
  Submitted by:  "Artem Belevich" <artemb at gmail dot com>

Modified:
  head/lib/libpmc/libpmc.c
  head/sys/dev/hwpmc/hwpmc_core.c
  head/sys/dev/hwpmc/hwpmc_intel.c

Modified: head/lib/libpmc/libpmc.c
==============================================================================
--- head/lib/libpmc/libpmc.c    Wed Dec  3 16:29:12 2008        (r185584)
+++ head/lib/libpmc/libpmc.c    Wed Dec  3 17:30:36 2008        (r185585)
@@ -603,7 +603,8 @@ iap_allocate_pmc(enum pmc_event pe, char
                        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 
                        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, en
                        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;

Modified: head/sys/dev/hwpmc/hwpmc_core.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_core.c     Wed Dec  3 16:29:12 2008        
(r185584)
+++ head/sys/dev/hwpmc/hwpmc_core.c     Wed Dec  3 17:30:36 2008        
(r185585)
@@ -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
                cpuflag = IAP_F_CC2;
                break;
        case PMC_CPU_INTEL_CORE2EXTREME:
-               cpuflag = IAP_F_CC2E;
+               cpuflag = IAP_F_CC2 | IAP_F_CC2E;
                break;
        }
 

Modified: head/sys/dev/hwpmc/hwpmc_intel.c
==============================================================================
--- head/sys/dev/hwpmc/hwpmc_intel.c    Wed Dec  3 16:29:12 2008        
(r185584)
+++ head/sys/dev/hwpmc/hwpmc_intel.c    Wed Dec  3 17:30:36 2008        
(r185585)
@@ -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;
 
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to