Author: fabient
Date: Mon Dec  7 20:40:48 2009
New Revision: 200232
URL: http://svn.freebsd.org/changeset/base/200232

Log:
  MFC 198432:
  Only claim that the PMC_CLASS_IAF PMCs are supported by a CPU if
  there are PMCs on the CPU that belong to the class.

Modified:
  stable/8/sys/dev/hwpmc/hwpmc_core.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/dev/hwpmc/hwpmc_core.c
==============================================================================
--- stable/8/sys/dev/hwpmc/hwpmc_core.c Mon Dec  7 20:17:33 2009        
(r200231)
+++ stable/8/sys/dev/hwpmc/hwpmc_core.c Mon Dec  7 20:40:48 2009        
(r200232)
@@ -1954,11 +1954,21 @@ pmc_core_initialize(struct pmc_mdep *md,
                core_iaf_npmc = cpuid[CORE_CPUID_EDX] & 0x1F;
                core_iaf_width = (cpuid[CORE_CPUID_EDX] >> 5) & 0xFF;
 
-               iaf_initialize(md, maxcpu, core_iaf_npmc, core_iaf_width);
-
-               core_pmcmask |= ((1ULL << core_iaf_npmc) - 1) <<
-                   IAF_OFFSET;
-
+               if (core_iaf_npmc > 0) {
+                       iaf_initialize(md, maxcpu, core_iaf_npmc,
+                           core_iaf_width);
+                       core_pmcmask |= ((1ULL << core_iaf_npmc) - 1) <<
+                           IAF_OFFSET;
+               } else {
+                       /*
+                        * Adjust the number of classes exported to
+                        * user space.
+                        */
+                       md->pmd_nclass--;
+                       KASSERT(md->pmd_nclass == 2,
+                           ("[core,%d] unexpected nclass %d", __LINE__,
+                               md->pmd_nclass));
+               }
        }
 
        PMCDBG(MDP,INI,1,"core-init pmcmask=0x%jx iafri=%d", core_pmcmask,
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to