summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.inc12
-rw-r--r--lib/libpmc/Makefile24
-rw-r--r--lib/libpmc/libpmc.c30
-rw-r--r--lib/libpmc/libpmc_pmu_util.c333
-rw-r--r--lib/libpmc/pmc.h8
-rw-r--r--lib/libpmc/pmclog.37
-rw-r--r--lib/libpmc/pmclog.c32
-rw-r--r--lib/libpmc/pmclog.h1
-rw-r--r--lib/libpmc/pmu-events/Makefile (renamed from lib/libpmcstat/pmu-events/Makefile)0
-rw-r--r--lib/libpmc/pmu-events/README (renamed from lib/libpmcstat/pmu-events/README)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/branch.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/branch.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/bus.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/bus.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/cache.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/memory.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/other.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/armv8-recommended.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/armv8-recommended.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json (renamed from lib/libpmcstat/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/arm64/mapfile.csv (renamed from lib/libpmcstat/pmu-events/arch/arm64/mapfile.csv)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/mapfile.csv (renamed from lib/libpmcstat/pmu-events/arch/powerpc/mapfile.csv)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/cache.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/marked.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/marked.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/memory.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/other.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/pmc.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/pmc.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power8/translation.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power8/translation.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/cache.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/marked.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/marked.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/memory.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/other.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/pmc.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/pmc.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/powerpc/power9/translation.json (renamed from lib/libpmcstat/pmu-events/arch/powerpc/power9/translation.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z10/basic.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z10/basic.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z10/crypto.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z10/crypto.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z10/extended.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z10/extended.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z13/basic.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z13/basic.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z13/crypto.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z13/crypto.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z13/extended.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z13/extended.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z14/basic.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z14/basic.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z14/crypto.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z14/crypto.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z14/extended.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z14/extended.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z196/basic.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z196/basic.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z196/crypto.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z196/crypto.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_z196/extended.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_z196/extended.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_zec12/basic.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_zec12/basic.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_zec12/crypto.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_zec12/crypto.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/cf_zec12/extended.json (renamed from lib/libpmcstat/pmu-events/arch/s390/cf_zec12/extended.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/s390/mapfile.csv (renamed from lib/libpmcstat/pmu-events/arch/s390/mapfile.csv)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/bonnell/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/bonnell/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/bonnell/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/bonnell/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/bonnell/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/bonnell/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/bonnell/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/bonnell/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/bonnell/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/bonnell/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/bonnell/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/bonnell/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/bonnell/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/bonnell/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/bdw-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/bdw-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/uncore.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/uncore.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwell/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwell/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/bdwde-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/bdwde-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-power.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-power.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellde/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellde/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/bdx-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/bdx-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-interconnect.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-interconnect.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-power.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-power.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/broadwellx/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/broadwellx/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmont/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmont/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmont/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmont/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmont/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmont/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmont/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmont/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmont/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmont/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmont/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmont/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmontplus/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmontplus/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmontplus/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmontplus/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmontplus/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmontplus/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmontplus/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmontplus/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmontplus/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmontplus/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/goldmontplus/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/goldmontplus/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/hsw-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/hsw-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/uncore.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/uncore.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswell/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswell/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/hsx-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/hsx-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/uncore-cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/uncore-interconnect.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-interconnect.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/uncore-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/uncore-power.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-power.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/haswellx/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/haswellx/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/ivb-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/ivb-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/uncore.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/uncore.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivybridge/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivybridge/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/ivt-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/ivt-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/uncore-cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/uncore-interconnect.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-interconnect.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/uncore-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/uncore-power.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-power.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/ivytown/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/ivytown/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/jkt-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/jkt-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/uncore-cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/uncore-interconnect.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-interconnect.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/uncore-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/uncore-power.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-power.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/jaketown/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/jaketown/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/knightslanding/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/knightslanding/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/knightslanding/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/knightslanding/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/knightslanding/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/knightslanding/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/knightslanding/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/knightslanding/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/knightslanding/uncore-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/knightslanding/uncore-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/knightslanding/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/knightslanding/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/mapfile.csv (renamed from lib/libpmcstat/pmu-events/arch/x86/mapfile.csv)5
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemep/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemep/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemep/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemep/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemep/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemep/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemep/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemep/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemep/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemep/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemep/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemep/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemep/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemep/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemex/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemex/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemex/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemex/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemex/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemex/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemex/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemex/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemex/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemex/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemex/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemex/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/nehalemex/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/nehalemex/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/snb-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/snb-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/uncore.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/uncore.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/sandybridge/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/sandybridge/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/silvermont/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/silvermont/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/silvermont/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/silvermont/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/silvermont/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/silvermont/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/silvermont/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/silvermont/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/silvermont/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/silvermont/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/skl-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/skl-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/uncore.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/uncore.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylake/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylake/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/skx-metrics.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/skx-metrics.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/uncore-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/uncore-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/uncore-other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/uncore-other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/skylakex/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/skylakex/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-dp/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-dp/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-dp/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-dp/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-dp/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-dp/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-dp/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-sp/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-sp/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-sp/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-sp/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-sp/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-sp/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereep-sp/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereex/cache.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereex/cache.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereex/floating-point.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereex/floating-point.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereex/frontend.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereex/frontend.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereex/memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereex/memory.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereex/other.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereex/other.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereex/pipeline.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereex/pipeline.json)0
-rw-r--r--lib/libpmc/pmu-events/arch/x86/westmereex/virtual-memory.json (renamed from lib/libpmcstat/pmu-events/arch/x86/westmereex/virtual-memory.json)0
-rw-r--r--lib/libpmc/pmu-events/jevents.c (renamed from lib/libpmcstat/pmu-events/jevents.c)0
-rw-r--r--lib/libpmc/pmu-events/jevents.h (renamed from lib/libpmcstat/pmu-events/jevents.h)0
-rw-r--r--lib/libpmc/pmu-events/jsmn.c (renamed from lib/libpmcstat/pmu-events/jsmn.c)0
-rw-r--r--lib/libpmc/pmu-events/jsmn.h (renamed from lib/libpmcstat/pmu-events/jsmn.h)0
-rw-r--r--lib/libpmc/pmu-events/json.c (renamed from lib/libpmcstat/pmu-events/json.c)0
-rw-r--r--lib/libpmc/pmu-events/json.h (renamed from lib/libpmcstat/pmu-events/json.h)0
-rw-r--r--lib/libpmc/pmu-events/list.h (renamed from lib/libpmcstat/pmu-events/list.h)0
-rw-r--r--lib/libpmc/pmu-events/pmu-events.h (renamed from lib/libpmcstat/pmu-events/pmu-events.h)0
-rw-r--r--lib/libpmcstat/Makefile25
-rw-r--r--lib/libpmcstat/libpmcstat.h2
-rw-r--r--lib/libpmcstat/libpmcstat_logging.c43
-rw-r--r--lib/libpmcstat/libpmcstat_pmu_util.c164
-rw-r--r--sys/dev/hwpmc/hwpmc_core.c1822
-rw-r--r--sys/dev/hwpmc/hwpmc_core.h5
-rw-r--r--sys/dev/hwpmc/hwpmc_logging.c26
-rw-r--r--sys/sys/pmc.h2
-rw-r--r--sys/sys/pmclog.h58
-rw-r--r--usr.sbin/pmcstat/pmcstat.825
-rw-r--r--usr.sbin/pmcstat/pmcstat.c59
-rw-r--r--usr.sbin/pmcstat/pmcstat_log.c7
255 files changed, 572 insertions, 2108 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 970ba0248c0c..827838a0fa8d 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -2031,7 +2031,7 @@ _libmagic=lib/libmagic
.endif
.if ${MACHINE_CPUARCH} == "amd64"
-_jevents=lib/libpmcstat/pmu-events
+_jevents=lib/libpmc/pmu-events
.endif
# kernel-toolchain skips _cleanobj, so handle cleaning up previous
diff --git a/lib/libpmc/Makefile b/lib/libpmc/Makefile
index 30510f6144b0..6eb2ad6863d2 100644
--- a/lib/libpmc/Makefile
+++ b/lib/libpmc/Makefile
@@ -3,9 +3,31 @@
PACKAGE=lib${LIB}
LIB= pmc
-SRCS= libpmc.c pmclog.c
+SRCS= libpmc.c pmclog.c libpmc_pmu_util.c
INCS= pmc.h pmclog.h
+CFLAGS+= -I${.CURDIR}
+
+.if ${MACHINE_CPUARCH} == "amd64"
+
+.if ${MACHINE_CPUARCH} == "aarch64"
+EVENT_ARCH="arm64"
+.elif ${MACHINE_CPUARCH} == "amd64"
+EVENT_ARCH="x86"
+.elif ${MACHINE_CPUARCH} == "powerpc"
+EVENT_ARCH="powerpc"
+.endif
+
+JEVENTS= ${BTOOLSPATH:U.}/pmu-events/jevents
+# This file is built in a subdirectory so never try to rebuild
+# it here due to missing meta file.
+${JEVENTS}: .NOMETA
+
+libpmc_events.c: ${JEVENTS}
+ ${JEVENTS} ${EVENT_ARCH} ${.CURDIR}/pmu-events/arch libpmc_events.c
+SRCS+= libpmc_events.c
+.endif
+
MAN= pmc.3
MAN+= pmc_allocate.3
MAN+= pmc_attach.3
diff --git a/lib/libpmc/libpmc.c b/lib/libpmc/libpmc.c
index 8b25768d33d1..05fd84bc0b90 100644
--- a/lib/libpmc/libpmc.c
+++ b/lib/libpmc/libpmc.c
@@ -2781,8 +2781,27 @@ pmc_allocate(const char *ctrspec, enum pmc_mode mode,
if (mode != PMC_MODE_SS && mode != PMC_MODE_TS &&
mode != PMC_MODE_SC && mode != PMC_MODE_TC) {
- errno = EINVAL;
- goto out;
+ return (EINVAL);
+ }
+ bzero(&pmc_config, sizeof(pmc_config));
+ pmc_config.pm_cpu = cpu;
+ pmc_config.pm_mode = mode;
+ pmc_config.pm_flags = flags;
+ if (PMC_IS_SAMPLING_MODE(mode))
+ pmc_config.pm_caps |= PMC_CAP_INTERRUPT;
+ /*
+ * Can we pull this straight from the pmu table?
+ */
+ r = spec_copy = strdup(ctrspec);
+ ctrname = strsep(&r, ",");
+ if (pmc_pmu_pmcallocate(ctrname, &pmc_config) == 0) {
+ if (PMC_CALL(PMCALLOCATE, &pmc_config) < 0)
+ return (errno);
+ *pmcid = pmc_config.pm_pmcid;
+ return (0);
+ } else {
+ free(spec_copy);
+ spec_copy = NULL;
}
/* replace an event alias with the canonical event specifier */
@@ -2833,15 +2852,8 @@ pmc_allocate(const char *ctrspec, enum pmc_mode mode,
goto out;
}
- bzero(&pmc_config, sizeof(pmc_config));
pmc_config.pm_ev = ev->pm_ev_code;
pmc_config.pm_class = pcd->pm_evc_class;
- pmc_config.pm_cpu = cpu;
- pmc_config.pm_mode = mode;
- pmc_config.pm_flags = flags;
-
- if (PMC_IS_SAMPLING_MODE(mode))
- pmc_config.pm_caps |= PMC_CAP_INTERRUPT;
if (pcd->pm_evc_allocate_pmc(ev->pm_ev_code, r, &pmc_config) < 0) {
errno = EINVAL;
diff --git a/lib/libpmc/libpmc_pmu_util.c b/lib/libpmc/libpmc_pmu_util.c
new file mode 100644
index 000000000000..c2ac3b9e931a
--- /dev/null
+++ b/lib/libpmc/libpmc_pmu_util.c
@@ -0,0 +1,333 @@
+/*-
+ * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
+ *
+ * Copyright (c) 2018, Matthew Macy
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ *
+ */
+
+#include <sys/types.h>
+#include <sys/errno.h>
+#include <sys/sysctl.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <string.h>
+#include <pmc.h>
+#include <pmclog.h>
+#include <libpmcstat.h>
+#include "pmu-events/pmu-events.h"
+
+#if defined(__amd64__)
+struct pmu_alias {
+ const char *pa_alias;
+ const char *pa_name;
+};
+static struct pmu_alias pmu_alias_table[] = {
+ { "UNHALTED_CORE_CYCLES", "CPU_CLK_UNHALTED.THREAD_P_ANY"},
+ { "UNHALTED-CORE-CYCLES", "CPU_CLK_UNHALTED.THREAD_P_ANY"},
+ { "LLC_MISSES", "LONGEST_LAT_CACHE.MISS"},
+ { "LLC-MISSES", "LONGEST_LAT_CACHE.MISS"},
+ { "LLC_REFERENCE", "LONGEST_LAT_CACHE.REFERENCE"},
+ { "LLC-REFERENCE", "LONGEST_LAT_CACHE.REFERENCE"},
+ { "LLC_MISS_RHITM", "mem_load_l3_miss_retired.remote_hitm"},
+ { "LLC-MISS-RHITM", "mem_load_l3_miss_retired.remote_hitm"},
+ { "RESOURCE_STALL", "RESOURCE_STALLS.ANY"},
+ { "RESOURCE_STALLS_ANY", "RESOURCE_STALLS.ANY"},
+ { "BRANCH_INSTRUCTION_RETIRED", "BR_INST_RETIRED.ALL_BRANCHES"},
+ { "BRANCH-INSTRUCTION-RETIRED", "BR_INST_RETIRED.ALL_BRANCHES"},
+ { "BRANCH_MISSES_RETIRED", "BR_MISP_RETIRED.ALL_BRANCHES"},
+ { "BRANCH-MISSES-RETIRED", "BR_MISP_RETIRED.ALL_BRANCHES"},
+ { NULL, NULL },
+};
+
+static const char *
+pmu_alias_get(const char *name)
+{
+ struct pmu_alias *pa;
+
+ for (pa = pmu_alias_table; pa->pa_alias != NULL; pa++)
+ if (strcasecmp(name, pa->pa_alias) == 0)
+ return (pa->pa_name);
+ return (name);
+}
+
+struct pmu_event_desc {
+ uint64_t ped_period;
+ uint64_t ped_offcore_rsp;
+ uint32_t ped_event;
+ uint32_t ped_frontend;
+ uint32_t ped_ldlat;
+ uint32_t ped_config1;
+ uint8_t ped_umask;
+ uint8_t ped_cmask;
+ uint8_t ped_any;
+ uint8_t ped_inv;
+ uint8_t ped_edge;
+ uint8_t ped_fc_mask;
+ uint8_t ped_ch_mask;
+};
+
+static const struct pmu_events_map *
+pmu_events_map_get(void)
+{
+ size_t s;
+ char buf[64];
+ const struct pmu_events_map *pme;
+
+ if (sysctlbyname("kern.hwpmc.cpuid", (void *)NULL, &s,
+ (void *)NULL, 0) == -1)
+ return (NULL);
+ if (sysctlbyname("kern.hwpmc.cpuid", buf, &s,
+ (void *)NULL, 0) == -1)
+ return (NULL);
+ for (pme = pmu_events_map; pme->cpuid != NULL; pme++)
+ if (strcmp(buf, pme->cpuid) == 0)
+ return (pme);
+ return (NULL);
+}
+
+static const struct pmu_event *
+pmu_event_get(const char *event_name, int *idx)
+{
+ const struct pmu_events_map *pme;
+ const struct pmu_event *pe;
+ int i;
+
+ if ((pme = pmu_events_map_get()) == NULL)
+ return (NULL);
+ for (i = 0, pe = pme->table; pe->name || pe->desc || pe->event; pe++, i++) {
+ if (pe->name == NULL)
+ continue;
+ if (strcasecmp(pe->name, event_name) == 0) {
+ if (idx)
+ *idx = i;
+ return (pe);
+ }
+ }
+ return (NULL);
+}
+
+const char *
+pmu_event_get_by_idx(int idx)
+{
+ const struct pmu_events_map *pme;
+ const struct pmu_event *pe;
+ int i;
+
+ if ((pme = pmu_events_map_get()) == NULL)
+ return (NULL);
+ for (i = 0, pe = pme->table; (pe->name || pe->desc || pe->event) && i < idx; pe++, i++)
+ ;
+ return (pe->name);
+}
+
+static int
+pmu_parse_event(struct pmu_event_desc *ped, const char *eventin)
+{
+ char *event;
+ char *kvp, *key, *value;
+ char *debug;
+
+ if ((event = strdup(eventin)) == NULL)
+ return (ENOMEM);
+ bzero(ped, sizeof(*ped));
+ while ((kvp = strsep(&event, ",")) != NULL) {
+ key = strsep(&kvp, "=");
+ if (key == NULL)
+ abort();
+ value = kvp;
+ if (strcmp(key, "umask") == 0)
+ ped->ped_umask = strtol(value, NULL, 16);
+ else if (strcmp(key, "event") == 0)
+ ped->ped_event = strtol(value, NULL, 16);
+ else if (strcmp(key, "period") == 0)
+ ped->ped_period = strtol(value, NULL, 10);
+ else if (strcmp(key, "offcore_rsp") == 0)
+ ped->ped_offcore_rsp = strtol(value, NULL, 16);
+ else if (strcmp(key, "any") == 0)
+ ped->ped_any = strtol(value, NULL, 10);
+ else if (strcmp(key, "cmask") == 0)
+ ped->ped_cmask = strtol(value, NULL, 10);
+ else if (strcmp(key, "inv") == 0)
+ ped->ped_inv = strtol(value, NULL, 10);
+ else if (strcmp(key, "edge") == 0)
+ ped->ped_edge = strtol(value, NULL, 10);
+ else if (strcmp(key, "frontend") == 0)
+ ped->ped_frontend = strtol(value, NULL, 16);
+ else if (strcmp(key, "ldlat") == 0)
+ ped->ped_ldlat = strtol(value, NULL, 16);
+ else if (strcmp(key, "fc_mask") == 0)
+ ped->ped_fc_mask = strtol(value, NULL, 16);
+ else if (strcmp(key, "ch_mask") == 0)
+ ped->ped_ch_mask = strtol(value, NULL, 16);
+ else if (strcmp(key, "config1") == 0)
+ ped->ped_config1 = strtol(value, NULL, 16);
+ else {
+ debug = getenv("PMUDEBUG");
+ if (debug != NULL && strcmp(debug, "true") == 0 && value != NULL)
+ printf("unrecognized kvpair: %s:%s\n", key, value);
+ }
+ }
+ free(event);
+ return (0);
+}
+
+uint64_t
+pmc_pmu_sample_rate_get(const char *event_name)
+{
+ const struct pmu_event *pe;
+ struct pmu_event_desc ped;
+
+ event_name = pmu_alias_get(event_name);
+ if ((pe = pmu_event_get(event_name, NULL)) == NULL)
+ return (DEFAULT_SAMPLE_COUNT);
+ if (pe->alias && (pe = pmu_event_get(pe->alias, NULL)) == NULL)
+ return (DEFAULT_SAMPLE_COUNT);
+ if (pe->event == NULL)
+ return (DEFAULT_SAMPLE_COUNT);
+ if (pmu_parse_event(&ped, pe->event))
+ return (DEFAULT_SAMPLE_COUNT);
+ return (ped.ped_period);
+}
+
+int
+pmc_pmu_enabled(void)
+{
+
+ return (pmu_events_map_get() != NULL);
+}
+
+void
+pmc_pmu_print_counters(void)
+{
+ const struct pmu_events_map *pme;
+ const struct pmu_event *pe;
+ struct pmu_event_desc ped;
+ char *debug;
+ int do_debug;
+
+ debug = getenv("PMUDEBUG");
+ do_debug = 0;
+
+ if (debug != NULL && strcmp(debug, "true") == 0)
+ do_debug = 1;
+ if ((pme = pmu_events_map_get()) == NULL)
+ return;
+ for (pe = pme->table; pe->name || pe->desc || pe->event; pe++) {
+ if (pe->name == NULL)
+ continue;
+ printf("\t%s\n", pe->name);
+ if (do_debug)
+ pmu_parse_event(&ped, pe->event);
+ }
+}
+
+void
+pmc_pmu_print_counter_desc(const char *ev)
+{
+ const struct pmu_events_map *pme;
+ const struct pmu_event *pe;
+
+ if ((pme = pmu_events_map_get()) == NULL)
+ return;
+ for (pe = pme->table; pe->name || pe->desc || pe->event; pe++) {
+ if (pe->name == NULL)
+ continue;
+ if (strcasestr(pe->name, ev) != NULL &&
+ pe->desc != NULL)
+ printf("%s:\t%s\n", pe->name, pe->desc);
+ }
+}
+
+void
+pmc_pmu_print_counter_desc_long(const char *ev)
+{
+ const struct pmu_events_map *pme;
+ const struct pmu_event *pe;
+
+ if ((pme = pmu_events_map_get()) == NULL)
+ return;
+ for (pe = pme->table; pe->name || pe->desc || pe->event; pe++) {
+ if (pe->name == NULL)
+ continue;
+ if (strcasestr(pe->name, ev) != NULL) {
+ if (pe->long_desc != NULL)
+ printf("%s:\n%s\n", pe->name, pe->long_desc);
+ else if (pe->desc != NULL)
+ printf("%s:\t%s\n", pe->name, pe->desc);
+ }
+ }
+}
+
+int
+pmc_pmu_pmcallocate(const char *event_name, struct pmc_op_pmcallocate *pm)
+{
+ const struct pmu_event *pe;
+ struct pmu_event_desc ped;
+ struct pmc_md_iap_op_pmcallocate *iap;
+ int idx;
+
+ iap = &pm->pm_md.pm_iap;
+ bzero(iap, sizeof(*iap));
+ event_name = pmu_alias_get(event_name);
+ if ((pe = pmu_event_get(event_name, &idx)) == NULL)
+ return (ENOENT);
+ if (pe->alias && (pe = pmu_event_get(pe->alias, &idx)) == NULL)
+ return (ENOENT);
+ if (pe->event == NULL)
+ return (ENOENT);
+ if (pmu_parse_event(&ped, pe->event))
+ return (ENOENT);
+
+ pm->pm_class = PMC_CLASS_IAP;
+ pm->pm_ev = idx;
+ iap->pm_iap_config |= IAP_EVSEL(ped.ped_event);
+ iap->pm_iap_config |= IAP_UMASK(ped.ped_umask);
+ iap->pm_iap_config |= IAP_CMASK(ped.ped_cmask);
+ iap->pm_iap_rsp = ped.ped_offcore_rsp;
+
+ iap->pm_iap_config |= (IAP_USR | IAP_OS);
+ if (ped.ped_edge)
+ iap->pm_iap_config |= IAP_EDGE;
+ if (ped.ped_any)
+ iap->pm_iap_config |= IAP_ANY;
+ if (ped.ped_inv)
+ iap->pm_iap_config |= IAP_EDGE;
+ if (pm->pm_caps & PMC_CAP_INTERRUPT)
+ iap->pm_iap_config |= IAP_INT;
+ return (0);
+}
+
+#else
+uint64_t pmc_pmu_sample_rate_get(const char *event_name __unused) { return (DEFAULT_SAMPLE_COUNT); }
+void pmc_pmu_print_counters(void) {}
+void pmc_pmu_print_counter_desc(const char *e __unused) {}
+void pmc_pmu_print_counter_desc_long(const char *e __unused) {}
+int pmc_pmu_enabled(void) { return (0); }
+int pmc_pmu_pmcallocate(const char *e __unused, struct pmc_op_pmcallocate *p __unused) { return (EOPNOTSUPP); }
+const char *pmu_event_get_by_idx(int idx __unused) { return (NULL); }
+
+#endif
diff --git a/lib/libpmc/pmc.h b/lib/libpmc/pmc.h
index 5e4b89e4ea05..3a72930b9e1d 100644
--- a/lib/libpmc/pmc.h
+++ b/lib/libpmc/pmc.h
@@ -112,6 +112,14 @@ const char *pmc_name_of_state(enum pmc_state _ps);
int pmc_event_names_of_class(enum pmc_class _cl, const char ***_eventnames,
int *_nevents);
+
+int pmc_pmu_enabled(void);
+void pmc_pmu_print_counters(void);
+void pmc_pmu_print_counter_desc(const char *);
+void pmc_pmu_print_counter_desc_long(const char *);
+uint64_t pmc_pmu_sample_rate_get(const char *);
+int pmc_pmu_pmcallocate(const char *, struct pmc_op_pmcallocate *);
+const char *pmu_event_get_by_idx(int idx);
__END_DECLS
#endif
diff --git a/lib/libpmc/pmclog.3 b/lib/libpmc/pmclog.3
index 91c7222da7f2..d60e97085831 100644
--- a/lib/libpmc/pmclog.3
+++ b/lib/libpmc/pmclog.3
@@ -82,13 +82,14 @@ struct pmclog_ev {
struct timespec pl_ts; /* log entry timestamp */
enum pmclog_type pl_type; /* log entry kind */
union { /* log entry data */
+ struct pmclog_ev_callchain pl_cc;
struct pmclog_ev_closelog pl_cl;
struct pmclog_ev_dropnotify pl_d;
struct pmclog_ev_initialize pl_i;
struct pmclog_ev_map_in pl_mi;
struct pmclog_ev_map_out pl_mo;
- struct pmclog_ev_pcsample pl_s;
struct pmclog_ev_pmcallocate pl_a;
+ struct pmclog_ev_pmcallocatedyn pl_ad;
struct pmclog_ev_pmcattach pl_t;
struct pmclog_ev_pmcdetach pl_d;
struct pmclog_ev_proccsw pl_c;
@@ -270,8 +271,8 @@ while (pmclog_read(parser, &ev) == 0) {
case PMCLOG_TYPE_PROCCSW:
--process a thread context switch record--
break;
- case PMCLOG_TYPE_PCSAMPLE:
- --process a PC sample--
+ case PMCLOG_TYPE_CALLCHAIN:
+ --process a callchain sample--
break;
--and so on--
}
diff --git a/lib/libpmc/pmclog.c b/lib/libpmc/pmclog.c
index dd91a68d864f..8e0504b290f2 100644
--- a/lib/libpmc/pmclog.c
+++ b/lib/libpmc/pmclog.c
@@ -46,6 +46,7 @@ __FBSDID("$FreeBSD$");
#include <string.h>
#include <strings.h>
#include <unistd.h>
+#include <stdio.h>
#include <machine/pmc_mdep.h>
@@ -278,7 +279,7 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len,
struct pmclog_ev *ev)
{
int evlen, pathlen;
- uint32_t h, *le, npc;
+ uint32_t h, *le, npc, noop;
enum pmclog_parser_state e;
struct pmclog_parse_state *ps;
@@ -288,6 +289,7 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len,
if ((e = pmclog_get_record(ps,data,len)) == PL_STATE_ERROR) {
ev->pl_state = PMCLOG_ERROR;
+ printf("state error\n");
return -1;
}
@@ -301,6 +303,7 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len,
PMCLOG_READ32(le,h);
if (!PMCLOG_HEADER_CHECK_MAGIC(h)) {
+ printf("bad magic\n");
ps->ps_state = PL_STATE_ERROR;
ev->pl_state = PMCLOG_ERROR;
return -1;
@@ -360,21 +363,20 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len,
PMCLOG_READADDR(le,ev->pl_u.pl_mo.pl_start);
PMCLOG_READADDR(le,ev->pl_u.pl_mo.pl_end);
break;
- case PMCLOG_TYPE_PCSAMPLE:
- PMCLOG_READ32(le,ev->pl_u.pl_s.pl_pid);
- PMCLOG_READADDR(le,ev->pl_u.pl_s.pl_pc);
- PMCLOG_READ32(le,ev->pl_u.pl_s.pl_pmcid);
- PMCLOG_READ32(le,ev->pl_u.pl_s.pl_usermode);
- PMCLOG_READ32(le,ev->pl_u.pl_s.pl_tid);
- break;
case PMCLOG_TYPE_PMCALLOCATE:
PMCLOG_READ32(le,ev->pl_u.pl_a.pl_pmcid);
PMCLOG_READ32(le,ev->pl_u.pl_a.pl_event);
PMCLOG_READ32(le,ev->pl_u.pl_a.pl_flags);
- if ((ev->pl_u.pl_a.pl_evname =
+ PMCLOG_READ32(le,noop);
+ ev->pl_u.pl_a.pl_evname = pmu_event_get_by_idx(ev->pl_u.pl_a.pl_event);
+ if (ev->pl_u.pl_a.pl_evname != NULL)
+ break;
+ else if ((ev->pl_u.pl_a.pl_evname =
_pmc_name_of_event(ev->pl_u.pl_a.pl_event, ps->ps_arch))
- == NULL)
+ == NULL) {
+ printf("unknown event\n");
goto error;
+ }
break;
case PMCLOG_TYPE_PMCALLOCATEDYN:
PMCLOG_READ32(le,ev->pl_u.pl_ad.pl_pmcid);
@@ -401,14 +403,16 @@ pmclog_get_event(void *cookie, char **data, ssize_t *len,
case PMCLOG_TYPE_PROCEXEC:
PMCLOG_GET_PATHLEN(pathlen,evlen,pmclog_procexec);
PMCLOG_READ32(le,ev->pl_u.pl_x.pl_pid);
- PMCLOG_READADDR(le,ev->pl_u.pl_x.pl_entryaddr);
PMCLOG_READ32(le,ev->pl_u.pl_x.pl_pmcid);
+ PMCLOG_READ32(le,noop);
+ PMCLOG_READADDR(le,ev->pl_u.pl_x.pl_entryaddr);
PMCLOG_READSTRING(le,ev->pl_u.pl_x.pl_pathname,pathlen);
break;
case PMCLOG_TYPE_PROCEXIT:
PMCLOG_READ32(le,ev->pl_u.pl_e.pl_pmcid);
- PMCLOG_READ64(le,ev->pl_u.pl_e.pl_value);
PMCLOG_READ32(le,ev->pl_u.pl_e.pl_pid);
+ PMCLOG_READ32(le,noop);
+ PMCLOG_READ64(le,ev->pl_u.pl_e.pl_value);
break;
case PMCLOG_TYPE_PROCFORK:
PMCLOG_READ32(le,ev->pl_u.pl_f.pl_oldpid);
@@ -489,8 +493,9 @@ pmclog_read(void *cookie, struct pmclog_ev *ev)
ps->ps_len = nread;
ps->ps_data = ps->ps_buffer;
- } else
+ } else {
return -1;
+ }
}
assert(ps->ps_len > 0);
@@ -498,7 +503,6 @@ pmclog_read(void *cookie, struct pmclog_ev *ev)
/* Retrieve one event from the byte stream. */
retval = pmclog_get_event(ps, &ps->ps_data, &ps->ps_len, ev);
-
/*
* If we need more data and we have a configured fd, try read
* from it.
diff --git a/lib/libpmc/pmclog.h b/lib/libpmc/pmclog.h
index 9f748b77d69a..a6b4d84a1104 100644
--- a/lib/libpmc/pmclog.h
+++ b/lib/libpmc/pmclog.h
@@ -158,7 +158,6 @@ struct pmclog_ev {
struct pmclog_ev_initialize pl_i;
struct pmclog_ev_map_in pl_mi;
struct pmclog_ev_map_out pl_mo;
- struct pmclog_ev_pcsample pl_s;
struct pmclog_ev_pmcallocate pl_a;
struct pmclog_ev_pmcallocatedyn pl_ad;
struct pmclog_ev_pmcattach pl_t;
diff --git a/lib/libpmcstat/pmu-events/Makefile b/lib/libpmc/pmu-events/Makefile
index 65582dba96c2..65582dba96c2 100644
--- a/lib/libpmcstat/pmu-events/Makefile
+++ b/lib/libpmc/pmu-events/Makefile
diff --git a/lib/libpmcstat/pmu-events/README b/lib/libpmc/pmu-events/README
index e62b09b6a844..e62b09b6a844 100644
--- a/lib/libpmcstat/pmu-events/README
+++ b/lib/libpmc/pmu-events/README
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/branch.json b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/branch.json
index 0b0e6b26605b..0b0e6b26605b 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/branch.json
+++ b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/branch.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/bus.json b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/bus.json
index ce33b2553277..ce33b2553277 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/bus.json
+++ b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/bus.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/cache.json b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/cache.json
index 5dfbec43c9f9..5dfbec43c9f9 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/cache.json
+++ b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/memory.json b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/memory.json
index 25ae642ba381..25ae642ba381 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/memory.json
+++ b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/other.json b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/other.json
index 6cc6cbd7bf0b..6cc6cbd7bf0b 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/other.json
+++ b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/pipeline.json b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/pipeline.json
index f45a6b5d0025..f45a6b5d0025 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/arm/cortex-a53/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/arm64/arm/cortex-a53/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/armv8-recommended.json b/lib/libpmc/pmu-events/arch/arm64/armv8-recommended.json
index 6328828c018c..6328828c018c 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/armv8-recommended.json
+++ b/lib/libpmc/pmu-events/arch/arm64/armv8-recommended.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json b/lib/libpmc/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
index bc03c06c3918..bc03c06c3918 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
+++ b/lib/libpmc/pmu-events/arch/arm64/cavium/thunderx2/core-imp-def.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json b/lib/libpmc/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json
index 9f0f15d15f75..9f0f15d15f75 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json
+++ b/lib/libpmc/pmu-events/arch/arm64/hisilicon/hip08/core-imp-def.json
diff --git a/lib/libpmcstat/pmu-events/arch/arm64/mapfile.csv b/lib/libpmc/pmu-events/arch/arm64/mapfile.csv
index f03e26ecb658..f03e26ecb658 100644
--- a/lib/libpmcstat/pmu-events/arch/arm64/mapfile.csv
+++ b/lib/libpmc/pmu-events/arch/arm64/mapfile.csv
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/mapfile.csv b/lib/libpmc/pmu-events/arch/powerpc/mapfile.csv
index 229150e7ab7d..229150e7ab7d 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/mapfile.csv
+++ b/lib/libpmc/pmu-events/arch/powerpc/mapfile.csv
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/cache.json b/lib/libpmc/pmu-events/arch/powerpc/power8/cache.json
index 4a3daa6b4b96..4a3daa6b4b96 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/cache.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/floating-point.json b/lib/libpmc/pmu-events/arch/powerpc/power8/floating-point.json
index 5f1bb9fca40c..5f1bb9fca40c 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/frontend.json b/lib/libpmc/pmu-events/arch/powerpc/power8/frontend.json
index 04c5f1b7bee1..04c5f1b7bee1 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/frontend.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/marked.json b/lib/libpmc/pmu-events/arch/powerpc/power8/marked.json
index dcdcede3c3fe..dcdcede3c3fe 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/marked.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/marked.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/memory.json b/lib/libpmc/pmu-events/arch/powerpc/power8/memory.json
index 87cdaadba7bd..87cdaadba7bd 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/memory.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/other.json b/lib/libpmc/pmu-events/arch/powerpc/power8/other.json
index 704302c3e67d..704302c3e67d 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/other.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/pipeline.json b/lib/libpmc/pmu-events/arch/powerpc/power8/pipeline.json
index 293f3a4c6901..293f3a4c6901 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/pmc.json b/lib/libpmc/pmu-events/arch/powerpc/power8/pmc.json
index 583e4d937621..583e4d937621 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/pmc.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/pmc.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power8/translation.json b/lib/libpmc/pmu-events/arch/powerpc/power8/translation.json
index e47a55459bc8..e47a55459bc8 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power8/translation.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power8/translation.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/cache.json b/lib/libpmc/pmu-events/arch/powerpc/power9/cache.json
index 851072105054..851072105054 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/cache.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/floating-point.json b/lib/libpmc/pmu-events/arch/powerpc/power9/floating-point.json
index 8a83bca26552..8a83bca26552 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/frontend.json b/lib/libpmc/pmu-events/arch/powerpc/power9/frontend.json
index f9fa84b16fb5..f9fa84b16fb5 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/frontend.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/marked.json b/lib/libpmc/pmu-events/arch/powerpc/power9/marked.json
index b1954c38bab1..b1954c38bab1 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/marked.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/marked.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/memory.json b/lib/libpmc/pmu-events/arch/powerpc/power9/memory.json
index 2e2ebc700c74..2e2ebc700c74 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/memory.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/other.json b/lib/libpmc/pmu-events/arch/powerpc/power9/other.json
index 48cf4f920b3f..48cf4f920b3f 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/other.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/pipeline.json b/lib/libpmc/pmu-events/arch/powerpc/power9/pipeline.json
index b4772f54a271..b4772f54a271 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/pmc.json b/lib/libpmc/pmu-events/arch/powerpc/power9/pmc.json
index 8b3b0f3be664..8b3b0f3be664 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/pmc.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/pmc.json
diff --git a/lib/libpmcstat/pmu-events/arch/powerpc/power9/translation.json b/lib/libpmc/pmu-events/arch/powerpc/power9/translation.json
index b27642676244..b27642676244 100644
--- a/lib/libpmcstat/pmu-events/arch/powerpc/power9/translation.json
+++ b/lib/libpmc/pmu-events/arch/powerpc/power9/translation.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z10/basic.json b/lib/libpmc/pmu-events/arch/s390/cf_z10/basic.json
index 8bf16759ca53..8bf16759ca53 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z10/basic.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z10/basic.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z10/crypto.json b/lib/libpmc/pmu-events/arch/s390/cf_z10/crypto.json
index 7e5b72492141..7e5b72492141 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z10/crypto.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z10/crypto.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z10/extended.json b/lib/libpmc/pmu-events/arch/s390/cf_z10/extended.json
index 0feedb40f30f..0feedb40f30f 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z10/extended.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z10/extended.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z13/basic.json b/lib/libpmc/pmu-events/arch/s390/cf_z13/basic.json
index 8bf16759ca53..8bf16759ca53 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z13/basic.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z13/basic.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z13/crypto.json b/lib/libpmc/pmu-events/arch/s390/cf_z13/crypto.json
index 7e5b72492141..7e5b72492141 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z13/crypto.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z13/crypto.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z13/extended.json b/lib/libpmc/pmu-events/arch/s390/cf_z13/extended.json
index 9a002b6967f1..9a002b6967f1 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z13/extended.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z13/extended.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z14/basic.json b/lib/libpmc/pmu-events/arch/s390/cf_z14/basic.json
index 8f653c9d899d..8f653c9d899d 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z14/basic.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z14/basic.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z14/crypto.json b/lib/libpmc/pmu-events/arch/s390/cf_z14/crypto.json
index 7e5b72492141..7e5b72492141 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z14/crypto.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z14/crypto.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z14/extended.json b/lib/libpmc/pmu-events/arch/s390/cf_z14/extended.json
index aa4dfb46b65b..aa4dfb46b65b 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z14/extended.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z14/extended.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z196/basic.json b/lib/libpmc/pmu-events/arch/s390/cf_z196/basic.json
index 8bf16759ca53..8bf16759ca53 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z196/basic.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z196/basic.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z196/crypto.json b/lib/libpmc/pmu-events/arch/s390/cf_z196/crypto.json
index 7e5b72492141..7e5b72492141 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z196/crypto.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z196/crypto.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_z196/extended.json b/lib/libpmc/pmu-events/arch/s390/cf_z196/extended.json
index b6d7fec7c2e7..b6d7fec7c2e7 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_z196/extended.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_z196/extended.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_zec12/basic.json b/lib/libpmc/pmu-events/arch/s390/cf_zec12/basic.json
index 8bf16759ca53..8bf16759ca53 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_zec12/basic.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_zec12/basic.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_zec12/crypto.json b/lib/libpmc/pmu-events/arch/s390/cf_zec12/crypto.json
index 7e5b72492141..7e5b72492141 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_zec12/crypto.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_zec12/crypto.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/cf_zec12/extended.json b/lib/libpmc/pmu-events/arch/s390/cf_zec12/extended.json
index 8682126aabb2..8682126aabb2 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/cf_zec12/extended.json
+++ b/lib/libpmc/pmu-events/arch/s390/cf_zec12/extended.json
diff --git a/lib/libpmcstat/pmu-events/arch/s390/mapfile.csv b/lib/libpmc/pmu-events/arch/s390/mapfile.csv
index ca7682748a4b..ca7682748a4b 100644
--- a/lib/libpmcstat/pmu-events/arch/s390/mapfile.csv
+++ b/lib/libpmc/pmu-events/arch/s390/mapfile.csv
diff --git a/lib/libpmcstat/pmu-events/arch/x86/bonnell/cache.json b/lib/libpmc/pmu-events/arch/x86/bonnell/cache.json
index ffab90c5891c..ffab90c5891c 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/bonnell/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/bonnell/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/bonnell/floating-point.json b/lib/libpmc/pmu-events/arch/x86/bonnell/floating-point.json
index f0e090cdb9f0..f0e090cdb9f0 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/bonnell/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/bonnell/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/bonnell/frontend.json b/lib/libpmc/pmu-events/arch/x86/bonnell/frontend.json
index 935b7dcf067d..935b7dcf067d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/bonnell/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/bonnell/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/bonnell/memory.json b/lib/libpmc/pmu-events/arch/x86/bonnell/memory.json
index 3ae843b20c8a..3ae843b20c8a 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/bonnell/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/bonnell/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/bonnell/other.json b/lib/libpmc/pmu-events/arch/x86/bonnell/other.json
index 4bc1c582d1cd..4bc1c582d1cd 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/bonnell/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/bonnell/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/bonnell/pipeline.json b/lib/libpmc/pmu-events/arch/x86/bonnell/pipeline.json
index b2e681c78466..b2e681c78466 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/bonnell/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/bonnell/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/bonnell/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/bonnell/virtual-memory.json
index 7bb817588721..7bb817588721 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/bonnell/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/bonnell/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/bdw-metrics.json b/lib/libpmc/pmu-events/arch/x86/broadwell/bdw-metrics.json
index 00bfdb5c5acb..00bfdb5c5acb 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/bdw-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/bdw-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/cache.json b/lib/libpmc/pmu-events/arch/x86/broadwell/cache.json
index bba3152ec54a..bba3152ec54a 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/floating-point.json b/lib/libpmc/pmu-events/arch/x86/broadwell/floating-point.json
index 689d478dae93..689d478dae93 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/frontend.json b/lib/libpmc/pmu-events/arch/x86/broadwell/frontend.json
index 7142c76d7f11..7142c76d7f11 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/memory.json b/lib/libpmc/pmu-events/arch/x86/broadwell/memory.json
index c9154cebbdf0..c9154cebbdf0 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/other.json b/lib/libpmc/pmu-events/arch/x86/broadwell/other.json
index 4f829c5febbe..4f829c5febbe 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/pipeline.json b/lib/libpmc/pmu-events/arch/x86/broadwell/pipeline.json
index 97c5d0784c6c..97c5d0784c6c 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/uncore.json b/lib/libpmc/pmu-events/arch/x86/broadwell/uncore.json
index 28e1e159a3cb..28e1e159a3cb 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/uncore.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/uncore.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwell/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/broadwell/virtual-memory.json
index 2a015e4c7e21..2a015e4c7e21 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwell/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwell/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/bdwde-metrics.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
index 49c5f123d811..49c5f123d811 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/bdwde-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/cache.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/cache.json
index bf243fe2a0ec..bf243fe2a0ec 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/floating-point.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/floating-point.json
index d7b9d9c9c518..d7b9d9c9c518 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/frontend.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/frontend.json
index 72781e1e3362..72781e1e3362 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/memory.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/memory.json
index e44f73c24ac8..e44f73c24ac8 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/other.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/other.json
index 4475249ea9da..4475249ea9da 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/pipeline.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/pipeline.json
index 920c89da9111..920c89da9111 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-cache.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-cache.json
index 58ed6d33d1f4..58ed6d33d1f4 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-memory.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-memory.json
index f4b0745cdbbf..f4b0745cdbbf 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-power.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-power.json
index dd1b95655d1d..dd1b95655d1d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/uncore-power.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/uncore-power.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/broadwellde/virtual-memory.json
index 7d79c707c6d1..7d79c707c6d1 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellde/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellde/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/bdx-metrics.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/bdx-metrics.json
index 5a7f1ec24200..5a7f1ec24200 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/bdx-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/bdx-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/cache.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/cache.json
index bf0c51272068..bf0c51272068 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/floating-point.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/floating-point.json
index d7b9d9c9c518..d7b9d9c9c518 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/frontend.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/frontend.json
index 72781e1e3362..72781e1e3362 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/memory.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/memory.json
index d79a5cfea44b..d79a5cfea44b 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/other.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/other.json
index 4475249ea9da..4475249ea9da 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/pipeline.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/pipeline.json
index 920c89da9111..920c89da9111 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-cache.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-cache.json
index 58ed6d33d1f4..58ed6d33d1f4 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-interconnect.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-interconnect.json
index 824961318c1e..824961318c1e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-interconnect.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-interconnect.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-memory.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-memory.json
index 66eed399724c..66eed399724c 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-power.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-power.json
index dd1b95655d1d..dd1b95655d1d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/uncore-power.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/uncore-power.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/broadwellx/virtual-memory.json
index 7d79c707c6d1..7d79c707c6d1 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/broadwellx/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/broadwellx/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmont/cache.json b/lib/libpmc/pmu-events/arch/x86/goldmont/cache.json
index f8bbe087b0f8..f8bbe087b0f8 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmont/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmont/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmont/frontend.json b/lib/libpmc/pmu-events/arch/x86/goldmont/frontend.json
index 9ba08518649e..9ba08518649e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmont/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmont/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmont/memory.json b/lib/libpmc/pmu-events/arch/x86/goldmont/memory.json
index 690cebd12a94..690cebd12a94 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmont/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmont/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmont/other.json b/lib/libpmc/pmu-events/arch/x86/goldmont/other.json
index 959cadd7cb0e..959cadd7cb0e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmont/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmont/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmont/pipeline.json b/lib/libpmc/pmu-events/arch/x86/goldmont/pipeline.json
index 254788af8ab6..254788af8ab6 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmont/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmont/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmont/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/goldmont/virtual-memory.json
index 9805198d3f5f..9805198d3f5f 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmont/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmont/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/cache.json b/lib/libpmc/pmu-events/arch/x86/goldmontplus/cache.json
index b4791b443a66..b4791b443a66 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmontplus/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/frontend.json b/lib/libpmc/pmu-events/arch/x86/goldmontplus/frontend.json
index a7878965ceab..a7878965ceab 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmontplus/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/memory.json b/lib/libpmc/pmu-events/arch/x86/goldmontplus/memory.json
index 91e0815f3ffb..91e0815f3ffb 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmontplus/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/other.json b/lib/libpmc/pmu-events/arch/x86/goldmontplus/other.json
index b860374418ab..b860374418ab 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmontplus/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/pipeline.json b/lib/libpmc/pmu-events/arch/x86/goldmontplus/pipeline.json
index ccf1aed69197..ccf1aed69197 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmontplus/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/goldmontplus/virtual-memory.json
index 0b53a3b0dfb8..0b53a3b0dfb8 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/goldmontplus/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/goldmontplus/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/cache.json b/lib/libpmc/pmu-events/arch/x86/haswell/cache.json
index da4d6ddd4f92..da4d6ddd4f92 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/floating-point.json b/lib/libpmc/pmu-events/arch/x86/haswell/floating-point.json
index f9843e5a9b42..f9843e5a9b42 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/frontend.json b/lib/libpmc/pmu-events/arch/x86/haswell/frontend.json
index c0a5bedcc15c..c0a5bedcc15c 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/hsw-metrics.json b/lib/libpmc/pmu-events/arch/x86/haswell/hsw-metrics.json
index 5ab5c78fe580..5ab5c78fe580 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/hsw-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/hsw-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/memory.json b/lib/libpmc/pmu-events/arch/x86/haswell/memory.json
index e5f9fa6655b3..e5f9fa6655b3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/other.json b/lib/libpmc/pmu-events/arch/x86/haswell/other.json
index 8a4d898d76c1..8a4d898d76c1 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/pipeline.json b/lib/libpmc/pmu-events/arch/x86/haswell/pipeline.json
index a4dcfce4a512..a4dcfce4a512 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/uncore.json b/lib/libpmc/pmu-events/arch/x86/haswell/uncore.json
index 3ef5c21fef56..3ef5c21fef56 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/uncore.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/uncore.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswell/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/haswell/virtual-memory.json
index 777b500a5c9f..777b500a5c9f 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswell/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswell/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/cache.json b/lib/libpmc/pmu-events/arch/x86/haswellx/cache.json
index b2fbd617306a..b2fbd617306a 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/floating-point.json b/lib/libpmc/pmu-events/arch/x86/haswellx/floating-point.json
index bc08cc1f2f7e..bc08cc1f2f7e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/frontend.json b/lib/libpmc/pmu-events/arch/x86/haswellx/frontend.json
index a4d9f1fcf940..a4d9f1fcf940 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/hsx-metrics.json b/lib/libpmc/pmu-events/arch/x86/haswellx/hsx-metrics.json
index 5ab5c78fe580..5ab5c78fe580 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/hsx-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/hsx-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/memory.json b/lib/libpmc/pmu-events/arch/x86/haswellx/memory.json
index 56b0f24b8029..56b0f24b8029 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/other.json b/lib/libpmc/pmu-events/arch/x86/haswellx/other.json
index 800e65df31bc..800e65df31bc 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/pipeline.json b/lib/libpmc/pmu-events/arch/x86/haswellx/pipeline.json
index 8a18bfe9e3e4..8a18bfe9e3e4 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-cache.json b/lib/libpmc/pmu-events/arch/x86/haswellx/uncore-cache.json
index 58ed6d33d1f4..58ed6d33d1f4 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/uncore-cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-interconnect.json b/lib/libpmc/pmu-events/arch/x86/haswellx/uncore-interconnect.json
index 824961318c1e..824961318c1e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-interconnect.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/uncore-interconnect.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-memory.json b/lib/libpmc/pmu-events/arch/x86/haswellx/uncore-memory.json
index 66eed399724c..66eed399724c 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/uncore-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-power.json b/lib/libpmc/pmu-events/arch/x86/haswellx/uncore-power.json
index dd1b95655d1d..dd1b95655d1d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/uncore-power.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/uncore-power.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/haswellx/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/haswellx/virtual-memory.json
index 168df552b1a8..168df552b1a8 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/haswellx/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/haswellx/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/cache.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/cache.json
index 999a01bc6467..999a01bc6467 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/floating-point.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/floating-point.json
index 950b62c0908e..950b62c0908e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/frontend.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/frontend.json
index efaa949ead31..efaa949ead31 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/ivb-metrics.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/ivb-metrics.json
index 7c2679514efb..7c2679514efb 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/ivb-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/ivb-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/memory.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/memory.json
index a74d54f56192..a74d54f56192 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/other.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/other.json
index 4eb83ee40412..4eb83ee40412 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/pipeline.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/pipeline.json
index 0afbfd95ea30..0afbfd95ea30 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/uncore.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/uncore.json
index 42c70eed05a2..42c70eed05a2 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/uncore.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/uncore.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/ivybridge/virtual-memory.json
index f243551b4d12..f243551b4d12 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivybridge/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivybridge/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/cache.json b/lib/libpmc/pmu-events/arch/x86/ivytown/cache.json
index 6dad3ad6b102..6dad3ad6b102 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/floating-point.json b/lib/libpmc/pmu-events/arch/x86/ivytown/floating-point.json
index 950b62c0908e..950b62c0908e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/frontend.json b/lib/libpmc/pmu-events/arch/x86/ivytown/frontend.json
index efaa949ead31..efaa949ead31 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/ivt-metrics.json b/lib/libpmc/pmu-events/arch/x86/ivytown/ivt-metrics.json
index 7c2679514efb..7c2679514efb 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/ivt-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/ivt-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/memory.json b/lib/libpmc/pmu-events/arch/x86/ivytown/memory.json
index 3a7b86af8816..3a7b86af8816 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/other.json b/lib/libpmc/pmu-events/arch/x86/ivytown/other.json
index 4eb83ee40412..4eb83ee40412 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/pipeline.json b/lib/libpmc/pmu-events/arch/x86/ivytown/pipeline.json
index 0afbfd95ea30..0afbfd95ea30 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-cache.json b/lib/libpmc/pmu-events/arch/x86/ivytown/uncore-cache.json
index 267410594833..267410594833 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/uncore-cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-interconnect.json b/lib/libpmc/pmu-events/arch/x86/ivytown/uncore-interconnect.json
index b798a860bc81..b798a860bc81 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-interconnect.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/uncore-interconnect.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-memory.json b/lib/libpmc/pmu-events/arch/x86/ivytown/uncore-memory.json
index df4b43294fa0..df4b43294fa0 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/uncore-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-power.json b/lib/libpmc/pmu-events/arch/x86/ivytown/uncore-power.json
index d40498f2cb1e..d40498f2cb1e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/uncore-power.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/uncore-power.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/ivytown/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/ivytown/virtual-memory.json
index 4645e9d3f460..4645e9d3f460 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/ivytown/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/ivytown/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/cache.json b/lib/libpmc/pmu-events/arch/x86/jaketown/cache.json
index f723e8f7bb09..f723e8f7bb09 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/floating-point.json b/lib/libpmc/pmu-events/arch/x86/jaketown/floating-point.json
index 982eda48785e..982eda48785e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/frontend.json b/lib/libpmc/pmu-events/arch/x86/jaketown/frontend.json
index 1b7b1dd36c68..1b7b1dd36c68 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/jkt-metrics.json b/lib/libpmc/pmu-events/arch/x86/jaketown/jkt-metrics.json
index fd7d7c438226..fd7d7c438226 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/jkt-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/jkt-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/memory.json b/lib/libpmc/pmu-events/arch/x86/jaketown/memory.json
index 27e636428f4f..27e636428f4f 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/other.json b/lib/libpmc/pmu-events/arch/x86/jaketown/other.json
index 64b195b82c50..64b195b82c50 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/pipeline.json b/lib/libpmc/pmu-events/arch/x86/jaketown/pipeline.json
index 8a597e45ed84..8a597e45ed84 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-cache.json b/lib/libpmc/pmu-events/arch/x86/jaketown/uncore-cache.json
index 3fa61d962607..3fa61d962607 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/uncore-cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-interconnect.json b/lib/libpmc/pmu-events/arch/x86/jaketown/uncore-interconnect.json
index 1b53c0e609e3..1b53c0e609e3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-interconnect.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/uncore-interconnect.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-memory.json b/lib/libpmc/pmu-events/arch/x86/jaketown/uncore-memory.json
index 8551cebeba23..8551cebeba23 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/uncore-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-power.json b/lib/libpmc/pmu-events/arch/x86/jaketown/uncore-power.json
index 16034bfd06dd..16034bfd06dd 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/uncore-power.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/uncore-power.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/jaketown/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/jaketown/virtual-memory.json
index a654ab771fce..a654ab771fce 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/jaketown/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/jaketown/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/cache.json b/lib/libpmc/pmu-events/arch/x86/knightslanding/cache.json
index 88ba5994b994..88ba5994b994 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/knightslanding/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/frontend.json b/lib/libpmc/pmu-events/arch/x86/knightslanding/frontend.json
index 6d38636689a4..6d38636689a4 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/knightslanding/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/memory.json b/lib/libpmc/pmu-events/arch/x86/knightslanding/memory.json
index 700652566200..700652566200 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/knightslanding/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/pipeline.json b/lib/libpmc/pmu-events/arch/x86/knightslanding/pipeline.json
index bb5494cfb5ae..bb5494cfb5ae 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/knightslanding/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/uncore-memory.json b/lib/libpmc/pmu-events/arch/x86/knightslanding/uncore-memory.json
index e3bcd86c4f56..e3bcd86c4f56 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/uncore-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/knightslanding/uncore-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/knightslanding/virtual-memory.json
index f31594507f8c..f31594507f8c 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/knightslanding/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/knightslanding/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/mapfile.csv b/lib/libpmc/pmu-events/arch/x86/mapfile.csv
index 93656f2fd53a..fe1a2c47cabf 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/mapfile.csv
+++ b/lib/libpmc/pmu-events/arch/x86/mapfile.csv
@@ -23,7 +23,10 @@ GenuineIntel-6-1E,v2,nehalemep,core
GenuineIntel-6-1F,v2,nehalemep,core
GenuineIntel-6-1A,v2,nehalemep,core
GenuineIntel-6-2E,v2,nehalemex,core
-GenuineIntel-6-[4589]E,v24,skylake,core
+GenuineIntel-6-4E,v24,skylake,core
+GenuineIntel-6-5E,v24,skylake,core
+GenuineIntel-6-8E,v24,skylake,core
+GenuineIntel-6-9E,v24,skylake,core
GenuineIntel-6-37,v13,silvermont,core
GenuineIntel-6-4D,v13,silvermont,core
GenuineIntel-6-4C,v13,silvermont,core
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/cache.json b/lib/libpmc/pmu-events/arch/x86/nehalemep/cache.json
index a11029efda2f..a11029efda2f 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemep/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/floating-point.json b/lib/libpmc/pmu-events/arch/x86/nehalemep/floating-point.json
index 7d2f71a9dee3..7d2f71a9dee3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemep/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/frontend.json b/lib/libpmc/pmu-events/arch/x86/nehalemep/frontend.json
index e5e21e03444d..e5e21e03444d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemep/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/memory.json b/lib/libpmc/pmu-events/arch/x86/nehalemep/memory.json
index f914a4525b65..f914a4525b65 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemep/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/other.json b/lib/libpmc/pmu-events/arch/x86/nehalemep/other.json
index af0860622445..af0860622445 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemep/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/pipeline.json b/lib/libpmc/pmu-events/arch/x86/nehalemep/pipeline.json
index 41006ddcd893..41006ddcd893 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemep/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/nehalemep/virtual-memory.json
index 0596094e0ee9..0596094e0ee9 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemep/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemep/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/cache.json b/lib/libpmc/pmu-events/arch/x86/nehalemex/cache.json
index 21a0f8fd057e..21a0f8fd057e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemex/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/floating-point.json b/lib/libpmc/pmu-events/arch/x86/nehalemex/floating-point.json
index 7d2f71a9dee3..7d2f71a9dee3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemex/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/frontend.json b/lib/libpmc/pmu-events/arch/x86/nehalemex/frontend.json
index e5e21e03444d..e5e21e03444d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemex/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/memory.json b/lib/libpmc/pmu-events/arch/x86/nehalemex/memory.json
index f914a4525b65..f914a4525b65 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemex/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/other.json b/lib/libpmc/pmu-events/arch/x86/nehalemex/other.json
index af0860622445..af0860622445 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemex/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/pipeline.json b/lib/libpmc/pmu-events/arch/x86/nehalemex/pipeline.json
index 41006ddcd893..41006ddcd893 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemex/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/nehalemex/virtual-memory.json
index 0596094e0ee9..0596094e0ee9 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/nehalemex/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/nehalemex/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/cache.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/cache.json
index bef73c499f83..bef73c499f83 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/floating-point.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/floating-point.json
index 982eda48785e..982eda48785e 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/frontend.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/frontend.json
index 1b7b1dd36c68..1b7b1dd36c68 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/memory.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/memory.json
index e6dfa89d00f3..e6dfa89d00f3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/other.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/other.json
index 64b195b82c50..64b195b82c50 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/pipeline.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/pipeline.json
index 8a597e45ed84..8a597e45ed84 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/snb-metrics.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/snb-metrics.json
index fd7d7c438226..fd7d7c438226 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/snb-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/snb-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/uncore.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/uncore.json
index 42c70eed05a2..42c70eed05a2 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/uncore.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/uncore.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/sandybridge/virtual-memory.json
index a654ab771fce..a654ab771fce 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/sandybridge/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/sandybridge/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/silvermont/cache.json b/lib/libpmc/pmu-events/arch/x86/silvermont/cache.json
index 82be7d1b8b81..82be7d1b8b81 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/silvermont/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/silvermont/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/silvermont/frontend.json b/lib/libpmc/pmu-events/arch/x86/silvermont/frontend.json
index 204473badf5a..204473badf5a 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/silvermont/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/silvermont/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/silvermont/memory.json b/lib/libpmc/pmu-events/arch/x86/silvermont/memory.json
index d72e09a5f929..d72e09a5f929 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/silvermont/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/silvermont/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/silvermont/pipeline.json b/lib/libpmc/pmu-events/arch/x86/silvermont/pipeline.json
index 7468af99190a..7468af99190a 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/silvermont/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/silvermont/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/silvermont/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/silvermont/virtual-memory.json
index ad31479f8f60..ad31479f8f60 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/silvermont/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/silvermont/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/cache.json b/lib/libpmc/pmu-events/arch/x86/skylake/cache.json
index 54bfe9e4045c..54bfe9e4045c 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/floating-point.json b/lib/libpmc/pmu-events/arch/x86/skylake/floating-point.json
index 213dd6230cf2..213dd6230cf2 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/frontend.json b/lib/libpmc/pmu-events/arch/x86/skylake/frontend.json
index 578dff5bd823..578dff5bd823 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/memory.json b/lib/libpmc/pmu-events/arch/x86/skylake/memory.json
index 3bd8b712c889..3bd8b712c889 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/other.json b/lib/libpmc/pmu-events/arch/x86/skylake/other.json
index 84a316d380ac..84a316d380ac 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/pipeline.json b/lib/libpmc/pmu-events/arch/x86/skylake/pipeline.json
index bc6d2afbcd8a..bc6d2afbcd8a 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/skl-metrics.json b/lib/libpmc/pmu-events/arch/x86/skylake/skl-metrics.json
index 36c903faed0b..36c903faed0b 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/skl-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/skl-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/uncore.json b/lib/libpmc/pmu-events/arch/x86/skylake/uncore.json
index dbc193252fb3..dbc193252fb3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/uncore.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/uncore.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylake/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/skylake/virtual-memory.json
index 2bcba7daca14..2bcba7daca14 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylake/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylake/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/cache.json b/lib/libpmc/pmu-events/arch/x86/skylakex/cache.json
index 5c9940866acd..5c9940866acd 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/floating-point.json b/lib/libpmc/pmu-events/arch/x86/skylakex/floating-point.json
index 286ed1a37ec9..286ed1a37ec9 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/frontend.json b/lib/libpmc/pmu-events/arch/x86/skylakex/frontend.json
index 403a4f89e9b2..403a4f89e9b2 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/memory.json b/lib/libpmc/pmu-events/arch/x86/skylakex/memory.json
index e7f1aa31226d..e7f1aa31226d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/other.json b/lib/libpmc/pmu-events/arch/x86/skylakex/other.json
index 778a541463eb..778a541463eb 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/pipeline.json b/lib/libpmc/pmu-events/arch/x86/skylakex/pipeline.json
index f99f7ae27820..f99f7ae27820 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/skx-metrics.json b/lib/libpmc/pmu-events/arch/x86/skylakex/skx-metrics.json
index 36c903faed0b..36c903faed0b 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/skx-metrics.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/skx-metrics.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/uncore-memory.json b/lib/libpmc/pmu-events/arch/x86/skylakex/uncore-memory.json
index 9c7e5f8beee2..9c7e5f8beee2 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/uncore-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/uncore-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/uncore-other.json b/lib/libpmc/pmu-events/arch/x86/skylakex/uncore-other.json
index de6e70e552e2..de6e70e552e2 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/uncore-other.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/uncore-other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/skylakex/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/skylakex/virtual-memory.json
index 7f466c97e485..7f466c97e485 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/skylakex/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/skylakex/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/cache.json b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/cache.json
index 6e61ae20d01a..6e61ae20d01a 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/floating-point.json b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/floating-point.json
index 7d2f71a9dee3..7d2f71a9dee3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/frontend.json b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/frontend.json
index e5e21e03444d..e5e21e03444d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/memory.json b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/memory.json
index 6e0829b7617f..6e0829b7617f 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/other.json b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/other.json
index 85133d6a5ce0..85133d6a5ce0 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/pipeline.json b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/pipeline.json
index f130510f7616..f130510f7616 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/virtual-memory.json
index 57b53562e2bd..57b53562e2bd 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-dp/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-dp/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/cache.json b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/cache.json
index dad20f0e3cac..dad20f0e3cac 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/floating-point.json b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/floating-point.json
index 7d2f71a9dee3..7d2f71a9dee3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/frontend.json b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/frontend.json
index e5e21e03444d..e5e21e03444d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/memory.json b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/memory.json
index 90eb6aac357b..90eb6aac357b 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/other.json b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/other.json
index 85133d6a5ce0..85133d6a5ce0 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/pipeline.json b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/pipeline.json
index f130510f7616..f130510f7616 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/virtual-memory.json
index 2153b3f5d7b0..2153b3f5d7b0 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereep-sp/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereep-sp/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereex/cache.json b/lib/libpmc/pmu-events/arch/x86/westmereex/cache.json
index f9bc7fdd48d6..f9bc7fdd48d6 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereex/cache.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereex/cache.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereex/floating-point.json b/lib/libpmc/pmu-events/arch/x86/westmereex/floating-point.json
index 7d2f71a9dee3..7d2f71a9dee3 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereex/floating-point.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereex/floating-point.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereex/frontend.json b/lib/libpmc/pmu-events/arch/x86/westmereex/frontend.json
index e5e21e03444d..e5e21e03444d 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereex/frontend.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereex/frontend.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereex/memory.json b/lib/libpmc/pmu-events/arch/x86/westmereex/memory.json
index 3ba555e73cbd..3ba555e73cbd 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereex/memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereex/memory.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereex/other.json b/lib/libpmc/pmu-events/arch/x86/westmereex/other.json
index 85133d6a5ce0..85133d6a5ce0 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereex/other.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereex/other.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereex/pipeline.json b/lib/libpmc/pmu-events/arch/x86/westmereex/pipeline.json
index 799c57d94c39..799c57d94c39 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereex/pipeline.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereex/pipeline.json
diff --git a/lib/libpmcstat/pmu-events/arch/x86/westmereex/virtual-memory.json b/lib/libpmc/pmu-events/arch/x86/westmereex/virtual-memory.json
index ad989207e8f8..ad989207e8f8 100644
--- a/lib/libpmcstat/pmu-events/arch/x86/westmereex/virtual-memory.json
+++ b/lib/libpmc/pmu-events/arch/x86/westmereex/virtual-memory.json
diff --git a/lib/libpmcstat/pmu-events/jevents.c b/lib/libpmc/pmu-events/jevents.c
index 4f135772787a..4f135772787a 100644
--- a/lib/libpmcstat/pmu-events/jevents.c
+++ b/lib/libpmc/pmu-events/jevents.c
diff --git a/lib/libpmcstat/pmu-events/jevents.h b/lib/libpmc/pmu-events/jevents.h
index cd3d1c19021b..cd3d1c19021b 100644
--- a/lib/libpmcstat/pmu-events/jevents.h
+++ b/lib/libpmc/pmu-events/jevents.h
diff --git a/lib/libpmcstat/pmu-events/jsmn.c b/lib/libpmc/pmu-events/jsmn.c
index 3d4818a588da..3d4818a588da 100644
--- a/lib/libpmcstat/pmu-events/jsmn.c
+++ b/lib/libpmc/pmu-events/jsmn.c
diff --git a/lib/libpmcstat/pmu-events/jsmn.h b/lib/libpmc/pmu-events/jsmn.h
index 1f3b369cc44f..1f3b369cc44f 100644
--- a/lib/libpmcstat/pmu-events/jsmn.h
+++ b/lib/libpmc/pmu-events/jsmn.h
diff --git a/lib/libpmcstat/pmu-events/json.c b/lib/libpmc/pmu-events/json.c
index cc297bad8c59..cc297bad8c59 100644
--- a/lib/libpmcstat/pmu-events/json.c
+++ b/lib/libpmc/pmu-events/json.c
diff --git a/lib/libpmcstat/pmu-events/json.h b/lib/libpmc/pmu-events/json.h
index 871362aaf1da..871362aaf1da 100644
--- a/lib/libpmcstat/pmu-events/json.h
+++ b/lib/libpmc/pmu-events/json.h
diff --git a/lib/libpmcstat/pmu-events/list.h b/lib/libpmc/pmu-events/list.h
index 3a47e5637958..3a47e5637958 100644
--- a/lib/libpmcstat/pmu-events/list.h
+++ b/lib/libpmc/pmu-events/list.h
diff --git a/lib/libpmcstat/pmu-events/pmu-events.h b/lib/libpmc/pmu-events/pmu-events.h
index c4c01e20114d..c4c01e20114d 100644
--- a/lib/libpmcstat/pmu-events/pmu-events.h
+++ b/lib/libpmc/pmu-events/pmu-events.h
diff --git a/lib/libpmcstat/Makefile b/lib/libpmcstat/Makefile
index a20b14d174d4..5becabb5c957 100644
--- a/lib/libpmcstat/Makefile
+++ b/lib/libpmcstat/Makefile
@@ -9,30 +9,7 @@ SRCS= \
libpmcstat_logging.c \
libpmcstat_process.c \
libpmcstat_string.c \
- libpmcstat_symbol.c \
- libpmcstat_pmu_util.c
+ libpmcstat_symbol.c
INCS= libpmcstat.h
-CFLAGS+= -I${.CURDIR}
-
-.if ${MACHINE_CPUARCH} == "amd64"
-
-.if ${MACHINE_CPUARCH} == "aarch64"
-EVENT_ARCH="arm64"
-.elif ${MACHINE_CPUARCH} == "amd64"
-EVENT_ARCH="x86"
-.elif ${MACHINE_CPUARCH} == "powerpc"
-EVENT_ARCH="powerpc"
-.endif
-
-JEVENTS= ${BTOOLSPATH:U.}/pmu-events/jevents
-# This file is built in a subdirectory so never try to rebuild
-# it here due to missing meta file.
-${JEVENTS}: .NOMETA
-
-libpmcstat_events.c: ${JEVENTS}
- ${JEVENTS} ${EVENT_ARCH} ${.CURDIR}/pmu-events/arch libpmcstat_events.c
-SRCS+= libpmcstat_events.c
-.endif
-
.include <bsd.lib.mk>
diff --git a/lib/libpmcstat/libpmcstat.h b/lib/libpmcstat/libpmcstat.h
index 77965b612e5c..3f5f2689f6b3 100644
--- a/lib/libpmcstat/libpmcstat.h
+++ b/lib/libpmcstat/libpmcstat.h
@@ -382,8 +382,6 @@ int pmcstat_analyze_log(struct pmcstat_args *args,
int pmcstat_open_log(const char *_p, int _mode);
int pmcstat_close_log(struct pmcstat_args *args);
-uint64_t pmcstat_pmu_sample_rate_get(const char *);
-
__END_DECLS
#endif /* !_LIBPMCSTAT_H_ */
diff --git a/lib/libpmcstat/libpmcstat_logging.c b/lib/libpmcstat/libpmcstat_logging.c
index 71ee524bbd8c..42054e636b4b 100644
--- a/lib/libpmcstat/libpmcstat_logging.c
+++ b/lib/libpmcstat/libpmcstat_logging.c
@@ -195,7 +195,6 @@ pmcstat_analyze_log(struct pmcstat_args *args,
int *ps_samples_period)
{
uint32_t cpu, cpuflags;
- uintfptr_t pc;
pid_t pid;
struct pmcstat_image *image;
struct pmcstat_process *pp, *ppnew;
@@ -268,44 +267,6 @@ pmcstat_analyze_log(struct pmcstat_args *args,
ev.pl_u.pl_mo.pl_end);
break;
- case PMCLOG_TYPE_PCSAMPLE:
- /*
- * Note: the `PCSAMPLE' log entry is not
- * generated by hpwmc(4) after version 2.
- */
-
- /*
- * We bring in the gmon file for the image
- * currently associated with the PMC & pid
- * pair and increment the appropriate entry
- * bin inside this.
- */
- pmcstat_stats->ps_samples_total++;
- *ps_samples_period += 1;
-
- pc = ev.pl_u.pl_s.pl_pc;
- pp = pmcstat_process_lookup(ev.pl_u.pl_s.pl_pid,
- PMCSTAT_ALLOCATE);
-
- /* Get PMC record. */
- pmcr = pmcstat_lookup_pmcid(ev.pl_u.pl_s.pl_pmcid, pmcstat_mergepmc);
- assert(pmcr != NULL);
- pmcr->pr_samples++;
-
- /*
- * Call the plugins processing
- * TODO: move pmcstat_process_find_map inside plugins
- */
-
- if (plugins[args->pa_pplugin].pl_process != NULL)
- plugins[args->pa_pplugin].pl_process(
- pp, pmcr, 1, &pc,
- pmcstat_process_find_map(pp, pc) != NULL, 0);
- plugins[args->pa_plugin].pl_process(
- pp, pmcr, 1, &pc,
- pmcstat_process_find_map(pp, pc) != NULL, 0);
- break;
-
case PMCLOG_TYPE_CALLCHAIN:
pmcstat_stats->ps_samples_total++;
*ps_samples_period += 1;
@@ -453,8 +414,8 @@ pmcstat_analyze_log(struct pmcstat_args *args,
return (PMCSTAT_RUNNING);
err(EX_DATAERR,
- "ERROR: event parsing failed (record %jd, offset 0x%jx)",
- (uintmax_t) ev.pl_count + 1, ev.pl_offset);
+ "ERROR: event parsing failed state: %d type: %d (record %jd, offset 0x%jx)",
+ ev.pl_state, ev.pl_type, (uintmax_t) ev.pl_count + 1, ev.pl_offset);
}
/*
diff --git a/lib/libpmcstat/libpmcstat_pmu_util.c b/lib/libpmcstat/libpmcstat_pmu_util.c
deleted file mode 100644
index 915856f1998a..000000000000
--- a/lib/libpmcstat/libpmcstat_pmu_util.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2018, Matthew Macy
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD$
- *
- */
-
-#include <sys/types.h>
-#include <sys/errno.h>
-#include <sys/sysctl.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <limits.h>
-#include <string.h>
-#include <pmc.h>
-#include <pmclog.h>
-#include <libpmcstat.h>
-#include "pmu-events/pmu-events.h"
-
-#if defined(__amd64__)
-struct pmu_alias {
- const char *pa_alias;
- const char *pa_name;
-};
-static struct pmu_alias pmu_alias_table[] = {
- { "UNHALTED_CORE_CYCLES", "CPU_CLK_UNHALTED.THREAD_P_ANY"},
- { "UNHALTED-CORE-CYCLES", "CPU_CLK_UNHALTED.THREAD_P_ANY"},
- { "LLC_MISSES", "LONGEST_LAT_CACHE.MISS"},
- { "LLC-MISSES", "LONGEST_LAT_CACHE.MISS"},
- { "LLC_REFERENCE", "LONGEST_LAT_CACHE.REFERENCE"},
- { "LLC-REFERENCE", "LONGEST_LAT_CACHE.REFERENCE"},
- { "LLC_MISS_RHITM", "mem_load_l3_miss_retired.remote_hitm"},
- { "LLC-MISS-RHITM", "mem_load_l3_miss_retired.remote_hitm"},
- { "RESOURCE_STALL", "RESOURCE_STALLS.ANY"},
- { "RESOURCE_STALLS_ANY", "RESOURCE_STALLS.ANY"},
- { "BRANCH_INSTRUCTION_RETIRED", "BR_INST_RETIRED.ALL_BRANCHES"},
- { "BRANCH-INSTRUCTION-RETIRED", "BR_INST_RETIRED.ALL_BRANCHES"},
- { "BRANCH_MISSES_RETIRED", "BR_MISP_RETIRED.ALL_BRANCHES"},
- { "BRANCH-MISSES-RETIRED", "BR_MISP_RETIRED.ALL_BRANCHES"},
- { NULL, NULL },
-};
-
-static const char *
-pmu_alias_get(const char *name)
-{
- struct pmu_alias *pa;
-
- for (pa = pmu_alias_table; pa->pa_alias != NULL; pa++)
- if (strcasecmp(name, pa->pa_alias) == 0)
- return (pa->pa_name);
- return (name);
-}
-
-struct pmu_event_desc {
- uint32_t ped_umask;
- uint32_t ped_event;
- uint64_t ped_period;
-};
-
-static const struct pmu_events_map *
-pmu_events_map_get(void)
-{
- size_t s;
- char buf[64];
- const struct pmu_events_map *pme;
-
- if (sysctlbyname("kern.hwpmc.cpuid", (void *)NULL, &s,
- (void *)NULL, 0) == -1)
- return (NULL);
- if (sysctlbyname("kern.hwpmc.cpuid", buf, &s,
- (void *)NULL, 0) == -1)
- return (NULL);
- for (pme = pmu_events_map; pme->cpuid != NULL; pme++)
- if (strcmp(buf, pme->cpuid) == 0)
- return (pme);
- return (NULL);
-}
-
-static const struct pmu_event *
-pmu_event_get(const char *event_name)
-{
- const struct pmu_events_map *pme;
- const struct pmu_event *pe;
-
- if ((pme = pmu_events_map_get()) == NULL)
- return (NULL);
- for (pe = pme->table; pe->name || pe->desc || pe->event; pe++) {
- if (pe->name == NULL)
- continue;
- if (strcasecmp(pe->name, event_name) == 0)
- return (pe);
- }
- return (NULL);
-}
-
-static int
-pmu_parse_event(struct pmu_event_desc *ped, const char *eventin)
-{
- char *event;
- char *kvp, *key, *value;
-
- if ((event = strdup(eventin)) == NULL)
- return (ENOMEM);
- bzero(ped, sizeof(*ped));
- while ((kvp = strsep(&event, ",")) != NULL) {
- key = strsep(&kvp, "=");
- if (key == NULL)
- abort();
- value = kvp;
- if (strcmp(key, "umask") == 0)
- ped->ped_umask = strtol(value, NULL, 16);
- if (strcmp(key, "event") == 0)
- ped->ped_event = strtol(value, NULL, 16);
- if (strcmp(key, "period") == 0)
- ped->ped_period = strtol(value, NULL, 10);
- }
- free(event);
- return (0);
-}
-
-uint64_t
-pmcstat_pmu_sample_rate_get(const char *event_name)
-{
- const struct pmu_event *pe;
- struct pmu_event_desc ped;
-
- event_name = pmu_alias_get(event_name);
- if ((pe = pmu_event_get(event_name)) == NULL)
- return (DEFAULT_SAMPLE_COUNT);
- if (pe->alias && (pe = pmu_event_get(pe->alias)) == NULL)
- return (DEFAULT_SAMPLE_COUNT);
- if (pe->event == NULL)
- return (DEFAULT_SAMPLE_COUNT);
- if (pmu_parse_event(&ped, pe->event))
- return (DEFAULT_SAMPLE_COUNT);
- return (ped.ped_period);
-}
-
-#else
-uint64_t pmcstat_pmu_sample_rate_get(const char *event_name __unused) { return (DEFAULT_SAMPLE_COUNT); }
-#endif
diff --git a/sys/dev/hwpmc/hwpmc_core.c b/sys/dev/hwpmc/hwpmc_core.c
index 9fedfc0f32fc..d1a57de45480 100644
--- a/sys/dev/hwpmc/hwpmc_core.c
+++ b/sys/dev/hwpmc/hwpmc_core.c
@@ -548,48 +548,6 @@ iaf_initialize(struct pmc_mdep *md, int maxcpu, int npmc, int pmcwidth)
* Intel programmable PMCs.
*/
-/*
- * Event descriptor tables.
- *
- * For each event id, we track:
- *
- * 1. The CPUs that the event is valid for.
- *
- * 2. If the event uses a fixed UMASK, the value of the umask field.
- * If the event doesn't use a fixed UMASK, a mask of legal bits
- * to check against.
- */
-
-struct iap_event_descr {
- enum pmc_event iap_ev;
- unsigned char iap_evcode;
- unsigned char iap_umask;
- unsigned int iap_flags;
-};
-
-#define IAP_F_CC (1 << 0) /* CPU: Core */
-#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_I7 (1 << 4) /* CPU: Core i7 */
-#define IAP_F_I7O (1 << 4) /* CPU: Core i7 (old) */
-#define IAP_F_WM (1 << 5) /* CPU: Westmere */
-#define IAP_F_SB (1 << 6) /* CPU: Sandy Bridge */
-#define IAP_F_IB (1 << 7) /* CPU: Ivy Bridge */
-#define IAP_F_SBX (1 << 8) /* CPU: Sandy Bridge Xeon */
-#define IAP_F_IBX (1 << 9) /* CPU: Ivy Bridge Xeon */
-#define IAP_F_HW (1 << 10) /* CPU: Haswell */
-#define IAP_F_CAS (1 << 11) /* CPU: Atom Silvermont */
-#define IAP_F_HWX (1 << 12) /* CPU: Haswell Xeon */
-#define IAP_F_BW (1 << 13) /* CPU: Broadwell */
-#define IAP_F_BWX (1 << 14) /* CPU: Broadwell Xeon */
-#define IAP_F_SL (1 << 15) /* CPU: Skylake */
-#define IAP_F_SLX (1 << 16) /* CPU: Skylake Xeon AKA scalable */
-#define IAP_F_FM (1 << 18) /* Fixed mask */
-
-#define IAP_F_ALLCPUSCORE2 \
- (IAP_F_CC | IAP_F_CC2 | IAP_F_CC2E | IAP_F_CA)
-
/* Sub fields of UMASK that this event supports. */
#define IAP_M_CORE (1 << 0) /* Core specificity */
#define IAP_M_AGENT (1 << 1) /* Agent specificity */
@@ -612,1403 +570,6 @@ struct iap_event_descr {
#define IAP_CORE_ALL (0x3 << 14)
#define IAP_F_CMASK 0xFF000000
-static struct iap_event_descr iap_events[] = {
-#undef IAPDESCR
-#define IAPDESCR(N,EV,UM,FLAGS) { \
- .iap_ev = PMC_EV_IAP_EVENT_##N, \
- .iap_evcode = (EV), \
- .iap_umask = (UM), \
- .iap_flags = (FLAGS) \
- }
-
- IAPDESCR(02H_01H, 0x02, 0x01, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(02H_81H, 0x02, 0x81, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(03H_00H, 0x03, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(03H_01H, 0x03, 0x01, IAP_F_FM | IAP_F_I7O | IAP_F_SB |
- IAP_F_SBX | IAP_F_CAS),
- IAPDESCR(03H_02H, 0x03, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW |
- IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(03H_04H, 0x03, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_I7O |
- IAP_F_CAS),
- IAPDESCR(03H_08H, 0x03, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_SB |
- IAP_F_SBX | IAP_F_CAS | IAP_F_IB | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(03H_10H, 0x03, 0x10, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_SB |
- IAP_F_SBX | IAP_F_CAS),
- IAPDESCR(03H_20H, 0x03, 0x20, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_CAS),
- IAPDESCR(03H_40H, 0x03, 0x40, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(03H_80H, 0x03, 0x80, IAP_F_FM | IAP_F_CAS),
-
- IAPDESCR(04H_00H, 0x04, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CAS),
- IAPDESCR(04H_01H, 0x04, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_I7O |
- IAP_F_CAS),
- IAPDESCR(04H_02H, 0x04, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_CAS),
- IAPDESCR(04H_04H, 0x04, 0x04, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(04H_07H, 0x04, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(04H_08H, 0x04, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_CAS),
- IAPDESCR(04H_10H, 0x04, 0x10, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(04H_20H, 0x04, 0x20, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(04H_40H, 0x04, 0x40, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(04H_80H, 0x04, 0x80, IAP_F_FM | IAP_F_CAS),
-
- IAPDESCR(05H_00H, 0x05, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(05H_01H, 0x05, 0x01, IAP_F_FM | IAP_F_I7O | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_CAS | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX),
- IAPDESCR(05H_02H, 0x05, 0x02, IAP_F_FM | IAP_F_I7O | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_CAS | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(05H_03H, 0x05, 0x03, IAP_F_FM | IAP_F_I7O | IAP_F_CAS),
-
- IAPDESCR(06H_00H, 0x06, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2 |
- IAP_F_CC2E | IAP_F_CA),
- IAPDESCR(06H_01H, 0x06, 0x01, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(06H_02H, 0x06, 0x02, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(06H_04H, 0x06, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(06H_08H, 0x06, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(06H_0FH, 0x06, 0x0F, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(07H_00H, 0x07, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2),
- IAPDESCR(07H_01H, 0x07, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX |
- IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(07H_02H, 0x07, 0x02, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(07H_03H, 0x07, 0x03, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(07H_06H, 0x07, 0x06, IAP_F_FM | IAP_F_CA),
- IAPDESCR(07H_08H, 0x07, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_SB |
- IAP_F_SBX),
-
- IAPDESCR(08H_01H, 0x08, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(08H_02H, 0x08, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SLX),
- IAPDESCR(08H_04H, 0x08, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_HW | IAP_F_HWX | IAP_F_SLX),
- IAPDESCR(08H_05H, 0x08, 0x05, IAP_F_FM | IAP_F_CA),
- IAPDESCR(08H_06H, 0x08, 0x06, IAP_F_FM | IAP_F_CA),
- IAPDESCR(08H_07H, 0x08, 0x07, IAP_F_FM | IAP_F_CA),
- IAPDESCR(08H_08H, 0x08, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_SLX),
- IAPDESCR(08H_09H, 0x08, 0x09, IAP_F_FM | IAP_F_CA),
- IAPDESCR(08H_0EH, 0x08, 0x0E, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(08H_10H, 0x08, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_SBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(08H_20H, 0x08, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(08H_40H, 0x08, 0x40, IAP_F_FM | IAP_F_I7O | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(08H_60H, 0x08, 0x60, IAP_F_FM | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(08H_80H, 0x08, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(08H_81H, 0x08, 0x81, IAP_F_FM | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(08H_82H, 0x08, 0x82, IAP_F_FM | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(08H_84H, 0x08, 0x84, IAP_F_FM | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(08H_88H, 0x08, 0x88, IAP_F_FM | IAP_F_IB | IAP_F_IBX),
-
- IAPDESCR(09H_01H, 0x09, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_I7O),
- IAPDESCR(09H_02H, 0x09, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_I7O),
- IAPDESCR(09H_04H, 0x09, 0x04, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(09H_08H, 0x09, 0x08, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(0BH_01H, 0x0B, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(0BH_02H, 0x0B, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(0BH_10H, 0x0B, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(0CH_01H, 0x0C, 0x01, IAP_F_FM | IAP_F_CC2 | IAP_F_I7 |
- IAP_F_WM | IAP_F_SL),
- IAPDESCR(0CH_02H, 0x0C, 0x02, IAP_F_FM | IAP_F_CC2),
- IAPDESCR(0CH_03H, 0x0C, 0x03, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(0DH_01H, 0x0D, 0x01, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(0DH_03H, 0x0D, 0x03, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_HW |
- IAP_F_IB | IAP_F_IBX | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(0DH_40H, 0x0D, 0x40, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
- IAPDESCR(0DH_80H, 0x0D, 0x80, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(0EH_01H, 0x0E, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(0EH_02H, 0x0E, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(0EH_10H, 0x0E, 0x10, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(0EH_20H, 0x0E, 0x20, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(0EH_40H, 0x0E, 0x40, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(0FH_01H, 0x0F, 0x01, IAP_F_FM | IAP_F_I7),
- IAPDESCR(0FH_02H, 0x0F, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(0FH_08H, 0x0F, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(0FH_10H, 0x0F, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(0FH_20H, 0x0F, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(0FH_80H, 0x0F, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(10H_00H, 0x10, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(10H_01H, 0x10, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_I7 |
- IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_IB | IAP_F_IBX ),
- IAPDESCR(10H_02H, 0x10, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(10H_04H, 0x10, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(10H_08H, 0x10, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(10H_10H, 0x10, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_SBX | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(10H_20H, 0x10, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_SBX | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(10H_40H, 0x10, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_SBX | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(10H_80H, 0x10, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_SBX | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(10H_81H, 0x10, 0x81, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(11H_00H, 0x11, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2),
- IAPDESCR(11H_01H, 0x11, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_SB |
- IAP_F_SBX | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(11H_02H, 0x11, 0x02, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_IB | IAP_F_IBX),
- IAPDESCR(11H_81H, 0x11, 0x81, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(12H_00H, 0x12, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(12H_01H, 0x12, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(12H_02H, 0x12, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(12H_04H, 0x12, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(12H_08H, 0x12, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(12H_10H, 0x12, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(12H_20H, 0x12, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(12H_40H, 0x12, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(12H_81H, 0x12, 0x81, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(13H_00H, 0x13, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(13H_01H, 0x13, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(13H_02H, 0x13, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(13H_04H, 0x13, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(13H_07H, 0x13, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(13H_81H, 0x13, 0x81, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(14H_00H, 0x14, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2),
- IAPDESCR(14H_01H, 0x14, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_I7 |
- IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(14H_02H, 0x14, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(17H_01H, 0x17, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_SBX),
-
- IAPDESCR(18H_00H, 0x18, 0x00, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(18H_01H, 0x18, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(19H_00H, 0x19, 0x00, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(19H_01H, 0x19, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(19H_02H, 0x19, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(1DH_01H, 0x1D, 0x01, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(1DH_02H, 0x1D, 0x02, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(1DH_04H, 0x1D, 0x04, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(1EH_01H, 0x1E, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(20H_01H, 0x20, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(21H, 0x21, IAP_M_CORE, IAP_F_ALLCPUSCORE2),
- IAPDESCR(22H, 0x22, IAP_M_CORE, IAP_F_CC2),
- IAPDESCR(23H, 0x23, IAP_M_CORE, IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(24H, 0x24, IAP_M_CORE | IAP_M_PREFETCH, IAP_F_ALLCPUSCORE2),
- IAPDESCR(24H_01H, 0x24, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX ),
- IAPDESCR(24H_02H, 0x24, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(24H_03H, 0x24, 0x03, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_04H, 0x24, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_08H, 0x24, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_0CH, 0x24, 0x0C, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_10H, 0x24, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_20H, 0x24, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_21H, 0x24, 0x21, IAP_F_FM | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(24H_22H, 0x24, 0x22, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(24H_24H, 0x24, 0x24, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(24H_27H, 0x24, 0x27, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(24H_30H, 0x24, 0x30, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(24H_38H, 0x24, 0x38, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(24H_3FH, 0x24, 0x3F, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(24H_40H, 0x24, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_41H, 0x24, 0x41, IAP_F_FM | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(24H_42H, 0x24, 0x42, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(24H_44H, 0x24, 0x44, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(24H_50H, 0x24, 0x50, IAP_F_FM | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(24H_80H, 0x24, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_AAH, 0x24, 0xAA, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(24H_C0H, 0x24, 0xC0, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(24H_D8H, 0x24, 0xD8, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(24H_E1H, 0x24, 0xE1, IAP_F_FM | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(24H_E2H, 0x24, 0xE2, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(24H_E4H, 0x24, 0xE4, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(24H_E7H, 0x24, 0xE7, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(24H_EFH, 0x24, 0xEF, IAP_F_FM | IAP_F_SL),
- IAPDESCR(24H_F8H, 0x24, 0xF8, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(24H_FFH, 0x24, 0xFF, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_HW |
- IAP_F_HWX | IAP_F_SLX),
-
- IAPDESCR(25H, 0x25, IAP_M_CORE, IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(26H, 0x26, IAP_M_CORE | IAP_M_PREFETCH, IAP_F_ALLCPUSCORE2),
- IAPDESCR(26H_01H, 0x26, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_02H, 0x26, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_04H, 0x26, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_08H, 0x26, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_0FH, 0x26, 0x0F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_10H, 0x26, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_20H, 0x26, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_40H, 0x26, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_80H, 0x26, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_F0H, 0x26, 0xF0, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(26H_FFH, 0x26, 0xFF, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(27H, 0x27, IAP_M_CORE | IAP_M_PREFETCH, IAP_F_ALLCPUSCORE2),
- IAPDESCR(27H_01H, 0x27, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(27H_02H, 0x27, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(27H_04H, 0x27, 0x04, IAP_F_FM | IAP_F_I7O | IAP_F_SB |
- IAP_F_SBX),
- IAPDESCR(27H_08H, 0x27, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(27H_0EH, 0x27, 0x0E, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(27H_0FH, 0x27, 0x0F, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(27H_10H, 0x27, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(27H_20H, 0x27, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(27H_40H, 0x27, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(27H_50H, 0x27, 0x50, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(27H_80H, 0x27, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(27H_E0H, 0x27, 0xE0, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(27H_F0H, 0x27, 0xF0, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(28H, 0x28, IAP_M_CORE | IAP_M_MESI, IAP_F_ALLCPUSCORE2),
- IAPDESCR(28H_01H, 0x28, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(28H_02H, 0x28, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SBX),
- IAPDESCR(28H_04H, 0x28, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(28H_07H, 0x28, 0x07, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(28H_08H, 0x28, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(28H_0FH, 0x28, 0x0F, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(28H_18H, 0x28, 0x18, IAP_F_SLX),
- IAPDESCR(28H_20H, 0x28, 0x20, IAP_F_SLX),
- IAPDESCR(28H_40H, 0x28, 0x40, IAP_F_SLX),
-
- IAPDESCR(29H, 0x29, IAP_M_CORE | IAP_M_MESI, IAP_F_CC),
- IAPDESCR(29H, 0x29, IAP_M_CORE | IAP_M_MESI | IAP_M_PREFETCH,
- IAP_F_CA | IAP_F_CC2),
- IAPDESCR(2AH, 0x2A, IAP_M_CORE | IAP_M_MESI, IAP_F_ALLCPUSCORE2),
- IAPDESCR(2BH, 0x2B, IAP_M_CORE | IAP_M_MESI, IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(2EH, 0x2E, IAP_M_CORE | IAP_M_MESI | IAP_M_PREFETCH,
- IAP_F_ALLCPUSCORE2),
- IAPDESCR(2EH_01H, 0x2E, 0x01, IAP_F_FM | IAP_F_WM),
- IAPDESCR(2EH_02H, 0x2E, 0x02, IAP_F_FM | IAP_F_WM),
- IAPDESCR(2EH_41H, 0x2E, 0x41, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_I7 |
- IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW |
- IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(2EH_4FH, 0x2E, 0x4F, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_I7 |
- IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW |
- IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(30H, 0x30, IAP_M_CORE | IAP_M_MESI | IAP_M_PREFETCH,
- IAP_F_ALLCPUSCORE2),
- IAPDESCR(30H_00H, 0x30, 0x00, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(31H_00H, 0x31, 0x00, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(32H, 0x32, IAP_M_CORE | IAP_M_MESI | IAP_M_PREFETCH, IAP_F_CC),
- IAPDESCR(32H, 0x32, IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(3AH, 0x3A, IAP_M_TRANSITION, IAP_F_CC),
- IAPDESCR(3AH_00H, 0x3A, 0x00, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(3BH_C0H, 0x3B, 0xC0, IAP_F_FM | IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(3CH_00H, 0x3C, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX |
- IAP_F_HW | IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(3CH_01H, 0x3C, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX |
- IAP_F_HW | IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(3CH_02H, 0x3C, 0x02, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_SL |
- IAP_F_SLX),
-
- IAPDESCR(3DH_01H, 0x3D, 0x01, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(40H, 0x40, IAP_M_MESI, IAP_F_CC | IAP_F_CC2),
- IAPDESCR(40H_01H, 0x40, 0x01, IAP_F_FM | IAP_F_I7),
- IAPDESCR(40H_02H, 0x40, 0x02, IAP_F_FM | IAP_F_I7),
- IAPDESCR(40H_04H, 0x40, 0x04, IAP_F_FM | IAP_F_I7),
- IAPDESCR(40H_08H, 0x40, 0x08, IAP_F_FM | IAP_F_I7),
- IAPDESCR(40H_0FH, 0x40, 0x0F, IAP_F_FM | IAP_F_I7),
- IAPDESCR(40H_21H, 0x40, 0x21, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(41H, 0x41, IAP_M_MESI, IAP_F_CC | IAP_F_CC2),
- IAPDESCR(41H_01H, 0x41, 0x01, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(41H_02H, 0x41, 0x02, IAP_F_FM | IAP_F_I7),
- IAPDESCR(41H_04H, 0x41, 0x04, IAP_F_FM | IAP_F_I7),
- IAPDESCR(41H_08H, 0x41, 0x08, IAP_F_FM | IAP_F_I7),
- IAPDESCR(41H_0FH, 0x41, 0x0F, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(41H_22H, 0x41, 0x22, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(42H, 0x42, IAP_M_MESI, IAP_F_ALLCPUSCORE2),
- IAPDESCR(42H_01H, 0x42, 0x01, IAP_F_FM | IAP_F_I7),
- IAPDESCR(42H_02H, 0x42, 0x02, IAP_F_FM | IAP_F_I7),
- IAPDESCR(42H_04H, 0x42, 0x04, IAP_F_FM | IAP_F_I7),
- IAPDESCR(42H_08H, 0x42, 0x08, IAP_F_FM | IAP_F_I7),
- IAPDESCR(42H_10H, 0x42, 0x10, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(43H_01H, 0x43, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_I7),
- IAPDESCR(43H_02H, 0x43, 0x02, IAP_F_FM | IAP_F_CA |
- IAP_F_CC2 | IAP_F_I7),
-
- IAPDESCR(44H_02H, 0x44, 0x02, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(45H_0FH, 0x45, 0x0F, IAP_F_FM | IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(46H_00H, 0x46, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(47H_00H, 0x47, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(48H_00H, 0x48, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(48H_01H, 0x48, 0x01, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(48H_02H, 0x48, 0x02, IAP_F_FM | IAP_F_I7O | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(49H_00H, 0x49, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(49H_01H, 0x49, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX |
- IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(49H_02H, 0x49, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX |
- IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SLX),
- IAPDESCR(49H_04H, 0x49, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_SLX),
- IAPDESCR(49H_08H, 0x49, 0x08, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(49H_0EH, 0x49, 0x0E, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(49H_10H, 0x49, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(49H_20H, 0x49, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(49H_40H, 0x49, 0x40, IAP_F_FM | IAP_F_I7O | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(49H_60H, 0x49, 0x60, IAP_F_FM | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(49H_80H, 0x49, 0x80, IAP_F_FM | IAP_F_WM | IAP_F_I7 | IAP_F_HW |
- IAP_F_HWX),
-
- IAPDESCR(4BH_00H, 0x4B, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(4BH_01H, 0x4B, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 | IAP_F_I7O),
- IAPDESCR(4BH_02H, 0x4B, 0x02, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(4BH_03H, 0x4B, 0x03, IAP_F_FM | IAP_F_CC),
- IAPDESCR(4BH_08H, 0x4B, 0x08, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(4CH_00H, 0x4C, 0x00, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(4CH_01H, 0x4C, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(4CH_02H, 0x4C, 0x02, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(4DH_01H, 0x4D, 0x01, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(4EH_01H, 0x4E, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(4EH_02H, 0x4E, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX),
- IAPDESCR(4EH_04H, 0x4E, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(4EH_10H, 0x4E, 0x10, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(4FH_00H, 0x4F, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(4FH_02H, 0x4F, 0x02, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(4FH_04H, 0x4F, 0x04, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(4FH_08H, 0x4F, 0x08, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(4FH_10H, 0x4F, 0x10, IAP_F_FM | IAP_F_WM | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(51H_01H, 0x51, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(51H_02H, 0x51, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX),
- IAPDESCR(51H_04H, 0x51, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX),
- IAPDESCR(51H_08H, 0x51, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX),
-
- IAPDESCR(52H_01H, 0x52, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(53H_01H, 0x53, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(54H_01H, 0x54, 0x01, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(54H_02H, 0x54, 0x02, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(54H_04H, 0x54, 0x04, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(54H_08H, 0x54, 0x08, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(54H_10H, 0x54, 0x10, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(54H_20H, 0x54, 0x20, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(54H_40H, 0x54, 0x40, IAP_F_FM | IAP_F_SLX),
-
- IAPDESCR(58H_01H, 0x58, 0x01, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(58H_02H, 0x58, 0x02, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(58H_04H, 0x58, 0x04, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(58H_08H, 0x58, 0x08, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(59H_20H, 0x59, 0x20, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
- IAPDESCR(59H_40H, 0x59, 0x40, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
- IAPDESCR(59H_80H, 0x59, 0x80, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
-
- IAPDESCR(5BH_0CH, 0x5B, 0x0C, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
- IAPDESCR(5BH_0FH, 0x5B, 0x0F, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
- IAPDESCR(5BH_40H, 0x5B, 0x40, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
- IAPDESCR(5BH_4FH, 0x5B, 0x4F, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
-
- IAPDESCR(5CH_01H, 0x5C, 0x01, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(5CH_02H, 0x5C, 0x02, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(5DH_01H, 0x5d, 0x01, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(5DH_02H, 0x5d, 0x02, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(5DH_04H, 0x5d, 0x04, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(5DH_08H, 0x5d, 0x08, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(5DH_10H, 0x5d, 0x10, IAP_F_FM | IAP_F_SLX),
-
- IAPDESCR(5EH_01H, 0x5E, 0x01, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(5FH_01H, 0x5F, 0x01, IAP_F_FM | IAP_F_IB ), /* IB not in manual */
- IAPDESCR(5FH_04H, 0x5F, 0x04, IAP_F_FM | IAP_F_IBX | IAP_F_IB),
-
- IAPDESCR(60H, 0x60, IAP_M_AGENT | IAP_M_CORE, IAP_F_ALLCPUSCORE2),
- IAPDESCR(60H_01H, 0x60, 0x01, IAP_F_FM | IAP_F_WM | IAP_F_I7O |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(60H_02H, 0x60, 0x02, IAP_F_FM | IAP_F_WM | IAP_F_I7O | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(60H_04H, 0x60, 0x04, IAP_F_FM |IAP_F_I7O |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(60H_08H, 0x60, 0x08, IAP_F_FM |IAP_F_I7O |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(60H_10H, 0x60, 0x10, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(61H, 0x61, IAP_M_AGENT, IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(61H_00H, 0x61, 0x00, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(62H, 0x62, IAP_M_AGENT, IAP_F_ALLCPUSCORE2),
- IAPDESCR(62H_00H, 0x62, 0x00, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(63H, 0x63, IAP_M_AGENT | IAP_M_CORE,
- IAP_F_CA | IAP_F_CC2),
- IAPDESCR(63H, 0x63, IAP_M_CORE, IAP_F_CC),
- IAPDESCR(63H_01H, 0x63, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX ),
- IAPDESCR(63H_02H, 0x63, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL),
-
- IAPDESCR(64H, 0x64, IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
- IAPDESCR(64H_40H, 0x64, 0x40, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(65H, 0x65, IAP_M_AGENT | IAP_M_CORE,
- IAP_F_CA | IAP_F_CC2),
- IAPDESCR(65H, 0x65, IAP_M_CORE, IAP_F_CC),
-
- IAPDESCR(66H, 0x66, IAP_M_AGENT | IAP_M_CORE, IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(67H, 0x67, IAP_M_AGENT | IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
- IAPDESCR(67H, 0x67, IAP_M_AGENT, IAP_F_CC),
- IAPDESCR(68H, 0x68, IAP_M_AGENT | IAP_M_CORE, IAP_F_ALLCPUSCORE2),
- IAPDESCR(69H, 0x69, IAP_M_AGENT | IAP_M_CORE, IAP_F_ALLCPUSCORE2),
- IAPDESCR(6AH, 0x6A, IAP_M_AGENT | IAP_M_CORE, IAP_F_ALLCPUSCORE2),
- IAPDESCR(6BH, 0x6B, IAP_M_AGENT | IAP_M_CORE, IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(6CH, 0x6C, IAP_M_AGENT | IAP_M_CORE, IAP_F_ALLCPUSCORE2),
- IAPDESCR(6CH_01H, 0x6C, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(6DH, 0x6D, IAP_M_AGENT | IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
- IAPDESCR(6DH, 0x6D, IAP_M_CORE, IAP_F_CC),
-
- IAPDESCR(6EH, 0x6E, IAP_M_AGENT | IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
- IAPDESCR(6EH, 0x6E, IAP_M_CORE, IAP_F_CC),
-
- IAPDESCR(6FH, 0x6F, IAP_M_AGENT | IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
- IAPDESCR(6FH, 0x6F, IAP_M_CORE, IAP_F_CC),
-
- IAPDESCR(70H, 0x70, IAP_M_AGENT | IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
- IAPDESCR(70H, 0x70, IAP_M_CORE, IAP_F_CC),
-
- IAPDESCR(77H, 0x77, IAP_M_AGENT | IAP_M_SNOOPRESPONSE,
- IAP_F_CA | IAP_F_CC2),
- IAPDESCR(77H, 0x77, IAP_M_AGENT | IAP_M_MESI, IAP_F_CC),
-
- IAPDESCR(78H, 0x78, IAP_M_CORE, IAP_F_CC),
- IAPDESCR(78H, 0x78, IAP_M_CORE | IAP_M_SNOOPTYPE, IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(79H_02H, 0x79, 0x02, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(79H_04H, 0x79, 0x04, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(79H_08H, 0x79, 0x08, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_SL | IAP_F_BW |
- IAP_F_BWX | IAP_F_SLX),
- IAPDESCR(79H_10H, 0x79, 0x10, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(79H_18H, 0x79, 0x18, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(79H_20H, 0x79, 0x20, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(79H_24H, 0x79, 0x24, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(79H_30H, 0x79, 0x30, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(79H_3CH, 0x79, 0x3C, IAP_F_FM | IAP_F_IB | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(7AH, 0x7A, IAP_M_AGENT, IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(7BH, 0x7B, IAP_M_AGENT, IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(7DH, 0x7D, IAP_M_CORE, IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(7EH, 0x7E, IAP_M_AGENT | IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
- IAPDESCR(7EH_00H, 0x7E, 0x00, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(7FH, 0x7F, IAP_M_CORE, IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(80H_00H, 0x80, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(80H_01H, 0x80, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_CAS),
- IAPDESCR(80H_02H, 0x80, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_I7 |
- IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW |
- IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(80H_03H, 0x80, 0x03, IAP_F_FM | IAP_F_CA | IAP_F_I7 |
- IAP_F_WM | IAP_F_CAS),
- IAPDESCR(80H_04H, 0x80, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_IB |
- IAP_F_IBX | IAP_F_SL | IAP_F_SLX), /* SL may have a spec bug two with
- same entry no cmask */
-
- IAPDESCR(81H_00H, 0x81, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(81H_01H, 0x81, 0x01, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(81H_02H, 0x81, 0x02, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(82H_01H, 0x82, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(82H_02H, 0x82, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(82H_04H, 0x82, 0x04, IAP_F_FM | IAP_F_CA),
- IAPDESCR(82H_10H, 0x82, 0x10, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(82H_12H, 0x82, 0x12, IAP_F_FM | IAP_F_CC2),
- IAPDESCR(82H_40H, 0x82, 0x40, IAP_F_FM | IAP_F_CC2),
-
- IAPDESCR(83H_01H, 0x83, 0x01, IAP_F_FM | IAP_F_I7O | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(83H_02H, 0x83, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(83H_04H, 0x83, 0x04, IAP_F_FM | IAP_F_SLX),
-
- IAPDESCR(85H_00H, 0x85, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(85H_01H, 0x85, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(85H_02H, 0x85, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SLX),
- IAPDESCR(85H_04H, 0x85, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_I7O |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_SLX),
- IAPDESCR(85H_08H, 0x85, 0x08, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(85H_0EH, 0x85, 0x0E, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(85H_10H, 0x85, 0x10, IAP_F_FM | IAP_F_I7O | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(85H_20H, 0x85, 0x20, IAP_F_FM | IAP_F_I7O | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(85H_40H, 0x85, 0x40, IAP_F_FM | IAP_F_I7O | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(85H_60H, 0x85, 0x60, IAP_F_FM | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(85H_80H, 0x85, 0x80, IAP_F_FM | IAP_F_WM | IAP_F_I7O),
-
- IAPDESCR(86H_00H, 0x86, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(87H_00H, 0x87, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(87H_01H, 0x87, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(87H_02H, 0x87, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(87H_04H, 0x87, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(87H_08H, 0x87, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(87H_0FH, 0x87, 0x0F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(88H_00H, 0x88, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(88H_01H, 0x88, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(88H_02H, 0x88, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(88H_04H, 0x88, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(88H_07H, 0x88, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(88H_08H, 0x88, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(88H_10H, 0x88, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(88H_20H, 0x88, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(88H_30H, 0x88, 0x30, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(88H_40H, 0x88, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(88H_41H, 0x88, 0x41, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(88H_7FH, 0x88, 0x7F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(88H_80H, 0x88, 0x80, IAP_F_FM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(88H_81H, 0x88, 0x81, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(88H_82H, 0x88, 0x82, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(88H_84H, 0x88, 0x84, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(88H_88H, 0x88, 0x88, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(88H_90H, 0x88, 0x90, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(88H_A0H, 0x88, 0xA0, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(88H_FFH, 0x88, 0xFF, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(89H_00H, 0x89, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(89H_01H, 0x89, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(89H_02H, 0x89, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(89H_04H, 0x89, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(89H_07H, 0x89, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(89H_08H, 0x89, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(89H_10H, 0x89, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(89H_20H, 0x89, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(89H_30H, 0x89, 0x30, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(89H_40H, 0x89, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(89H_41H, 0x89, 0x41, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(89H_7FH, 0x89, 0x7F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(89H_80H, 0x89, 0x80, IAP_F_FM | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(89H_81H, 0x89, 0x81, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(89H_82H, 0x89, 0x82, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(89H_84H, 0x89, 0x84, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(89H_88H, 0x89, 0x88, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(89H_90H, 0x89, 0x90, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(89H_A0H, 0x89, 0xA0, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(89H_FFH, 0x89, 0xFF, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(8AH_00H, 0x8A, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(8BH_00H, 0x8B, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(8CH_00H, 0x8C, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(8DH_00H, 0x8D, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(8EH_00H, 0x8E, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(8FH_00H, 0x8F, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(90H_00H, 0x90, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(91H_00H, 0x91, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(92H_00H, 0x92, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(93H_00H, 0x93, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(94H_00H, 0x94, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
-
- IAPDESCR(97H_00H, 0x97, 0x00, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(98H_00H, 0x98, 0x00, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(9CH_01H, 0x9C, 0x01, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(A0H_00H, 0xA0, 0x00, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(A1H_01H, 0xA1, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A1H_02H, 0xA1, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A1H_04H, 0xA1, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | /* No desc in IB for this*/
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A1H_08H, 0xA1, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | /* No desc in IB for this*/
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A1H_0CH, 0xA1, 0x0C, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(A1H_10H, 0xA1, 0x10, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | /* No desc in IB for this*/
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A1H_20H, 0xA1, 0x20, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | /* No desc in IB for this*/
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A1H_40H, 0xA1, 0x40, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A1H_80H, 0xA1, 0x80, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(A2H_00H, 0xA2, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(A2H_01H, 0xA2, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A2H_02H, 0xA2, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX),
- IAPDESCR(A2H_04H, 0xA2, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(A2H_08H, 0xA2, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A2H_10H, 0xA2, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(A2H_20H, 0xA2, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX),
- IAPDESCR(A2H_40H, 0xA2, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX),
- IAPDESCR(A2H_80H, 0xA2, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX),
-
- IAPDESCR(A3H_01H, 0xA3, 0x01, IAP_F_FM | IAP_F_SBX | IAP_F_IBX | IAP_F_IB |
- IAP_F_HW | IAP_F_HWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A3H_02H, 0xA3, 0x02, IAP_F_FM | IAP_F_SBX | IAP_F_IBX | IAP_F_IB |
- IAP_F_HW | IAP_F_HWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A3H_04H, 0xA3, 0x04, IAP_F_FM | IAP_F_SBX | IAP_F_IBX | IAP_F_IB |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A3H_05H, 0xA3, 0x05, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(A3H_06H, 0xA3, 0x06, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A3H_08H, 0xA3, 0x08, IAP_F_FM | IAP_F_IBX | IAP_F_HW | IAP_F_IB |
- IAP_F_HWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A3H_0CH, 0xA3, 0x0C, IAP_F_FM | IAP_F_HW | IAP_F_HW | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(A3H_10H, 0xA3, 0x10, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A3H_14H, 0xA3, 0x14, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(A6H_01H, 0xA6, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(A6H_02H, 0xA6, 0x02, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A6H_04H, 0xA6, 0x04, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A6H_08H, 0xA6, 0x08, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A6H_10H, 0xA6, 0x10, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(A6H_40H, 0xA6, 0x40, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(A7H_01H, 0xA7, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM ),
-
- IAPDESCR(A8H_01H, 0xA8, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_IBX |
- IAP_F_IB |IAP_F_SB | IAP_F_SBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(AAH_01H, 0xAA, 0x01, IAP_F_FM | IAP_F_CC2),
- IAPDESCR(AAH_02H, 0xAA, 0x02, IAP_F_FM | IAP_F_CA),
- IAPDESCR(AAH_03H, 0xAA, 0x03, IAP_F_FM | IAP_F_CA),
- IAPDESCR(AAH_08H, 0xAA, 0x08, IAP_F_FM | IAP_F_CC2),
-
- IAPDESCR(ABH_01H, 0xAB, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(ABH_02H, 0xAB, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(ACH_02H, 0xAC, 0x02, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_SL),
- IAPDESCR(ACH_08H, 0xAC, 0x08, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(ACH_0AH, 0xAC, 0x0A, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
-
- IAPDESCR(AEH_01H, 0xAE, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(B0H_00H, 0xB0, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(B0H_01H, 0xB0, 0x01, IAP_F_FM | IAP_F_WM | IAP_F_I7O |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(B0H_02H, 0xB0, 0x02, IAP_F_FM | IAP_F_WM | IAP_F_I7O | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(B0H_04H, 0xB0, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_I7O |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(B0H_08H, 0xB0, 0x08, IAP_F_FM | IAP_F_WM | IAP_F_I7O |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(B0H_10H, 0xB0, 0x10, IAP_F_FM | IAP_F_WM | IAP_F_I7O | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(B0H_20H, 0xB0, 0x20, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(B0H_40H, 0xB0, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B0H_80H, 0xB0, 0x80, IAP_F_FM | IAP_F_CA | IAP_F_WM | IAP_F_I7O |
- IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(B1H_00H, 0xB1, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(B1H_01H, 0xB1, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(B1H_02H, 0xB1, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(B1H_04H, 0xB1, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B1H_08H, 0xB1, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B1H_10H, 0xB1, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(B1H_1FH, 0xB1, 0x1F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B1H_20H, 0xB1, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B1H_3FH, 0xB1, 0x3F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B1H_40H, 0xB1, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B1H_80H, 0xB1, 0x80, IAP_F_FM | IAP_F_CA | IAP_F_I7 |
- IAP_F_WM),
-
- IAPDESCR(B2H_01H, 0xB2, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX | IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(B3H_01H, 0xB3, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_WM | IAP_F_I7O),
- IAPDESCR(B3H_02H, 0xB3, 0x02, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_WM | IAP_F_I7O),
- IAPDESCR(B3H_04H, 0xB3, 0x04, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_WM | IAP_F_I7O),
- IAPDESCR(B3H_08H, 0xB3, 0x08, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(B3H_10H, 0xB3, 0x10, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(B3H_20H, 0xB3, 0x20, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(B3H_81H, 0xB3, 0x81, IAP_F_FM | IAP_F_CA),
- IAPDESCR(B3H_82H, 0xB3, 0x82, IAP_F_FM | IAP_F_CA),
- IAPDESCR(B3H_84H, 0xB3, 0x84, IAP_F_FM | IAP_F_CA),
- IAPDESCR(B3H_88H, 0xB3, 0x88, IAP_F_FM | IAP_F_CA),
- IAPDESCR(B3H_90H, 0xB3, 0x90, IAP_F_FM | IAP_F_CA),
- IAPDESCR(B3H_A0H, 0xB3, 0xA0, IAP_F_FM | IAP_F_CA),
-
- IAPDESCR(B4H_01H, 0xB4, 0x01, IAP_F_FM | IAP_F_WM),
- IAPDESCR(B4H_02H, 0xB4, 0x02, IAP_F_FM | IAP_F_WM),
- IAPDESCR(B4H_04H, 0xB4, 0x04, IAP_F_FM | IAP_F_WM),
-
- IAPDESCR(B6H_01H, 0xB6, 0x01, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
- IAPDESCR(B6H_04H, 0xB6, 0x04, IAP_F_FM | IAP_F_CAS),
-
- IAPDESCR(B7H_01H, 0xB7, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_CAS |
- IAP_F_HWX |IAP_F_BW | IAP_F_BWX | IAP_F_SL),
- IAPDESCR(B7H_02H, 0xB7, 0x02, IAP_F_CAS),
-
- IAPDESCR(B8H_01H, 0xB8, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B8H_02H, 0xB8, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(B8H_04H, 0xB8, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(BAH_01H, 0xBA, 0x01, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(BAH_02H, 0xBA, 0x02, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(BBH_01H, 0xBB, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL),
-
- IAPDESCR(BCH_11H, 0xBC, 0x11, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(BCH_12H, 0xBC, 0x12, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(BCH_14H, 0xBC, 0x14, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(BCH_18H, 0xBC, 0x18, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(BCH_21H, 0xBC, 0x21, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(BCH_22H, 0xBC, 0x22, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(BCH_24H, 0xBC, 0x24, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(BCH_28H, 0xBC, 0x28, IAP_F_FM | IAP_F_HW | IAP_F_HWX),
-
- IAPDESCR(BDH_01H, 0xBD, 0x01, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_SL | IAP_F_SLX), /* spec bug SL? */
- IAPDESCR(BDH_20H, 0xBD, 0x20, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_SLX),
-
- IAPDESCR(BFH_05H, 0xBF, 0x05, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
-
- IAPDESCR(C0H_00H, 0xC0, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW |
- IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C0H_01H, 0xC0, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(C0H_02H, 0xC0, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(C0H_04H, 0xC0, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(C0H_08H, 0xC0, 0x08, IAP_F_FM | IAP_F_CC2E),
-
- IAPDESCR(C1H_00H, 0xC1, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(C1H_01H, 0xC1, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(C1H_02H, 0xC1, 0x02, IAP_F_FM | IAP_F_SB | IAP_F_SBX),
- IAPDESCR(C1H_08H, 0xC1, 0x08, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(C1H_10H, 0xC1, 0x10, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(C1H_20H, 0xC1, 0x20, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(C1H_3FH, 0xC1, 0x3F, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C1H_40H, 0xC1, 0x40, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(C1H_80H, 0xC1, 0x80, IAP_F_FM |IAP_F_IB | IAP_F_IBX),
- IAPDESCR(C1H_FEH, 0xC1, 0xFE, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(C2H_00H, 0xC2, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(C2H_01H, 0xC2, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C2H_02H, 0xC2, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(C2H_04H, 0xC2, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(C2H_07H, 0xC2, 0x07, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(C2H_08H, 0xC2, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(C2H_0FH, 0xC2, 0x0F, IAP_F_FM | IAP_F_CC2),
- IAPDESCR(C2H_10H, 0xC2, 0x10, IAP_F_FM | IAP_F_CA | IAP_F_CAS),
-
- IAPDESCR(C3H_00H, 0xC3, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(C3H_01H, 0xC3, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_CAS | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(C3H_02H, 0xC3, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW |
- IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C3H_04H, 0xC3, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C3H_08H, 0xC3, 0x08, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C3H_10H, 0xC3, 0x10, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(C3H_20H, 0xC3, 0x20, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(C4H_00H, 0xC4, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C4H_01H, 0xC4, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(C4H_02H, 0xC4, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(C4H_04H, 0xC4, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(C4H_08H, 0xC4, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW |
- IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C4H_0CH, 0xC4, 0x0C, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(C4H_0FH, 0xC4, 0x0F, IAP_F_FM | IAP_F_CA),
- IAPDESCR(C4H_10H, 0xC4, 0x10, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C4H_20H, 0xC4, 0x20, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C4H_40H, 0xC4, 0x40, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C4H_7EH, 0xC4, 0x7E, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C4H_BFH, 0xC4, 0xBF, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C4H_EBH, 0xC4, 0xEB, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C4H_F7H, 0xC4, 0xF7, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C4H_F9H, 0xC4, 0xF9, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C4H_FBH, 0xC4, 0xFB, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C4H_FDH, 0xC4, 0xFD, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C4H_FEH, 0xC4, 0xFE, IAP_F_FM | IAP_F_CAS),
-
- IAPDESCR(C5H_00H, 0xC5, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_CAS | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C5H_01H, 0xC5, 0x01, IAP_F_FM | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C5H_02H, 0xC5, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C5H_04H, 0xC5, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL),
- IAPDESCR(C5H_10H, 0xC5, 0x10, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(C5H_20H, 0xC5, 0x20, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C5H_7EH, 0xC5, 0x7E, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C5H_BFH, 0xC5, 0xBF, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C5H_EBH, 0xC5, 0xEB, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C5H_F7H, 0xC5, 0xF7, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C5H_F9H, 0xC5, 0xF9, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C5H_FBH, 0xC5, 0xFB, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C5H_FDH, 0xC5, 0xFD, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(C5H_FEH, 0xC5, 0xFE, IAP_F_FM | IAP_F_CAS),
-
- IAPDESCR(C6H_00H, 0xC6, 0x00, IAP_F_FM | IAP_F_CC),
- /* For SL C6_01 needs EV_SEL? 0x11, 0x12, 0x13, 0x14, 0x15? */
- IAPDESCR(C6H_01H, 0xC6, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(C6H_02H, 0xC6, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(C7H_00H, 0xC7, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(C7H_01H, 0xC7, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C7H_02H, 0xC7, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C7H_04H, 0xC7, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C7H_08H, 0xC7, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C7H_10H, 0xC7, 0x10, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C7H_1FH, 0xC7, 0x1F, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(C7H_20H, 0xC7, 0x20, IAP_F_FM | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(C7H_40H, 0xc7, 0x40, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C7H_80H, 0xc7, 0x80, IAP_F_FM | IAP_F_SLX),
-
- IAPDESCR(C8H_00H, 0xC8, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(C8H_01H, 0xC8, 0x01, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C8H_02H, 0xC8, 0x02, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C8H_04H, 0xC8, 0x04, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C8H_08H, 0xC8, 0x08, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C8H_10H, 0xC8, 0x10, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C8H_20H, 0xC8, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_SLX),
- IAPDESCR(C8H_40H, 0xC8, 0x40, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C8H_80H, 0xC8, 0x80, IAP_F_FM | IAP_F_SLX),
-
- IAPDESCR(C9H_00H, 0xC9, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(C9H_01H, 0xC9, 0x01, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C9H_02H, 0xC9, 0x02, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C9H_04H, 0xC9, 0x04, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C9H_08H, 0xC9, 0x08, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C9H_10H, 0xC9, 0x10, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C9H_20H, 0xC9, 0x20, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C9H_40H, 0xC9, 0x40, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(C9H_80H, 0xC9, 0x80, IAP_F_FM | IAP_F_SLX),
-
- IAPDESCR(CAH_00H, 0xCA, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(CAH_01H, 0xCA, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_CAS),
- IAPDESCR(CAH_02H, 0xCA, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(CAH_04H, 0xCA, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(CAH_08H, 0xCA, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(CAH_10H, 0xCA, 0x10, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(CAH_1EH, 0xCA, 0x1E, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
- IAPDESCR(CAH_20H, 0xCA, 0x20, IAP_F_FM | IAP_F_CAS | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(CAH_3FH, 0xCA, 0x3F, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(CAH_50H, 0xCA, 0x50, IAP_F_FM | IAP_F_CAS),
-
- IAPDESCR(CBH_01H, 0xCB, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_CAS | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(CBH_02H, 0xCB, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(CBH_04H, 0xCB, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(CBH_08H, 0xCB, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(CBH_10H, 0xCB, 0x10, IAP_F_FM | IAP_F_CC2 | IAP_F_I7 |
- IAP_F_WM),
- IAPDESCR(CBH_1FH, 0xCB, 0x1F, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(CBH_40H, 0xCB, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(CBH_80H, 0xCB, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(CCH_00H, 0xCC, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(CCH_01H, 0xCC, 0x01, IAP_F_FM | IAP_F_ALLCPUSCORE2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(CCH_02H, 0xCC, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(CCH_03H, 0xCC, 0x03, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(CCH_20H, 0xCC, 0x20, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SLX),
-
- IAPDESCR(CDH_00H, 0xCD, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(CDH_01H, 0xCD, 0x01, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_CAS | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(CDH_02H, 0xCD, 0x02, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX),
-
- IAPDESCR(CEH_00H, 0xCE, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(CFH_00H, 0xCF, 0x00, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- /* Sandy Bridge / Sandy Bridge Xeon - 11, 12, 21, 41, 42, 81, 82 */
- IAPDESCR(D0H_00H, 0xD0, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(D0H_01H, 0xD0, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(D0H_11H, 0xD0, 0x11, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D0H_12H, 0xD0, 0x12, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D0H_21H, 0xD0, 0x21, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(D0H_41H, 0xD0, 0x41, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D0H_42H, 0xD0, 0x42, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D0H_81H, 0xD0, 0x81, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D0H_82H, 0xD0, 0x82, IAP_F_FM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
-
- IAPDESCR(D1H_01H, 0xD1, 0x01, IAP_F_FM | IAP_F_WM | IAP_F_SB |
- IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(D1H_02H, 0xD1, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(D1H_04H, 0xD1, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(D1H_08H, 0xD1, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D1H_10H, 0xD1, 0x10, IAP_F_HW | IAP_F_IB | IAP_F_IBX | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(D1H_20H, 0xD1, 0x20, IAP_F_FM | IAP_F_SBX | IAP_F_IBX | IAP_F_IB |
- IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(D1H_40H, 0xD1, 0x40, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX |
- IAP_F_SL | IAP_F_SLX),
-
- IAPDESCR(D2H_01H, 0xD2, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D2H_02H, 0xD2, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D2H_04H, 0xD2, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D2H_08H, 0xD2, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SL |
- IAP_F_SLX),
- IAPDESCR(D2H_0FH, 0xD2, 0x0F, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM | IAP_F_SB | IAP_F_SBX | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
-
- IAPDESCR(D2H_10H, 0xD2, 0x10, IAP_F_FM | IAP_F_CC2E),
-
- IAPDESCR(D3H_01H, 0xD3, 0x01, IAP_F_FM | IAP_F_IB | IAP_F_SBX |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX | IAP_F_SLX),
- IAPDESCR(D3H_02H, 0xD3, 0x02, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(D3H_03H, 0xD3, 0x03, IAP_F_FM | IAP_F_IBX),
- IAPDESCR(D3H_04H, 0xD3, 0x04, IAP_F_FM | IAP_F_SBX | IAP_F_IBX | IAP_F_SLX), /* Not defined for IBX */
- IAPDESCR(D3H_08H, 0xD3, 0x08, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(D3H_0CH, 0xD3, 0x0C, IAP_F_FM | IAP_F_IBX),
- IAPDESCR(D3H_10H, 0xD3, 0x10, IAP_F_FM | IAP_F_IBX ),
- IAPDESCR(D3H_20H, 0xD3, 0x20, IAP_F_FM | IAP_F_IBX ),
-
- IAPDESCR(D4H_01H, 0xD4, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(D4H_02H, 0xD4, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_SB | IAP_F_SBX),
- IAPDESCR(D4H_04H, 0xD4, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2 | IAP_F_SLX),
- IAPDESCR(D4H_08H, 0xD4, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(D4H_0FH, 0xD4, 0x0F, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(D5H_01H, 0xD5, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2 |
- IAP_F_I7 | IAP_F_WM),
- IAPDESCR(D5H_02H, 0xD5, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(D5H_04H, 0xD5, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(D5H_08H, 0xD5, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(D5H_0FH, 0xD5, 0x0F, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(D7H_00H, 0xD7, 0x00, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(D8H_00H, 0xD8, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(D8H_01H, 0xD8, 0x01, IAP_F_FM | IAP_F_CC),
- IAPDESCR(D8H_02H, 0xD8, 0x02, IAP_F_FM | IAP_F_CC),
- IAPDESCR(D8H_03H, 0xD8, 0x03, IAP_F_FM | IAP_F_CC),
- IAPDESCR(D8H_04H, 0xD8, 0x04, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(D9H_00H, 0xD9, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(D9H_01H, 0xD9, 0x01, IAP_F_FM | IAP_F_CC),
- IAPDESCR(D9H_02H, 0xD9, 0x02, IAP_F_FM | IAP_F_CC),
- IAPDESCR(D9H_03H, 0xD9, 0x03, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(DAH_00H, 0xDA, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(DAH_01H, 0xDA, 0x01, IAP_F_FM | IAP_F_CC),
- IAPDESCR(DAH_02H, 0xDA, 0x02, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(DBH_00H, 0xDB, 0x00, IAP_F_FM | IAP_F_CC),
- IAPDESCR(DBH_01H, 0xDB, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(DCH_01H, 0xDC, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(DCH_02H, 0xDC, 0x02, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(DCH_04H, 0xDC, 0x04, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(DCH_08H, 0xDC, 0x08, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(DCH_10H, 0xDC, 0x10, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
- IAPDESCR(DCH_1FH, 0xDC, 0x1F, IAP_F_FM | IAP_F_CA | IAP_F_CC2),
-
- IAPDESCR(E0H_00H, 0xE0, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2),
- IAPDESCR(E0H_01H, 0xE0, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_I7 |
- IAP_F_WM),
-
- IAPDESCR(E2H_00H, 0xE2, 0x00, IAP_F_FM | IAP_F_CC),
-
- IAPDESCR(E4H_00H, 0xE4, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(E4H_01H, 0xE4, 0x01, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(E5H_01H, 0xE5, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(E6H_00H, 0xE6, 0x00, IAP_F_FM | IAP_F_CC | IAP_F_CC2),
- IAPDESCR(E6H_01H, 0xE6, 0x01, IAP_F_FM | IAP_F_CA | IAP_F_I7 |
- IAP_F_WM | IAP_F_SBX | IAP_F_CAS | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(E6H_02H, 0xE6, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(E6H_08H, 0xE6, 0x08, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(E6H_10H, 0xE6, 0x10, IAP_F_FM | IAP_F_CAS),
- IAPDESCR(E6H_1FH, 0xE6, 0x1F, IAP_F_FM | IAP_F_IB |
- IAP_F_IBX | IAP_F_HW | IAP_F_HWX),
-
- IAPDESCR(E7H_01H, 0xE7, 0x01, IAP_F_FM | IAP_F_CAS),
-
- IAPDESCR(E8H_01H, 0xE8, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(E8H_02H, 0xE8, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
- IAPDESCR(E8H_03H, 0xE8, 0x03, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(ECH_01H, 0xEC, 0x01, IAP_F_FM | IAP_F_WM),
-
- IAPDESCR(F0H_00H, 0xF0, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(F0H_01H, 0xF0, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(F0H_02H, 0xF0, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(F0H_04H, 0xF0, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(F0H_08H, 0xF0, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(F0H_10H, 0xF0, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(F0H_20H, 0xF0, 0x20, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(F0H_40H, 0xF0, 0x40, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL | IAP_F_SLX),
- IAPDESCR(F0H_80H, 0xF0, 0x80, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
-
- IAPDESCR(F1H_01H, 0xF1, 0x01, IAP_F_FM | IAP_F_SB | IAP_F_IB |
- IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX | IAP_F_BW | IAP_F_BWX),
- IAPDESCR(F1H_02H, 0xF1, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX),
- IAPDESCR(F1H_04H, 0xF1, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX ),
- IAPDESCR(F1H_07H, 0xF1, 0x07, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_HW | IAP_F_HWX |
- IAP_F_BW | IAP_F_BWX | IAP_F_SL),
- IAPDESCR(F1H_1FH, 0xF1, 0x1f, IAP_F_FM | IAP_F_SLX),
-
- IAPDESCR(F2H_01H, 0xF2, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_SLX),
- IAPDESCR(F2H_02H, 0xF2, 0x02, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_SLX),
- IAPDESCR(F2H_04H, 0xF2, 0x04, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX | IAP_F_SLX),
- IAPDESCR(F2H_05H, 0xF2, 0x05, IAP_F_FM | IAP_F_HW | IAP_F_HWX | IAP_F_BW |
- IAP_F_BWX),
- IAPDESCR(F2H_06H, 0xF2, 0x06, IAP_F_FM | IAP_F_HW | IAP_F_HWX),
- IAPDESCR(F2H_08H, 0xF2, 0x08, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_IB | IAP_F_SBX | IAP_F_IBX),
- IAPDESCR(F2H_0AH, 0xF2, 0x0A, IAP_F_FM | IAP_F_SB | IAP_F_SBX |
- IAP_F_IBX),
- IAPDESCR(F2H_0FH, 0xF2, 0x0F, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(F3H_01H, 0xF3, 0x01, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(F3H_02H, 0xF3, 0x02, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(F3H_04H, 0xF3, 0x04, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(F3H_08H, 0xF3, 0x08, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(F3H_10H, 0xF3, 0x10, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(F3H_20H, 0xF3, 0x20, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(F4H_01H, 0xF4, 0x01, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(F4H_02H, 0xF4, 0x02, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(F4H_04H, 0xF4, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_I7O),
- IAPDESCR(F4H_08H, 0xF4, 0x08, IAP_F_FM | IAP_F_I7O),
- IAPDESCR(F4H_10H, 0xF4, 0x10, IAP_F_FM | IAP_F_I7 | IAP_F_WM |
- IAP_F_SB | IAP_F_SBX | IAP_F_SLX),
-
- IAPDESCR(F6H_01H, 0xF6, 0x01, IAP_F_FM | IAP_F_I7 | IAP_F_WM),
-
- IAPDESCR(F7H_01H, 0xF7, 0x01, IAP_F_FM | IAP_F_WM | IAP_F_I7),
- IAPDESCR(F7H_02H, 0xF7, 0x02, IAP_F_FM | IAP_F_WM | IAP_F_I7),
- IAPDESCR(F7H_04H, 0xF7, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_I7),
-
- IAPDESCR(F8H_00H, 0xF8, 0x00, IAP_F_FM | IAP_F_ALLCPUSCORE2),
- IAPDESCR(F8H_01H, 0xF8, 0x01, IAP_F_FM | IAP_F_I7O),
-
- IAPDESCR(FDH_01H, 0xFD, 0x01, IAP_F_FM | IAP_F_WM | IAP_F_I7),
- IAPDESCR(FDH_02H, 0xFD, 0x02, IAP_F_FM | IAP_F_WM | IAP_F_I7),
- IAPDESCR(FDH_04H, 0xFD, 0x04, IAP_F_FM | IAP_F_WM | IAP_F_I7),
- IAPDESCR(FDH_08H, 0xFD, 0x08, IAP_F_FM | IAP_F_WM | IAP_F_I7),
- IAPDESCR(FDH_10H, 0xFD, 0x10, IAP_F_FM | IAP_F_WM | IAP_F_I7),
- IAPDESCR(FDH_20H, 0xFD, 0x20, IAP_F_FM | IAP_F_WM | IAP_F_I7),
- IAPDESCR(FDH_40H, 0xFD, 0x40, IAP_F_FM | IAP_F_WM | IAP_F_I7),
-
- IAPDESCR(FEH_02H, 0xfe, 0x02, IAP_F_FM | IAP_F_SLX),
- IAPDESCR(FEH_04H, 0xfe, 0x04, IAP_F_FM | IAP_F_SLX),
-};
-
static pmc_value_t
iap_perfctr_value_to_reload_count(pmc_value_t v)
{
@@ -2039,91 +600,25 @@ iap_pmc_has_overflowed(int ri)
return ((v & (1ULL << (core_iap_width - 1))) == 0);
}
-/*
- * Check an event against the set of supported architectural events.
- *
- * If the event is not architectural EV_IS_NOTARCH is returned.
- * If the event is architectural and supported on this CPU, the correct
- * event+umask mapping is returned in map, and EV_IS_ARCH_SUPP is returned.
- * Otherwise, the function returns EV_IS_ARCH_NOTSUPP.
- */
-
static int
-iap_is_event_architectural(enum pmc_event pe, enum pmc_event *map)
-{
- enum core_arch_events ae;
-
- switch (pe) {
- case PMC_EV_IAP_ARCH_UNH_COR_CYC:
- ae = CORE_AE_UNHALTED_CORE_CYCLES;
- *map = PMC_EV_IAP_EVENT_3CH_00H;
- break;
- case PMC_EV_IAP_ARCH_INS_RET:
- ae = CORE_AE_INSTRUCTION_RETIRED;
- *map = PMC_EV_IAP_EVENT_C0H_00H;
- break;
- case PMC_EV_IAP_ARCH_UNH_REF_CYC:
- ae = CORE_AE_UNHALTED_REFERENCE_CYCLES;
- *map = PMC_EV_IAP_EVENT_3CH_01H;
- break;
- case PMC_EV_IAP_ARCH_LLC_REF:
- ae = CORE_AE_LLC_REFERENCE;
- *map = PMC_EV_IAP_EVENT_2EH_4FH;
- break;
- case PMC_EV_IAP_ARCH_LLC_MIS:
- ae = CORE_AE_LLC_MISSES;
- *map = PMC_EV_IAP_EVENT_2EH_41H;
- break;
- case PMC_EV_IAP_ARCH_BR_INS_RET:
- ae = CORE_AE_BRANCH_INSTRUCTION_RETIRED;
- *map = PMC_EV_IAP_EVENT_C4H_00H;
- break;
- case PMC_EV_IAP_ARCH_BR_MIS_RET:
- ae = CORE_AE_BRANCH_MISSES_RETIRED;
- *map = PMC_EV_IAP_EVENT_C5H_00H;
- break;
-
- default: /* Non architectural event. */
- return (EV_IS_NOTARCH);
- }
-
- return (((core_architectural_events & (1 << ae)) == 0) ?
- EV_IS_ARCH_NOTSUPP : EV_IS_ARCH_SUPP);
-}
-
-static int
-iap_event_corei7_ok_on_counter(enum pmc_event pe, int ri)
+iap_event_corei7_ok_on_counter(uint8_t evsel, int ri)
{
uint32_t mask;
- switch (pe) {
+ switch (evsel) {
/*
* Events valid only on counter 0, 1.
*/
- case PMC_EV_IAP_EVENT_40H_01H:
- case PMC_EV_IAP_EVENT_40H_02H:
- case PMC_EV_IAP_EVENT_40H_04H:
- case PMC_EV_IAP_EVENT_40H_08H:
- case PMC_EV_IAP_EVENT_40H_0FH:
- case PMC_EV_IAP_EVENT_41H_02H:
- case PMC_EV_IAP_EVENT_41H_04H:
- case PMC_EV_IAP_EVENT_41H_08H:
- case PMC_EV_IAP_EVENT_42H_01H:
- case PMC_EV_IAP_EVENT_42H_02H:
- case PMC_EV_IAP_EVENT_42H_04H:
- case PMC_EV_IAP_EVENT_42H_08H:
- case PMC_EV_IAP_EVENT_43H_01H:
- case PMC_EV_IAP_EVENT_43H_02H:
- case PMC_EV_IAP_EVENT_51H_01H:
- case PMC_EV_IAP_EVENT_51H_02H:
- case PMC_EV_IAP_EVENT_51H_04H:
- case PMC_EV_IAP_EVENT_51H_08H:
- case PMC_EV_IAP_EVENT_63H_01H:
- case PMC_EV_IAP_EVENT_63H_02H:
- mask = 0x3;
+ case 0x40:
+ case 0x41:
+ case 0x42:
+ case 0x43:
+ case 0x51:
+ case 0x63:
+ mask = 0x3;
break;
- default:
+ default:
mask = ~0; /* Any row index is ok. */
}
@@ -2131,37 +626,26 @@ iap_event_corei7_ok_on_counter(enum pmc_event pe, int ri)
}
static int
-iap_event_westmere_ok_on_counter(enum pmc_event pe, int ri)
+iap_event_westmere_ok_on_counter(uint8_t evsel, int ri)
{
uint32_t mask;
- switch (pe) {
+ switch (evsel) {
/*
* Events valid only on counter 0.
*/
- case PMC_EV_IAP_EVENT_60H_01H:
- case PMC_EV_IAP_EVENT_60H_02H:
- case PMC_EV_IAP_EVENT_60H_04H:
- case PMC_EV_IAP_EVENT_60H_08H:
- case PMC_EV_IAP_EVENT_B3H_01H:
- case PMC_EV_IAP_EVENT_B3H_02H:
- case PMC_EV_IAP_EVENT_B3H_04H:
+ case 0x60:
+ case 0xB3:
mask = 0x1;
break;
/*
* Events valid only on counter 0, 1.
*/
- case PMC_EV_IAP_EVENT_4CH_01H:
- case PMC_EV_IAP_EVENT_4EH_01H:
- case PMC_EV_IAP_EVENT_4EH_02H:
- case PMC_EV_IAP_EVENT_4EH_04H:
- case PMC_EV_IAP_EVENT_51H_01H:
- case PMC_EV_IAP_EVENT_51H_02H:
- case PMC_EV_IAP_EVENT_51H_04H:
- case PMC_EV_IAP_EVENT_51H_08H:
- case PMC_EV_IAP_EVENT_63H_01H:
- case PMC_EV_IAP_EVENT_63H_02H:
+ case 0x4C:
+ case 0x4E:
+ case 0x51:
+ case 0x63:
mask = 0x3;
break;
@@ -2173,29 +657,28 @@ iap_event_westmere_ok_on_counter(enum pmc_event pe, int ri)
}
static int
-iap_event_sb_sbx_ib_ibx_ok_on_counter(enum pmc_event pe, int ri)
+iap_event_sb_sbx_ib_ibx_ok_on_counter(uint8_t evsel, int ri)
{
uint32_t mask;
- switch (pe) {
+ switch (evsel) {
/* Events valid only on counter 0. */
- case PMC_EV_IAP_EVENT_B7H_01H:
+ case 0xB7:
mask = 0x1;
break;
/* Events valid only on counter 1. */
- case PMC_EV_IAP_EVENT_C0H_01H:
+ case 0xC0:
mask = 0x2;
break;
/* Events valid only on counter 2. */
- case PMC_EV_IAP_EVENT_48H_01H:
- case PMC_EV_IAP_EVENT_A2H_02H:
- case PMC_EV_IAP_EVENT_A3H_08H:
+ case 0x48:
+ case 0xA2:
+ case 0xA3:
mask = 0x4;
break;
/* Events valid only on counter 3. */
- case PMC_EV_IAP_EVENT_BBH_01H:
- case PMC_EV_IAP_EVENT_CDH_01H:
- case PMC_EV_IAP_EVENT_CDH_02H:
+ case 0xBB:
+ case 0xCD:
mask = 0x8;
break;
default:
@@ -2206,32 +689,29 @@ iap_event_sb_sbx_ib_ibx_ok_on_counter(enum pmc_event pe, int ri)
}
static int
-iap_event_ok_on_counter(enum pmc_event pe, int ri)
+iap_event_ok_on_counter(uint8_t evsel, int ri)
{
uint32_t mask;
- switch (pe) {
+ switch (evsel) {
/*
* Events valid only on counter 0.
*/
- case PMC_EV_IAP_EVENT_10H_00H:
- case PMC_EV_IAP_EVENT_14H_00H:
- case PMC_EV_IAP_EVENT_18H_00H:
- case PMC_EV_IAP_EVENT_B3H_01H:
- case PMC_EV_IAP_EVENT_B3H_02H:
- case PMC_EV_IAP_EVENT_B3H_04H:
- case PMC_EV_IAP_EVENT_C1H_00H:
- case PMC_EV_IAP_EVENT_CBH_01H:
- case PMC_EV_IAP_EVENT_CBH_02H:
+ case 0x10:
+ case 0x14:
+ case 0x18:
+ case 0xB3:
+ case 0xC1:
+ case 0xCB:
mask = (1 << 0);
break;
/*
* Events valid only on counter 1.
*/
- case PMC_EV_IAP_EVENT_11H_00H:
- case PMC_EV_IAP_EVENT_12H_00H:
- case PMC_EV_IAP_EVENT_13H_00H:
+ case 0x11:
+ case 0x12:
+ case 0x13:
mask = (1 << 1);
break;
@@ -2246,10 +726,10 @@ static int
iap_allocate_pmc(int cpu, int ri, struct pmc *pm,
const struct pmc_op_pmcallocate *a)
{
- int arch, n, model;
- enum pmc_event ev, map;
- struct iap_event_descr *ie;
- uint32_t c, caps, config, cpuflag, evsel, mask;
+ enum pmc_event map;
+ uint8_t ev;
+ uint32_t caps;
+ const struct pmc_md_iap_op_pmcallocate *iap;
KASSERT(cpu >= 0 && cpu < pmc_cpu_max(),
("[core,%d] illegal CPU %d", __LINE__, cpu));
@@ -2261,23 +741,8 @@ iap_allocate_pmc(int cpu, int ri, struct pmc *pm,
if ((IAP_PMC_CAPS & caps) != caps)
return (EPERM);
map = 0; /* XXX: silent GCC warning */
- arch = iap_is_event_architectural(pm->pm_event, &map);
- if (arch == EV_IS_ARCH_NOTSUPP)
- return (EOPNOTSUPP);
- else if (arch == EV_IS_ARCH_SUPP)
- ev = map;
- else
- ev = pm->pm_event;
-
- /*
- * A small number of events are not supported in all the
- * processors based on a given microarchitecture.
- */
- if (ev == PMC_EV_IAP_EVENT_0FH_01H || ev == PMC_EV_IAP_EVENT_0FH_80H) {
- model = ((cpu_id & 0xF0000) >> 12) | ((cpu_id & 0xF0) >> 4);
- if (core_cputype == PMC_CPU_INTEL_COREI7 && model != 0x2E)
- return (EINVAL);
- }
+ iap = &a->pm_md.pm_iap;
+ ev = IAP_EVSEL_GET(iap->pm_iap_config);
switch (core_cputype) {
case PMC_CPU_INTEL_COREI7:
@@ -2308,197 +773,7 @@ iap_allocate_pmc(int cpu, int ri, struct pmc *pm,
return (EINVAL);
}
- /*
- * Look for an event descriptor with matching CPU and event id
- * fields.
- */
-
- switch (core_cputype) {
- default:
- case PMC_CPU_INTEL_ATOM:
- cpuflag = IAP_F_CA;
- break;
- case PMC_CPU_INTEL_ATOM_SILVERMONT:
- cpuflag = IAP_F_CAS;
- break;
- case PMC_CPU_INTEL_SKYLAKE_XEON:
- cpuflag = IAP_F_SLX;
- break;
- case PMC_CPU_INTEL_SKYLAKE:
- cpuflag = IAP_F_SL;
- break;
- case PMC_CPU_INTEL_BROADWELL_XEON:
- cpuflag = IAP_F_BWX;
- break;
- case PMC_CPU_INTEL_BROADWELL:
- cpuflag = IAP_F_BW;
- break;
- case PMC_CPU_INTEL_CORE:
- cpuflag = IAP_F_CC;
- break;
- case PMC_CPU_INTEL_CORE2:
- cpuflag = IAP_F_CC2;
- break;
- case PMC_CPU_INTEL_CORE2EXTREME:
- cpuflag = IAP_F_CC2 | IAP_F_CC2E;
- break;
- case PMC_CPU_INTEL_COREI7:
- cpuflag = IAP_F_I7;
- break;
- case PMC_CPU_INTEL_HASWELL:
- cpuflag = IAP_F_HW;
- break;
- case PMC_CPU_INTEL_HASWELL_XEON:
- cpuflag = IAP_F_HWX;
- break;
- case PMC_CPU_INTEL_IVYBRIDGE:
- cpuflag = IAP_F_IB;
- break;
- case PMC_CPU_INTEL_IVYBRIDGE_XEON:
- cpuflag = IAP_F_IBX;
- break;
- case PMC_CPU_INTEL_SANDYBRIDGE:
- cpuflag = IAP_F_SB;
- break;
- case PMC_CPU_INTEL_SANDYBRIDGE_XEON:
- cpuflag = IAP_F_SBX;
- break;
- case PMC_CPU_INTEL_WESTMERE:
- cpuflag = IAP_F_WM;
- break;
- }
-
- for (n = 0, ie = iap_events; n < nitems(iap_events); n++, ie++)
- if (ie->iap_ev == ev && ie->iap_flags & cpuflag)
- break;
-
- if (n == nitems(iap_events))
- return (EINVAL);
-
- /*
- * A matching event descriptor has been found, so start
- * assembling the contents of the event select register.
- */
- evsel = ie->iap_evcode;
-
- config = a->pm_md.pm_iap.pm_iap_config & ~IAP_F_CMASK;
-
- /*
- * If the event uses a fixed umask value, reject any umask
- * bits set by the user.
- */
- if (ie->iap_flags & IAP_F_FM) {
-
- if (IAP_UMASK(config) != 0)
- return (EINVAL);
-
- evsel |= (ie->iap_umask << 8);
-
- } else {
-
- /*
- * Otherwise, the UMASK value needs to be taken from
- * the MD fields of the allocation request. Reject
- * requests that specify reserved bits.
- */
-
- mask = 0;
-
- if (ie->iap_umask & IAP_M_CORE) {
- if ((c = (config & IAP_F_CORE)) != IAP_CORE_ALL &&
- c != IAP_CORE_THIS)
- return (EINVAL);
- mask |= IAP_F_CORE;
- }
-
- if (ie->iap_umask & IAP_M_AGENT)
- mask |= IAP_F_AGENT;
-
- if (ie->iap_umask & IAP_M_PREFETCH) {
-
- if ((c = (config & IAP_F_PREFETCH)) ==
- IAP_PREFETCH_RESERVED)
- return (EINVAL);
-
- mask |= IAP_F_PREFETCH;
- }
-
- if (ie->iap_umask & IAP_M_MESI)
- mask |= IAP_F_MESI;
-
- if (ie->iap_umask & IAP_M_SNOOPRESPONSE)
- mask |= IAP_F_SNOOPRESPONSE;
-
- if (ie->iap_umask & IAP_M_SNOOPTYPE)
- mask |= IAP_F_SNOOPTYPE;
-
- if (ie->iap_umask & IAP_M_TRANSITION)
- mask |= IAP_F_TRANSITION;
-
- /*
- * If bits outside of the allowed set of umask bits
- * are set, reject the request.
- */
- if (config & ~mask)
- return (EINVAL);
-
- evsel |= (config & mask);
-
- }
-
- /*
- * Only Atom and SandyBridge CPUs support the 'ANY' qualifier.
- */
- if (core_cputype == PMC_CPU_INTEL_ATOM ||
- core_cputype == PMC_CPU_INTEL_ATOM_SILVERMONT ||
- core_cputype == PMC_CPU_INTEL_SANDYBRIDGE ||
- core_cputype == PMC_CPU_INTEL_SANDYBRIDGE_XEON)
- evsel |= (config & IAP_ANY);
- else if (config & IAP_ANY)
- return (EINVAL);
-
- /*
- * Check offcore response configuration.
- */
- if (a->pm_md.pm_iap.pm_iap_rsp != 0) {
- if (ev != PMC_EV_IAP_EVENT_B7H_01H &&
- ev != PMC_EV_IAP_EVENT_BBH_01H)
- return (EINVAL);
- if (core_cputype == PMC_CPU_INTEL_COREI7 &&
- ev == PMC_EV_IAP_EVENT_BBH_01H)
- return (EINVAL);
- if ((core_cputype == PMC_CPU_INTEL_COREI7 ||
- core_cputype == PMC_CPU_INTEL_WESTMERE ||
- core_cputype == PMC_CPU_INTEL_NEHALEM_EX ||
- core_cputype == PMC_CPU_INTEL_WESTMERE_EX) &&
- a->pm_md.pm_iap.pm_iap_rsp & ~IA_OFFCORE_RSP_MASK_I7WM)
- return (EINVAL);
- else if ((core_cputype == PMC_CPU_INTEL_SANDYBRIDGE ||
- core_cputype == PMC_CPU_INTEL_SANDYBRIDGE_XEON ||
- core_cputype == PMC_CPU_INTEL_IVYBRIDGE ||
- core_cputype == PMC_CPU_INTEL_IVYBRIDGE_XEON) &&
- a->pm_md.pm_iap.pm_iap_rsp & ~IA_OFFCORE_RSP_MASK_SBIB)
- return (EINVAL);
- pm->pm_md.pm_iap.pm_iap_rsp = a->pm_md.pm_iap.pm_iap_rsp;
- }
-
- if (caps & PMC_CAP_THRESHOLD)
- evsel |= (a->pm_md.pm_iap.pm_iap_config & IAP_F_CMASK);
- if (caps & PMC_CAP_USER)
- evsel |= IAP_USR;
- if (caps & PMC_CAP_SYSTEM)
- evsel |= IAP_OS;
- if ((caps & (PMC_CAP_USER | PMC_CAP_SYSTEM)) == 0)
- evsel |= (IAP_OS | IAP_USR);
- if (caps & PMC_CAP_EDGE)
- evsel |= IAP_EDGE;
- if (caps & PMC_CAP_INVERT)
- evsel |= IAP_INV;
- if (caps & PMC_CAP_INTERRUPT)
- evsel |= IAP_INT;
-
- pm->pm_md.pm_iap.pm_iap_evsel = evsel;
-
+ pm->pm_md.pm_iap.pm_iap_evsel = iap->pm_iap_config;
return (0);
}
@@ -2642,11 +917,12 @@ iap_start_pmc(int cpu, int ri)
cpu, ri, IAP_EVSEL0 + ri, evsel);
/* Event specific configuration. */
- switch (pm->pm_event) {
- case PMC_EV_IAP_EVENT_B7H_01H:
+
+ switch (IAP_EVSEL_GET(evsel)) {
+ case 0xB7:
wrmsr(IA_OFFCORE_RSP0, pm->pm_md.pm_iap.pm_iap_rsp);
break;
- case PMC_EV_IAP_EVENT_BBH_01H:
+ case 0xBB:
wrmsr(IA_OFFCORE_RSP1, pm->pm_md.pm_iap.pm_iap_rsp);
break;
default:
diff --git a/sys/dev/hwpmc/hwpmc_core.h b/sys/dev/hwpmc/hwpmc_core.h
index d264318f8c25..9045318d6363 100644
--- a/sys/dev/hwpmc/hwpmc_core.h
+++ b/sys/dev/hwpmc/hwpmc_core.h
@@ -60,7 +60,7 @@ struct pmc_md_iap_op_pmcallocate {
};
#define IAP_EVSEL(C) ((C) & 0xFF)
-#define IAP_UMASK(C) ((C) & 0xFF00)
+#define IAP_UMASK(C) (((C) & 0xFF) << 8)
#define IAP_USR (1 << 16)
#define IAP_OS (1 << 17)
#define IAP_EDGE (1 << 18)
@@ -70,6 +70,9 @@ struct pmc_md_iap_op_pmcallocate {
#define IAP_INV (1 << 23)
#define IAP_CMASK(C) (((C) & 0xFF) << 24)
+#define IAP_EVSEL_GET(C) ((C) & 0xFF)
+#define IAP_UMASK_GET(C) (((C) & 0xFF00) >> 8)
+
#define IA_OFFCORE_RSP_MASK_I7WM 0x000000F7FF
#define IA_OFFCORE_RSP_MASK_SBIB 0x3F807F8FFF
diff --git a/sys/dev/hwpmc/hwpmc_logging.c b/sys/dev/hwpmc/hwpmc_logging.c
index 385ba8577a3a..3967e7a3e48c 100644
--- a/sys/dev/hwpmc/hwpmc_logging.c
+++ b/sys/dev/hwpmc/hwpmc_logging.c
@@ -183,25 +183,24 @@ static struct mtx pmc_kthread_mtx; /* sleep lock */
CTASSERT(sizeof(struct pmclog_callchain) == 8*4 +
PMC_CALLCHAIN_DEPTH_MAX*sizeof(uintfptr_t));
-CTASSERT(sizeof(struct pmclog_closelog) == 3*4);
-CTASSERT(sizeof(struct pmclog_dropnotify) == 3*4);
+CTASSERT(sizeof(struct pmclog_closelog) == 4*4);
+CTASSERT(sizeof(struct pmclog_dropnotify) == 4*4);
CTASSERT(sizeof(struct pmclog_map_in) == PATH_MAX +
4*4 + sizeof(uintfptr_t));
CTASSERT(offsetof(struct pmclog_map_in,pl_pathname) ==
4*4 + sizeof(uintfptr_t));
CTASSERT(sizeof(struct pmclog_map_out) == 4*4 + 2*sizeof(uintfptr_t));
-CTASSERT(sizeof(struct pmclog_pcsample) == 8*4 + sizeof(uintfptr_t));
CTASSERT(sizeof(struct pmclog_pmcallocate) == 6*4);
-CTASSERT(sizeof(struct pmclog_pmcattach) == 5*4 + PATH_MAX);
-CTASSERT(offsetof(struct pmclog_pmcattach,pl_pathname) == 5*4);
-CTASSERT(sizeof(struct pmclog_pmcdetach) == 5*4);
+CTASSERT(sizeof(struct pmclog_pmcattach) == 6*4 + PATH_MAX);
+CTASSERT(offsetof(struct pmclog_pmcattach,pl_pathname) == 6*4);
+CTASSERT(sizeof(struct pmclog_pmcdetach) == 6*4);
CTASSERT(sizeof(struct pmclog_proccsw) == 6*4 + 8);
-CTASSERT(sizeof(struct pmclog_procexec) == 5*4 + PATH_MAX +
+CTASSERT(sizeof(struct pmclog_procexec) == 6*4 + PATH_MAX +
sizeof(uintfptr_t));
-CTASSERT(offsetof(struct pmclog_procexec,pl_pathname) == 5*4 +
+CTASSERT(offsetof(struct pmclog_procexec,pl_pathname) == 6*4 +
sizeof(uintfptr_t));
-CTASSERT(sizeof(struct pmclog_procexit) == 5*4 + 8);
-CTASSERT(sizeof(struct pmclog_procfork) == 5*4);
+CTASSERT(sizeof(struct pmclog_procexit) == 6*4 + 8);
+CTASSERT(sizeof(struct pmclog_procfork) == 6*4);
CTASSERT(sizeof(struct pmclog_sysexit) == 4*4);
CTASSERT(sizeof(struct pmclog_userdata) == 4*4);
@@ -1012,6 +1011,7 @@ pmclog_process_pmcattach(struct pmc *pm, pid_t pid, char *path)
PMCLOG_RESERVE(po, PMCATTACH, recordlen);
PMCLOG_EMIT32(pm->pm_id);
PMCLOG_EMIT32(pid);
+ PMCLOG_EMIT32(0);
PMCLOG_EMITSTRING(path, pathlen);
PMCLOG_DESPATCH_SYNC(po);
}
@@ -1069,8 +1069,9 @@ pmclog_process_procexec(struct pmc_owner *po, pmc_id_t pmid, pid_t pid,
PMCLOG_RESERVE(po, PROCEXEC, recordlen);
PMCLOG_EMIT32(pid);
- PMCLOG_EMITADDR(startaddr);
PMCLOG_EMIT32(pmid);
+ PMCLOG_EMIT32(0);
+ PMCLOG_EMITADDR(startaddr);
PMCLOG_EMITSTRING(path,pathlen);
PMCLOG_DESPATCH(po);
}
@@ -1093,8 +1094,9 @@ pmclog_process_procexit(struct pmc *pm, struct pmc_process *pp)
PMCLOG_RESERVE(po, PROCEXIT, sizeof(struct pmclog_procexit));
PMCLOG_EMIT32(pm->pm_id);
- PMCLOG_EMIT64(pp->pp_pmcs[ri].pp_pmcval);
PMCLOG_EMIT32(pp->pp_proc->p_pid);
+ PMCLOG_EMIT32(0);
+ PMCLOG_EMIT64(pp->pp_pmcs[ri].pp_pmcval);
PMCLOG_DESPATCH(po);
}
diff --git a/sys/sys/pmc.h b/sys/sys/pmc.h
index 64d10ab6f512..f43ade8f311a 100644
--- a/sys/sys/pmc.h
+++ b/sys/sys/pmc.h
@@ -61,7 +61,7 @@
*
* The patch version is incremented for every bug fix.
*/
-#define PMC_VERSION_MAJOR 0x04
+#define PMC_VERSION_MAJOR 0x05
#define PMC_VERSION_MINOR 0x01
#define PMC_VERSION_PATCH 0x0000
diff --git a/sys/sys/pmclog.h b/sys/sys/pmclog.h
index 7d34f0021d8e..e438bd70acd3 100644
--- a/sys/sys/pmclog.h
+++ b/sys/sys/pmclog.h
@@ -39,20 +39,19 @@
enum pmclog_type {
/* V1 ABI */
- PMCLOG_TYPE_CLOSELOG,
- PMCLOG_TYPE_DROPNOTIFY,
- PMCLOG_TYPE_INITIALIZE,
- PMCLOG_TYPE_MAPPINGCHANGE, /* unused in v1 */
- PMCLOG_TYPE_PCSAMPLE,
- PMCLOG_TYPE_PMCALLOCATE,
- PMCLOG_TYPE_PMCATTACH,
- PMCLOG_TYPE_PMCDETACH,
- PMCLOG_TYPE_PROCCSW,
- PMCLOG_TYPE_PROCEXEC,
- PMCLOG_TYPE_PROCEXIT,
- PMCLOG_TYPE_PROCFORK,
- PMCLOG_TYPE_SYSEXIT,
- PMCLOG_TYPE_USERDATA,
+ PMCLOG_TYPE_CLOSELOG = 1,
+ PMCLOG_TYPE_DROPNOTIFY = 2,
+ PMCLOG_TYPE_INITIALIZE = 3,
+ PMCLOG_TYPE_MAPPINGCHANGE = 4, /* unused in v1 */
+ PMCLOG_TYPE_PMCALLOCATE = 5,
+ PMCLOG_TYPE_PMCATTACH = 6,
+ PMCLOG_TYPE_PMCDETACH = 7,
+ PMCLOG_TYPE_PROCCSW = 8,
+ PMCLOG_TYPE_PROCEXEC = 9,
+ PMCLOG_TYPE_PROCEXIT = 10,
+ PMCLOG_TYPE_PROCFORK = 11,
+ PMCLOG_TYPE_SYSEXIT = 12,
+ PMCLOG_TYPE_USERDATA = 13,
/*
* V2 ABI
*
@@ -60,15 +59,15 @@ enum pmclog_type {
* event type. The CALLCHAIN event type obsoletes the
* PCSAMPLE event type.
*/
- PMCLOG_TYPE_MAP_IN,
- PMCLOG_TYPE_MAP_OUT,
- PMCLOG_TYPE_CALLCHAIN,
+ PMCLOG_TYPE_MAP_IN = 14,
+ PMCLOG_TYPE_MAP_OUT = 15,
+ PMCLOG_TYPE_CALLCHAIN = 16,
/*
* V3 ABI
*
* New variant of PMCLOG_TYPE_PMCALLOCATE for dynamic event.
*/
- PMCLOG_TYPE_PMCALLOCATEDYN
+ PMCLOG_TYPE_PMCALLOCATEDYN = 17
};
/*
@@ -122,16 +121,19 @@ struct pmclog_callchain {
struct pmclog_closelog {
PMCLOG_ENTRY_HEADER
+ uint32_t pl_pad;
};
struct pmclog_dropnotify {
PMCLOG_ENTRY_HEADER
+ uint32_t pl_pad;
};
struct pmclog_initialize {
PMCLOG_ENTRY_HEADER
uint32_t pl_version; /* driver version */
uint32_t pl_cpu; /* enum pmc_cputype */
+ uint32_t pl_pad;
} __packed;
struct pmclog_map_in {
@@ -148,16 +150,6 @@ struct pmclog_map_out {
uintfptr_t pl_end;
} __packed;
-struct pmclog_pcsample {
- PMCLOG_ENTRY_HEADER
- uint32_t pl_pid;
- uintfptr_t pl_pc; /* 8 byte aligned */
- uint32_t pl_pmcid;
- uint32_t pl_usermode;
- uint32_t pl_tid;
- uint32_t pl_pad;
-} __packed;
-
struct pmclog_pmcallocate {
PMCLOG_ENTRY_HEADER
uint32_t pl_pmcid;
@@ -169,6 +161,7 @@ struct pmclog_pmcattach {
PMCLOG_ENTRY_HEADER
uint32_t pl_pmcid;
uint32_t pl_pid;
+ uint32_t pl_pad;
char pl_pathname[PATH_MAX];
} __packed;
@@ -176,6 +169,7 @@ struct pmclog_pmcdetach {
PMCLOG_ENTRY_HEADER
uint32_t pl_pmcid;
uint32_t pl_pid;
+ uint32_t pl_pad;
} __packed;
struct pmclog_proccsw {
@@ -189,22 +183,25 @@ struct pmclog_proccsw {
struct pmclog_procexec {
PMCLOG_ENTRY_HEADER
uint32_t pl_pid;
- uintfptr_t pl_start; /* keep 8 byte aligned */
uint32_t pl_pmcid;
+ uint32_t pl_pad;
+ uintfptr_t pl_start; /* keep 8 byte aligned */
char pl_pathname[PATH_MAX];
} __packed;
struct pmclog_procexit {
PMCLOG_ENTRY_HEADER
uint32_t pl_pmcid;
- uint64_t pl_value; /* keep 8 byte aligned */
uint32_t pl_pid;
+ uint32_t pl_pad;
+ uint64_t pl_value; /* keep 8 byte aligned */
} __packed;
struct pmclog_procfork {
PMCLOG_ENTRY_HEADER
uint32_t pl_oldpid;
uint32_t pl_newpid;
+ uint32_t pl_pad;
} __packed;
struct pmclog_sysexit {
@@ -232,7 +229,6 @@ union pmclog_entry { /* only used to size scratch areas */
struct pmclog_initialize pl_i;
struct pmclog_map_in pl_mi;
struct pmclog_map_out pl_mo;
- struct pmclog_pcsample pl_s;
struct pmclog_pmcallocate pl_a;
struct pmclog_pmcallocatedyn pl_ad;
struct pmclog_pmcattach pl_t;
diff --git a/usr.sbin/pmcstat/pmcstat.8 b/usr.sbin/pmcstat/pmcstat.8
index fa68a39a1483..f6ff4fbb32cb 100644
--- a/usr.sbin/pmcstat/pmcstat.8
+++ b/usr.sbin/pmcstat/pmcstat.8
@@ -39,7 +39,7 @@
.Op Fl F Ar pathname
.Op Fl G Ar pathname
.Op Fl I
-.Op Fl L Ar lwp
+.Op Fl L
.Op Fl M Ar mapfilename
.Op Fl N
.Op Fl O Ar logfilename
@@ -47,6 +47,7 @@
.Op Fl R Ar logfilename
.Op Fl S Ar event-spec
.Op Fl T
+.Op Fl U Ar event-spec
.Op Fl W
.Op Fl a Ar pathname
.Op Fl c Ar cpu-spec
@@ -54,6 +55,7 @@
.Op Fl e
.Op Fl f Ar pluginopt
.Op Fl g
+.Op Fl i Ar lwp
.Op Fl k Ar kerneldir
.Op Fl l Ar secs
.Op Fl m Ar pathname
@@ -64,6 +66,7 @@
.Op Fl r Ar fsroot
.Op Fl s Ar event-spec
.Op Fl t Ar process-spec
+.Op Fl u Ar event-spec
.Op Fl v
.Op Fl w Ar secs
.Op Fl z Ar graphdepth
@@ -159,13 +162,8 @@ this information is sent to the output file specified by the
option.
.It Fl I
Skip symbol lookup and display address instead.
-.It Fl L Ar lwp
-Filter on thread ID
-.Ar lwp ,
-which you can get from
-.Xr ps 1
-.Fl o
-.Li lwp .
+.It Fl L
+List all event names.
.It Fl M Ar mapfilename
Write the mapping between executable objects encountered in the event
log and the abbreviated pathnames used for
@@ -228,6 +226,8 @@ can be used: 'c+a' switch to accumulative mode, 'c+d' switch
to delta mode, 'm' merge PMCs, 'n' change view, 'p' show next
PMC, ' ' pause, 'q' quit. calltree only: 'f' cost under threshold
is seen as a dot.
+.It Fl U Ar event-spec
+Provide long description of event.
.It Fl W
Toggle logging the incremental counts seen by the threads of a
tracked process each time they are scheduled on a CPU.
@@ -291,6 +291,13 @@ A separate profile file is generated for each executable object
encountered.
Profile files are placed in sub-directories named by their PMC
event name.
+.It Fl i Ar lwp
+Filter on thread ID
+.Ar lwp ,
+which you can get from
+.Xr ps 1
+.Fl o
+.Li lwp .
.It Fl k Ar kerneldir
Set the pathname of the kernel directory to argument
.Ar kerneldir .
@@ -363,6 +370,8 @@ Argument
.Ar process-spec
may be a non-negative integer denoting a specific process id, or a
regular expression for selecting processes based on their command names.
+.It Fl u Ar event-spec
+Provide short description of event.
.It Fl v
Increase verbosity.
.It Fl w Ar secs
diff --git a/usr.sbin/pmcstat/pmcstat.c b/usr.sbin/pmcstat/pmcstat.c
index 63716e0e5c0d..45b272b60b59 100644
--- a/usr.sbin/pmcstat/pmcstat.c
+++ b/usr.sbin/pmcstat/pmcstat.c
@@ -365,8 +365,8 @@ pmcstat_show_usage(void)
"\t -F file\t write a system-wide callgraph (Kcachegrind format)"
" to \"file\"\n"
"\t -G file\t write a system-wide callgraph to \"file\"\n"
- "\t -I don't resolve leaf function name, show address instead\n"
- "\t -L lwp\t filter on thread id \"lwp\" in post-processing\n"
+ "\t -I\t\t don't resolve leaf function name, show address instead\n"
+ "\t -L\t\t list all counters available on this host\n"
"\t -M file\t print executable/gmon file map to \"file\"\n"
"\t -N\t\t (toggle) capture callchains\n"
"\t -O file\t send log output to \"file\"\n"
@@ -374,6 +374,7 @@ pmcstat_show_usage(void)
"\t -R file\t read events from \"file\"\n"
"\t -S spec\t allocate a system-wide sampling PMC\n"
"\t -T\t\t start in top mode\n"
+ "\t -U spec \t provide long description of counters matching spec\n"
"\t -W\t\t (toggle) show counts per context switch\n"
"\t -a file\t print sampled PCs and callgraph to \"file\"\n"
"\t -c cpu-list\t set cpus for subsequent system-wide PMCs\n"
@@ -381,6 +382,7 @@ pmcstat_show_usage(void)
"\t -e\t\t use wide history counter for gprof(1) output\n"
"\t -f spec\t pass \"spec\" to as plugin option\n"
"\t -g\t\t produce gprof(1) compatible profiles\n"
+ "\t -i lwp\t\t filter on thread id \"lwp\" in post-processing\n"
"\t -k dir\t\t set the path to the kernel\n"
"\t -l secs\t set duration time\n"
"\t -m file\t print sampled PCs to \"file\"\n"
@@ -392,6 +394,7 @@ pmcstat_show_usage(void)
"\t -s spec\t allocate a system-wide counting PMC\n"
"\t -t process-spec attach to running processes matching "
"\"process-spec\"\n"
+ "\t -u spec \t provide short description of counters matching spec\n"
"\t -v\t\t increase verbosity\n"
"\t -w secs\t set printing time interval\n"
"\t -z depth\t limit callchain display depth"
@@ -429,14 +432,14 @@ main(int argc, char **argv)
int option, npmc;
int c, check_driver_stats;
int do_callchain, do_descendants, do_logproccsw, do_logprocexit;
- int do_print, do_read;
+ int do_print, do_read, do_listcounters, do_descr, do_long_descr;
size_t len;
int graphdepth;
int pipefd[2], rfd;
int use_cumulative_counts;
short cf, cb;
uint64_t current_sampling_count;
- char *end, *tmp;
+ char *end, *tmp, *event;
const char *errmsg, *graphfilename;
enum pmcstat_state runstate;
struct pmc_driverstats ds_start, ds_end;
@@ -450,9 +453,12 @@ main(int argc, char **argv)
check_driver_stats = 0;
current_sampling_count = 0;
do_callchain = 1;
+ do_descr = 0;
do_descendants = 0;
+ do_long_descr = 0;
do_logproccsw = 0;
do_logprocexit = 0;
+ do_listcounters = 0;
use_cumulative_counts = 0;
graphfilename = "-";
args.pa_required = 0;
@@ -503,7 +509,7 @@ main(int argc, char **argv)
CPU_COPY(&rootmask, &cpumask);
while ((option = getopt(argc, argv,
- "CD:EF:G:IL:M:NO:P:R:S:TWa:c:def:gk:l:m:n:o:p:qr:s:t:vw:z:")) != -1)
+ "CD:EF:G:ILM:NO:P:R:S:TU:WZa:c:def:gi:k:l:m:n:o:p:qr:s:t:u:vw:z:")) != -1)
switch (option) {
case 'a': /* Annotate + callgraph */
args.pa_flags |= FLAG_DO_ANNOTATE;
@@ -544,6 +550,12 @@ main(int argc, char **argv)
args.pa_required |= FLAG_HAS_PROCESS_PMCS;
break;
+ case 'E': /* log process exit */
+ do_logprocexit = !do_logprocexit;
+ args.pa_required |= (FLAG_HAS_PROCESS_PMCS |
+ FLAG_HAS_COUNTING_PMCS | FLAG_HAS_OUTPUT_LOGFILE);
+ break;
+
case 'e': /* wide gprof metrics */
args.pa_flags |= FLAG_DO_WIDE_GPROF_HC;
break;
@@ -575,6 +587,11 @@ main(int argc, char **argv)
case 'I':
args.pa_flags |= FLAG_SKIP_TOP_FN_RES;
break;
+ case 'i':
+ args.pa_flags |= FLAG_FILTER_THREAD_ID;
+ args.pa_tid = strtol(optarg, &end, 0);
+ break;
+
case 'k': /* pathname to the kernel */
free(args.pa_kernel);
args.pa_kernel = strdup(optarg);
@@ -585,9 +602,9 @@ main(int argc, char **argv)
break;
case 'L':
- args.pa_flags |= FLAG_FILTER_THREAD_ID;
- args.pa_tid = strtol(optarg, &end, 0);
+ do_listcounters = 1;
break;
+
case 'l': /* time duration in seconds */
duration = strtod(optarg, &end);
if (*end != '\0' || duration <= 0)
@@ -603,12 +620,6 @@ main(int argc, char **argv)
graphfilename = optarg;
break;
- case 'E': /* log process exit */
- do_logprocexit = !do_logprocexit;
- args.pa_required |= (FLAG_HAS_PROCESS_PMCS |
- FLAG_HAS_COUNTING_PMCS | FLAG_HAS_OUTPUT_LOGFILE);
- break;
-
case 'M': /* mapfile */
args.pa_mapfilename = optarg;
break;
@@ -655,7 +666,7 @@ main(int argc, char **argv)
errx(EX_SOFTWARE, "ERROR: Out of memory.");
if (option == 'S' || option == 'P')
- ev->ev_count = current_sampling_count ? current_sampling_count : pmcstat_pmu_sample_rate_get(ev->ev_spec);
+ ev->ev_count = current_sampling_count ? current_sampling_count : pmc_pmu_sample_rate_get(ev->ev_spec);
else
ev->ev_count = -1;
@@ -760,6 +771,14 @@ main(int argc, char **argv)
args.pa_printfile = stdout;
break;
+ case 'u':
+ do_descr = 1;
+ event = optarg;
+ break;
+ case 'U':
+ do_long_descr = 1;
+ event = optarg;
+ break;
case 'v': /* verbose */
args.pa_verbosity++;
break;
@@ -796,6 +815,18 @@ main(int argc, char **argv)
break;
}
+ if ((do_listcounters | do_descr | do_long_descr) &&
+ pmc_pmu_enabled() == 0)
+ errx(EX_USAGE, "pmu features not supported on host or hwpmc not loaded");
+ if (do_listcounters) {
+ pmc_pmu_print_counters();
+ } else if (do_descr) {
+ pmc_pmu_print_counter_desc(event);
+ } else if (do_long_descr) {
+ pmc_pmu_print_counter_desc_long(event);
+ }
+ if (do_listcounters | do_descr | do_long_descr)
+ exit(0);
args.pa_argc = (argc -= optind);
args.pa_argv = (argv += optind);
diff --git a/usr.sbin/pmcstat/pmcstat_log.c b/usr.sbin/pmcstat/pmcstat_log.c
index cc3e9c49203f..5f88d274f393 100644
--- a/usr.sbin/pmcstat/pmcstat_log.c
+++ b/usr.sbin/pmcstat/pmcstat_log.c
@@ -423,13 +423,6 @@ pmcstat_print_log(void)
(void *) ev.pl_u.pl_mo.pl_start,
(void *) ev.pl_u.pl_mo.pl_end);
break;
- case PMCLOG_TYPE_PCSAMPLE:
- PMCSTAT_PRINT_ENTRY("sample","0x%x %d %p %c",
- ev.pl_u.pl_s.pl_pmcid,
- ev.pl_u.pl_s.pl_pid,
- (void *) ev.pl_u.pl_s.pl_pc,
- ev.pl_u.pl_s.pl_usermode ? 'u' : 's');
- break;
case PMCLOG_TYPE_PMCALLOCATE:
PMCSTAT_PRINT_ENTRY("allocate","0x%x \"%s\" 0x%x",
ev.pl_u.pl_a.pl_pmcid,