Processor Counter Monitor
Classes | Macros | Typedefs | Functions | Variables
types.h File Reference

Internal type and constant definitions. More...

#include <iostream>
#include <istream>
#include <sstream>
#include <iomanip>
#include <string.h>
Include dependency graph for types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  pcm::EventSelectRegister
 
struct  pcm::FixedEventControlRegister
 
struct  pcm::UncoreEventSelectRegister
 
struct  pcm::BecktonUncorePMUZDPCTLFVCRegister
 
struct  pcm::BecktonUncorePMUCNTCTLRegister
 
struct  pcm::IIOPMUCNTCTLRegister
 
struct  pcm::ICX_IIOPMUCNTCTLRegister
 
union  pcm::cvt_ds
 
struct  pcm::MCFGRecord
 
struct  pcm::MCFGHeader
 

Macros

#define PCM_ULIMIT_RECOMMENDATION   ("try executing 'ulimit -n 1000000' to increase the limit on the number of open files.\n")
 
#define INST_RETIRED_ADDR   (0x309)
 
#define CPU_CLK_UNHALTED_THREAD_ADDR   (0x30A)
 
#define CPU_CLK_UNHALTED_REF_ADDR   (0x30B)
 
#define TOPDOWN_SLOTS_ADDR   (0x30C)
 
#define PERF_METRICS_ADDR   (0x329)
 
#define IA32_CR_PERF_GLOBAL_CTRL   (0x38F)
 
#define IA32_CR_FIXED_CTR_CTRL   (0x38D)
 
#define IA32_PERFEVTSEL0_ADDR   (0x186)
 
#define IA32_PERFEVTSEL1_ADDR   (IA32_PERFEVTSEL0_ADDR + 1)
 
#define IA32_PERFEVTSEL2_ADDR   (IA32_PERFEVTSEL0_ADDR + 2)
 
#define IA32_PERFEVTSEL3_ADDR   (IA32_PERFEVTSEL0_ADDR + 3)
 
#define PERF_MAX_FIXED_COUNTERS   (3)
 
#define PERF_MAX_CUSTOM_COUNTERS   (8)
 
#define PERF_TOPDOWN_COUNTERS   (5)
 
#define PERF_MAX_COUNTERS   (PERF_MAX_FIXED_COUNTERS + PERF_MAX_CUSTOM_COUNTERS + PERF_TOPDOWN_COUNTERS)
 
#define IA32_DEBUGCTL   (0x1D9)
 
#define IA32_PMC0   (0xC1)
 
#define IA32_PMC1   (0xC1 + 1)
 
#define IA32_PMC2   (0xC1 + 2)
 
#define IA32_PMC3   (0xC1 + 3)
 
#define MSR_OFFCORE_RSP0   (0x1A6)
 
#define MSR_OFFCORE_RSP1   (0x1A7)
 
#define PLATFORM_INFO_ADDR   (0xCE)
 
#define IA32_TIME_STAMP_COUNTER   (0x10)
 
#define MEM_LOAD_RETIRED_L3_MISS_EVTNR   (0xCB)
 
#define MEM_LOAD_RETIRED_L3_MISS_UMASK   (0x10)
 
#define MEM_LOAD_RETIRED_L3_UNSHAREDHIT_EVTNR   (0xCB)
 
#define MEM_LOAD_RETIRED_L3_UNSHAREDHIT_UMASK   (0x04)
 
#define MEM_LOAD_RETIRED_L2_HITM_EVTNR   (0xCB)
 
#define MEM_LOAD_RETIRED_L2_HITM_UMASK   (0x08)
 
#define MEM_LOAD_RETIRED_L2_HIT_EVTNR   (0xCB)
 
#define MEM_LOAD_RETIRED_L2_HIT_UMASK   (0x02)
 
#define MEM_LOAD_UOPS_MISC_RETIRED_LLC_MISS_EVTNR   (0xD4)
 
#define MEM_LOAD_UOPS_MISC_RETIRED_LLC_MISS_UMASK   (0x02)
 
#define MEM_LOAD_UOPS_LLC_HIT_RETIRED_XSNP_NONE_EVTNR   (0xD2)
 
#define MEM_LOAD_UOPS_LLC_HIT_RETIRED_XSNP_NONE_UMASK   (0x08)
 
#define MEM_LOAD_UOPS_LLC_HIT_RETIRED_XSNP_HITM_EVTNR   (0xD2)
 
#define MEM_LOAD_UOPS_LLC_HIT_RETIRED_XSNP_HITM_UMASK   (0x04)
 
#define MEM_LOAD_UOPS_LLC_HIT_RETIRED_XSNP_EVTNR   (0xD2)
 
#define MEM_LOAD_UOPS_LLC_HIT_RETIRED_XSNP_UMASK   (0x07)
 
#define MEM_LOAD_UOPS_RETIRED_L2_HIT_EVTNR   (0xD1)
 
#define MEM_LOAD_UOPS_RETIRED_L2_HIT_UMASK   (0x02)
 
#define SKL_MEM_LOAD_RETIRED_L3_MISS_EVTNR   (0xD1)
 
#define SKL_MEM_LOAD_RETIRED_L3_MISS_UMASK   (0x20)
 
#define SKL_MEM_LOAD_RETIRED_L3_HIT_EVTNR   (0xD1)
 
#define SKL_MEM_LOAD_RETIRED_L3_HIT_UMASK   (0x04)
 
#define SKL_MEM_LOAD_RETIRED_L2_MISS_EVTNR   (0xD1)
 
#define SKL_MEM_LOAD_RETIRED_L2_MISS_UMASK   (0x10)
 
#define SKL_MEM_LOAD_RETIRED_L2_HIT_EVTNR   (0xD1)
 
#define SKL_MEM_LOAD_RETIRED_L2_HIT_UMASK   (0x02)
 
#define ARCH_LLC_REFERENCE_EVTNR   (0x2E)
 
#define ARCH_LLC_REFERENCE_UMASK   (0x4F)
 
#define ARCH_LLC_MISS_EVTNR   (0x2E)
 
#define ARCH_LLC_MISS_UMASK   (0x41)
 
#define ATOM_MEM_LOAD_RETIRED_L2_HIT_EVTNR   (0xCB)
 
#define ATOM_MEM_LOAD_RETIRED_L2_HIT_UMASK   (0x01)
 
#define ATOM_MEM_LOAD_RETIRED_L2_MISS_EVTNR   (0xCB)
 
#define ATOM_MEM_LOAD_RETIRED_L2_MISS_UMASK   (0x02)
 
#define ATOM_MEM_LOAD_RETIRED_L2_HIT_EVTNR   (0xCB)
 
#define ATOM_MEM_LOAD_RETIRED_L2_HIT_UMASK   (0x01)
 
#define ATOM_MEM_LOAD_RETIRED_L2_MISS_EVTNR   (0xCB)
 
#define ATOM_MEM_LOAD_RETIRED_L2_MISS_UMASK   (0x02)
 
#define ATOM_MEM_LOAD_RETIRED_L2_HIT_EVTNR   (0xCB)
 
#define ATOM_MEM_LOAD_RETIRED_L2_HIT_UMASK   (0x01)
 
#define ATOM_MEM_LOAD_RETIRED_L2_MISS_EVTNR   (0xCB)
 
#define ATOM_MEM_LOAD_RETIRED_L2_MISS_UMASK   (0x02)
 
#define OFFCORE_RESPONSE_0_EVTNR   (0xB7)
 
#define OFFCORE_RESPONSE_1_EVTNR   (0xBB)
 
#define GLC_OFFCORE_RESPONSE_0_EVTNR   (0x2A)
 
#define GLC_OFFCORE_RESPONSE_1_EVTNR   (0x2B)
 
#define OFFCORE_RESPONSE_0_UMASK   (1)
 
#define OFFCORE_RESPONSE_1_UMASK   (1)
 
#define MSR_UNCORE_PERF_GLOBAL_CTRL_ADDR   (0x391)
 
#define MSR_UNCORE_PERFEVTSEL0_ADDR   (0x3C0)
 
#define MSR_UNCORE_PERFEVTSEL1_ADDR   (MSR_UNCORE_PERFEVTSEL0_ADDR + 1)
 
#define MSR_UNCORE_PERFEVTSEL2_ADDR   (MSR_UNCORE_PERFEVTSEL0_ADDR + 2)
 
#define MSR_UNCORE_PERFEVTSEL3_ADDR   (MSR_UNCORE_PERFEVTSEL0_ADDR + 3)
 
#define MSR_UNCORE_PERFEVTSEL4_ADDR   (MSR_UNCORE_PERFEVTSEL0_ADDR + 4)
 
#define MSR_UNCORE_PERFEVTSEL5_ADDR   (MSR_UNCORE_PERFEVTSEL0_ADDR + 5)
 
#define MSR_UNCORE_PERFEVTSEL6_ADDR   (MSR_UNCORE_PERFEVTSEL0_ADDR + 6)
 
#define MSR_UNCORE_PERFEVTSEL7_ADDR   (MSR_UNCORE_PERFEVTSEL0_ADDR + 7)
 
#define MSR_UNCORE_PMC0   (0x3B0)
 
#define MSR_UNCORE_PMC1   (MSR_UNCORE_PMC0 + 1)
 
#define MSR_UNCORE_PMC2   (MSR_UNCORE_PMC0 + 2)
 
#define MSR_UNCORE_PMC3   (MSR_UNCORE_PMC0 + 3)
 
#define MSR_UNCORE_PMC4   (MSR_UNCORE_PMC0 + 4)
 
#define MSR_UNCORE_PMC5   (MSR_UNCORE_PMC0 + 5)
 
#define MSR_UNCORE_PMC6   (MSR_UNCORE_PMC0 + 6)
 
#define MSR_UNCORE_PMC7   (MSR_UNCORE_PMC0 + 7)
 
#define UNC_QMC_WRITES_FULL_ANY_EVTNR   (0x2F)
 
#define UNC_QMC_WRITES_FULL_ANY_UMASK   (0x07)
 
#define UNC_QMC_NORMAL_READS_ANY_EVTNR   (0x2C)
 
#define UNC_QMC_NORMAL_READS_ANY_UMASK   (0x07)
 
#define UNC_QHL_REQUESTS_EVTNR   (0x20)
 
#define UNC_QHL_REQUESTS_IOH_READS_UMASK   (0x01)
 
#define UNC_QHL_REQUESTS_IOH_WRITES_UMASK   (0x02)
 
#define UNC_QHL_REQUESTS_REMOTE_READS_UMASK   (0x04)
 
#define UNC_QHL_REQUESTS_REMOTE_WRITES_UMASK   (0x08)
 
#define UNC_QHL_REQUESTS_LOCAL_READS_UMASK   (0x10)
 
#define UNC_QHL_REQUESTS_LOCAL_WRITES_UMASK   (0x20)
 
#define U_MSR_PMON_GLOBAL_CTL   (0x0C00)
 
#define MB0_MSR_PERF_GLOBAL_CTL   (0x0CA0)
 
#define MB0_MSR_PMU_CNT_0   (0x0CB1)
 
#define MB0_MSR_PMU_CNT_CTL_0   (0x0CB0)
 
#define MB0_MSR_PMU_CNT_1   (0x0CB3)
 
#define MB0_MSR_PMU_CNT_CTL_1   (0x0CB2)
 
#define MB0_MSR_PMU_ZDP_CTL_FVC   (0x0CAB)
 
#define MB1_MSR_PERF_GLOBAL_CTL   (0x0CE0)
 
#define MB1_MSR_PMU_CNT_0   (0x0CF1)
 
#define MB1_MSR_PMU_CNT_CTL_0   (0x0CF0)
 
#define MB1_MSR_PMU_CNT_1   (0x0CF3)
 
#define MB1_MSR_PMU_CNT_CTL_1   (0x0CF2)
 
#define MB1_MSR_PMU_ZDP_CTL_FVC   (0x0CEB)
 
#define BB0_MSR_PERF_GLOBAL_CTL   (0x0C20)
 
#define BB0_MSR_PERF_CNT_1   (0x0C33)
 
#define BB0_MSR_PERF_CNT_CTL_1   (0x0C32)
 
#define BB1_MSR_PERF_GLOBAL_CTL   (0x0C60)
 
#define BB1_MSR_PERF_CNT_1   (0x0C73)
 
#define BB1_MSR_PERF_CNT_CTL_1   (0x0C72)
 
#define R_MSR_PMON_CTL0   (0x0E10)
 
#define R_MSR_PMON_CTR0   (0x0E11)
 
#define R_MSR_PMON_CTL1   (0x0E12)
 
#define R_MSR_PMON_CTR1   (0x0E13)
 
#define R_MSR_PMON_CTL2   (0x0E14)
 
#define R_MSR_PMON_CTR2   (0x0E15)
 
#define R_MSR_PMON_CTL3   (0x0E16)
 
#define R_MSR_PMON_CTR3   (0x0E17)
 
#define R_MSR_PMON_CTL4   (0x0E18)
 
#define R_MSR_PMON_CTR4   (0x0E19)
 
#define R_MSR_PMON_CTL5   (0x0E1A)
 
#define R_MSR_PMON_CTR5   (0x0E1B)
 
#define R_MSR_PMON_CTL6   (0x0E1C)
 
#define R_MSR_PMON_CTR6   (0x0E1D)
 
#define R_MSR_PMON_CTL7   (0x0E1E)
 
#define R_MSR_PMON_CTR7   (0x0E1F)
 
#define R_MSR_PMON_CTL8   (0x0E30)
 
#define R_MSR_PMON_CTR8   (0x0E31)
 
#define R_MSR_PMON_CTL9   (0x0E32)
 
#define R_MSR_PMON_CTR9   (0x0E33)
 
#define R_MSR_PMON_CTL10   (0x0E34)
 
#define R_MSR_PMON_CTR10   (0x0E35)
 
#define R_MSR_PMON_CTL11   (0x0E36)
 
#define R_MSR_PMON_CTR11   (0x0E37)
 
#define R_MSR_PMON_CTL12   (0x0E38)
 
#define R_MSR_PMON_CTR12   (0x0E39)
 
#define R_MSR_PMON_CTL13   (0x0E3A)
 
#define R_MSR_PMON_CTR13   (0x0E3B)
 
#define R_MSR_PMON_CTL14   (0x0E3C)
 
#define R_MSR_PMON_CTR14   (0x0E3D)
 
#define R_MSR_PMON_CTL15   (0x0E3E)
 
#define R_MSR_PMON_CTR15   (0x0E3F)
 
#define R_MSR_PORT0_IPERF_CFG0   (0x0E04)
 
#define R_MSR_PORT1_IPERF_CFG0   (0x0E05)
 
#define R_MSR_PORT2_IPERF_CFG0   (0x0E06)
 
#define R_MSR_PORT3_IPERF_CFG0   (0x0E07)
 
#define R_MSR_PORT4_IPERF_CFG0   (0x0E08)
 
#define R_MSR_PORT5_IPERF_CFG0   (0x0E09)
 
#define R_MSR_PORT6_IPERF_CFG0   (0x0E0A)
 
#define R_MSR_PORT7_IPERF_CFG0   (0x0E0B)
 
#define R_MSR_PORT0_IPERF_CFG1   (0x0E24)
 
#define R_MSR_PORT1_IPERF_CFG1   (0x0E25)
 
#define R_MSR_PORT2_IPERF_CFG1   (0x0E26)
 
#define R_MSR_PORT3_IPERF_CFG1   (0x0E27)
 
#define R_MSR_PORT4_IPERF_CFG1   (0x0E28)
 
#define R_MSR_PORT5_IPERF_CFG1   (0x0E29)
 
#define R_MSR_PORT6_IPERF_CFG1   (0x0E2A)
 
#define R_MSR_PORT7_IPERF_CFG1   (0x0E2B)
 
#define R_MSR_PMON_GLOBAL_CTL_7_0   (0x0E00)
 
#define R_MSR_PMON_GLOBAL_CTL_15_8   (0x0E20)
 
#define W_MSR_PMON_GLOBAL_CTL   (0xC80)
 
#define W_MSR_PMON_FIXED_CTR_CTL   (0x395)
 
#define W_MSR_PMON_FIXED_CTR   (0x394)
 
#define IA32_PQR_ASSOC   (0xc8f)
 
#define IA32_QM_EVTSEL   (0xc8d)
 
#define IA32_QM_CTR   (0xc8e)
 
#define PCM_INVALID_QOS_MONITORING_DATA   ((std::numeric_limits<uint64>::max)())
 
#define MSR_SMI_COUNT   (0x34)
 
#define MSR_PKG_ENERGY_STATUS   (0x611)
 
#define MSR_RAPL_POWER_UNIT   (0x606)
 
#define MSR_PKG_POWER_INFO   (0x614)
 
#define PCM_INTEL_PCI_VENDOR_ID   (0x8086)
 
#define PCM_PCI_VENDOR_ID_OFFSET   (0)
 
#define JKTIVT_MC0_CH0_REGISTER_DEV_ADDR   (16)
 
#define JKTIVT_MC0_CH1_REGISTER_DEV_ADDR   (16)
 
#define JKTIVT_MC0_CH2_REGISTER_DEV_ADDR   (16)
 
#define JKTIVT_MC0_CH3_REGISTER_DEV_ADDR   (16)
 
#define JKTIVT_MC0_CH0_REGISTER_FUNC_ADDR   (4)
 
#define JKTIVT_MC0_CH1_REGISTER_FUNC_ADDR   (5)
 
#define JKTIVT_MC0_CH2_REGISTER_FUNC_ADDR   (0)
 
#define JKTIVT_MC0_CH3_REGISTER_FUNC_ADDR   (1)
 
#define JKTIVT_MC1_CH0_REGISTER_DEV_ADDR   (30)
 
#define JKTIVT_MC1_CH1_REGISTER_DEV_ADDR   (30)
 
#define JKTIVT_MC1_CH2_REGISTER_DEV_ADDR   (30)
 
#define JKTIVT_MC1_CH3_REGISTER_DEV_ADDR   (30)
 
#define JKTIVT_MC1_CH0_REGISTER_FUNC_ADDR   (4)
 
#define JKTIVT_MC1_CH1_REGISTER_FUNC_ADDR   (5)
 
#define JKTIVT_MC1_CH2_REGISTER_FUNC_ADDR   (0)
 
#define JKTIVT_MC1_CH3_REGISTER_FUNC_ADDR   (1)
 
#define HSX_MC0_CH0_REGISTER_DEV_ADDR   (20)
 
#define HSX_MC0_CH1_REGISTER_DEV_ADDR   (20)
 
#define HSX_MC0_CH2_REGISTER_DEV_ADDR   (21)
 
#define HSX_MC0_CH3_REGISTER_DEV_ADDR   (21)
 
#define HSX_MC0_CH0_REGISTER_FUNC_ADDR   (0)
 
#define HSX_MC0_CH1_REGISTER_FUNC_ADDR   (1)
 
#define HSX_MC0_CH2_REGISTER_FUNC_ADDR   (0)
 
#define HSX_MC0_CH3_REGISTER_FUNC_ADDR   (1)
 
#define HSX_MC1_CH0_REGISTER_DEV_ADDR   (23)
 
#define HSX_MC1_CH1_REGISTER_DEV_ADDR   (23)
 
#define HSX_MC1_CH2_REGISTER_DEV_ADDR   (24)
 
#define HSX_MC1_CH3_REGISTER_DEV_ADDR   (24)
 
#define HSX_MC1_CH0_REGISTER_FUNC_ADDR   (0)
 
#define HSX_MC1_CH1_REGISTER_FUNC_ADDR   (1)
 
#define HSX_MC1_CH2_REGISTER_FUNC_ADDR   (0)
 
#define HSX_MC1_CH3_REGISTER_FUNC_ADDR   (1)
 
#define KNL_MC0_CH0_REGISTER_DEV_ADDR   (8)
 
#define KNL_MC0_CH1_REGISTER_DEV_ADDR   (8)
 
#define KNL_MC0_CH2_REGISTER_DEV_ADDR   (8)
 
#define KNL_MC0_CH0_REGISTER_FUNC_ADDR   (2)
 
#define KNL_MC0_CH1_REGISTER_FUNC_ADDR   (3)
 
#define KNL_MC0_CH2_REGISTER_FUNC_ADDR   (4)
 
#define SKX_MC0_CH0_REGISTER_DEV_ADDR   (10)
 
#define SKX_MC0_CH1_REGISTER_DEV_ADDR   (10)
 
#define SKX_MC0_CH2_REGISTER_DEV_ADDR   (11)
 
#define SKX_MC0_CH3_REGISTER_DEV_ADDR   (-1)
 
#define SKX_MC0_CH0_REGISTER_FUNC_ADDR   (2)
 
#define SKX_MC0_CH1_REGISTER_FUNC_ADDR   (6)
 
#define SKX_MC0_CH2_REGISTER_FUNC_ADDR   (2)
 
#define SKX_MC0_CH3_REGISTER_FUNC_ADDR   (-1)
 
#define SKX_MC1_CH0_REGISTER_DEV_ADDR   (12)
 
#define SKX_MC1_CH1_REGISTER_DEV_ADDR   (12)
 
#define SKX_MC1_CH2_REGISTER_DEV_ADDR   (13)
 
#define SKX_MC1_CH3_REGISTER_DEV_ADDR   (-1)
 
#define SKX_MC1_CH0_REGISTER_FUNC_ADDR   (2)
 
#define SKX_MC1_CH1_REGISTER_FUNC_ADDR   (6)
 
#define SKX_MC1_CH2_REGISTER_FUNC_ADDR   (2)
 
#define SKX_MC1_CH3_REGISTER_FUNC_ADDR   (-1)
 
#define SERVER_UBOX0_REGISTER_DEV_ADDR   (0)
 
#define SERVER_UBOX0_REGISTER_FUNC_ADDR   (1)
 
#define KNL_MC1_CH0_REGISTER_DEV_ADDR   (9)
 
#define KNL_MC1_CH1_REGISTER_DEV_ADDR   (9)
 
#define KNL_MC1_CH2_REGISTER_DEV_ADDR   (9)
 
#define KNL_MC1_CH0_REGISTER_FUNC_ADDR   (2)
 
#define KNL_MC1_CH1_REGISTER_FUNC_ADDR   (3)
 
#define KNL_MC1_CH2_REGISTER_FUNC_ADDR   (4)
 
#define KNL_EDC0_ECLK_REGISTER_DEV_ADDR   (24)
 
#define KNL_EDC0_ECLK_REGISTER_FUNC_ADDR   (2)
 
#define KNL_EDC1_ECLK_REGISTER_DEV_ADDR   (25)
 
#define KNL_EDC1_ECLK_REGISTER_FUNC_ADDR   (2)
 
#define KNL_EDC2_ECLK_REGISTER_DEV_ADDR   (26)
 
#define KNL_EDC2_ECLK_REGISTER_FUNC_ADDR   (2)
 
#define KNL_EDC3_ECLK_REGISTER_DEV_ADDR   (27)
 
#define KNL_EDC3_ECLK_REGISTER_FUNC_ADDR   (2)
 
#define KNL_EDC4_ECLK_REGISTER_DEV_ADDR   (28)
 
#define KNL_EDC4_ECLK_REGISTER_FUNC_ADDR   (2)
 
#define KNL_EDC5_ECLK_REGISTER_DEV_ADDR   (29)
 
#define KNL_EDC5_ECLK_REGISTER_FUNC_ADDR   (2)
 
#define KNL_EDC6_ECLK_REGISTER_DEV_ADDR   (30)
 
#define KNL_EDC6_ECLK_REGISTER_FUNC_ADDR   (2)
 
#define KNL_EDC7_ECLK_REGISTER_DEV_ADDR   (31)
 
#define KNL_EDC7_ECLK_REGISTER_FUNC_ADDR   (2)
 
#define HSX_HA0_REGISTER_DEV_ADDR   (18)
 
#define HSX_HA0_REGISTER_FUNC_ADDR   (1)
 
#define HSX_HA1_REGISTER_DEV_ADDR   (18)
 
#define HSX_HA1_REGISTER_FUNC_ADDR   (5)
 
#define XPF_HA_PCI_PMON_BOX_CTL_ADDR   (0xF4)
 
#define XPF_HA_PCI_PMON_CTL0_ADDR   (0xD8 + 4*0)
 
#define XPF_HA_PCI_PMON_CTL1_ADDR   (0xD8 + 4*1)
 
#define XPF_HA_PCI_PMON_CTL2_ADDR   (0xD8 + 4*2)
 
#define XPF_HA_PCI_PMON_CTL3_ADDR   (0xD8 + 4*3)
 
#define XPF_HA_PCI_PMON_CTR0_ADDR   (0xA0 + 8*0)
 
#define XPF_HA_PCI_PMON_CTR1_ADDR   (0xA0 + 8*1)
 
#define XPF_HA_PCI_PMON_CTR2_ADDR   (0xA0 + 8*2)
 
#define XPF_HA_PCI_PMON_CTR3_ADDR   (0xA0 + 8*3)
 
#define XPF_MC_CH_PCI_PMON_BOX_CTL_ADDR   (0x0F4)
 
#define KNX_MC_CH_PCI_PMON_BOX_CTL_ADDR   (0xB30)
 
#define KNX_EDC_CH_PCI_PMON_BOX_CTL_ADDR   (0xA30)
 
#define XPF_MC_CH_PCI_PMON_FIXED_CTL_ADDR   (0x0F0)
 for Xeons
 
#define XPF_MC_CH_PCI_PMON_CTL3_ADDR   (0x0E4)
 
#define XPF_MC_CH_PCI_PMON_CTL2_ADDR   (0x0E0)
 
#define XPF_MC_CH_PCI_PMON_CTL1_ADDR   (0x0DC)
 
#define XPF_MC_CH_PCI_PMON_CTL0_ADDR   (0x0D8)
 
#define KNX_MC_CH_PCI_PMON_FIXED_CTL_ADDR   (0xB44)
 KNL IMC.
 
#define KNX_MC_CH_PCI_PMON_CTL3_ADDR   (0xB2C)
 
#define KNX_MC_CH_PCI_PMON_CTL2_ADDR   (0xB28)
 
#define KNX_MC_CH_PCI_PMON_CTL1_ADDR   (0xB24)
 
#define KNX_MC_CH_PCI_PMON_CTL0_ADDR   (0xB20)
 
#define KNX_EDC_CH_PCI_PMON_FIXED_CTL_ADDR   (0xA44)
 KNL EDC ECLK.
 
#define KNX_EDC_CH_PCI_PMON_CTL3_ADDR   (0xA2C)
 
#define KNX_EDC_CH_PCI_PMON_CTL2_ADDR   (0xA28)
 
#define KNX_EDC_CH_PCI_PMON_CTL1_ADDR   (0xA24)
 
#define KNX_EDC_CH_PCI_PMON_CTL0_ADDR   (0xA20)
 
#define KNX_EDC_ECLK_PMON_UNIT_CTL_REG   (0xA30)
 
#define XPF_MC_CH_PCI_PMON_FIXED_CTR_ADDR   (0x0D0)
 for Xeons
 
#define XPF_MC_CH_PCI_PMON_CTR3_ADDR   (0x0B8)
 
#define XPF_MC_CH_PCI_PMON_CTR2_ADDR   (0x0B0)
 
#define XPF_MC_CH_PCI_PMON_CTR1_ADDR   (0x0A8)
 
#define XPF_MC_CH_PCI_PMON_CTR0_ADDR   (0x0A0)
 
#define KNX_MC_CH_PCI_PMON_FIXED_CTR_ADDR   (0xB3C)
 for KNL IMC
 
#define KNX_MC_CH_PCI_PMON_CTR3_ADDR   (0xB18)
 
#define KNX_MC_CH_PCI_PMON_CTR2_ADDR   (0xB10)
 
#define KNX_MC_CH_PCI_PMON_CTR1_ADDR   (0xB08)
 
#define KNX_MC_CH_PCI_PMON_CTR0_ADDR   (0xB00)
 
#define KNX_EDC_CH_PCI_PMON_FIXED_CTR_ADDR   (0xA3C)
 for KNL EDC ECLK
 
#define KNX_EDC_CH_PCI_PMON_CTR3_ADDR   (0xA18)
 
#define KNX_EDC_CH_PCI_PMON_CTR2_ADDR   (0xA10)
 
#define KNX_EDC_CH_PCI_PMON_CTR1_ADDR   (0xA08)
 
#define KNX_EDC_CH_PCI_PMON_CTR0_ADDR   (0xA00)
 
#define SERVER_MC_CH_PMON_BASE_ADDR   (0x22800)
 
#define SERVER_MC_CH_PMON_STEP   (0x4000)
 
#define SERVER_MC_CH_PMON_SIZE   (0x1000)
 
#define SERVER_MC_CH_PMON_BOX_CTL_OFFSET   (0x00)
 
#define SERVER_MC_CH_PMON_CTL0_OFFSET   (0x40)
 
#define SERVER_MC_CH_PMON_CTL1_OFFSET   (SERVER_MC_CH_PMON_CTL0_OFFSET + 4*1)
 
#define SERVER_MC_CH_PMON_CTL2_OFFSET   (SERVER_MC_CH_PMON_CTL0_OFFSET + 4*2)
 
#define SERVER_MC_CH_PMON_CTL3_OFFSET   (SERVER_MC_CH_PMON_CTL0_OFFSET + 4*3)
 
#define SERVER_MC_CH_PMON_CTR0_OFFSET   (0x08)
 
#define SERVER_MC_CH_PMON_CTR1_OFFSET   (SERVER_MC_CH_PMON_CTR0_OFFSET + 8*1)
 
#define SERVER_MC_CH_PMON_CTR2_OFFSET   (SERVER_MC_CH_PMON_CTR0_OFFSET + 8*2)
 
#define SERVER_MC_CH_PMON_CTR3_OFFSET   (SERVER_MC_CH_PMON_CTR0_OFFSET + 8*3)
 
#define SERVER_MC_CH_PMON_FIXED_CTL_OFFSET   (0x54)
 
#define SERVER_MC_CH_PMON_FIXED_CTR_OFFSET   (0x38)
 
#define JKTIVT_QPI_PORT0_REGISTER_DEV_ADDR   (8)
 
#define JKTIVT_QPI_PORT0_REGISTER_FUNC_ADDR   (2)
 
#define JKTIVT_QPI_PORT1_REGISTER_DEV_ADDR   (9)
 
#define JKTIVT_QPI_PORT1_REGISTER_FUNC_ADDR   (2)
 
#define JKTIVT_QPI_PORT2_REGISTER_DEV_ADDR   (24)
 
#define JKTIVT_QPI_PORT2_REGISTER_FUNC_ADDR   (2)
 
#define HSX_QPI_PORT0_REGISTER_DEV_ADDR   (8)
 
#define HSX_QPI_PORT0_REGISTER_FUNC_ADDR   (2)
 
#define HSX_QPI_PORT1_REGISTER_DEV_ADDR   (9)
 
#define HSX_QPI_PORT1_REGISTER_FUNC_ADDR   (2)
 
#define HSX_QPI_PORT2_REGISTER_DEV_ADDR   (10)
 
#define HSX_QPI_PORT2_REGISTER_FUNC_ADDR   (2)
 
#define SKX_QPI_PORT0_REGISTER_DEV_ADDR   (14)
 
#define SKX_QPI_PORT0_REGISTER_FUNC_ADDR   (0)
 
#define SKX_QPI_PORT1_REGISTER_DEV_ADDR   (15)
 
#define SKX_QPI_PORT1_REGISTER_FUNC_ADDR   (0)
 
#define SKX_QPI_PORT2_REGISTER_DEV_ADDR   (16)
 
#define SKX_QPI_PORT2_REGISTER_FUNC_ADDR   (0)
 
#define CPX_QPI_PORT3_REGISTER_DEV_ADDR   (14)
 
#define CPX_QPI_PORT3_REGISTER_FUNC_ADDR   (4)
 
#define CPX_QPI_PORT4_REGISTER_DEV_ADDR   (15)
 
#define CPX_QPI_PORT4_REGISTER_FUNC_ADDR   (4)
 
#define CPX_QPI_PORT5_REGISTER_DEV_ADDR   (16)
 
#define CPX_QPI_PORT5_REGISTER_FUNC_ADDR   (4)
 
#define ICX_QPI_PORT0_REGISTER_DEV_ADDR   (2)
 
#define ICX_QPI_PORT0_REGISTER_FUNC_ADDR   (1)
 
#define ICX_QPI_PORT1_REGISTER_DEV_ADDR   (3)
 
#define ICX_QPI_PORT1_REGISTER_FUNC_ADDR   (1)
 
#define ICX_QPI_PORT2_REGISTER_DEV_ADDR   (4)
 
#define ICX_QPI_PORT2_REGISTER_FUNC_ADDR   (1)
 
#define QPI_PORT0_MISC_REGISTER_FUNC_ADDR   (0)
 
#define QPI_PORT1_MISC_REGISTER_FUNC_ADDR   (0)
 
#define QPI_PORT2_MISC_REGISTER_FUNC_ADDR   (0)
 
#define SKX_M2M_0_REGISTER_DEV_ADDR   (8)
 
#define SKX_M2M_0_REGISTER_FUNC_ADDR   (0)
 
#define SKX_M2M_1_REGISTER_DEV_ADDR   (9)
 
#define SKX_M2M_1_REGISTER_FUNC_ADDR   (0)
 
#define SERVER_M2M_0_REGISTER_DEV_ADDR   (12)
 
#define SERVER_M2M_0_REGISTER_FUNC_ADDR   (0)
 
#define SERVER_M2M_1_REGISTER_DEV_ADDR   (13)
 
#define SERVER_M2M_1_REGISTER_FUNC_ADDR   (0)
 
#define SERVER_M2M_2_REGISTER_DEV_ADDR   (14)
 
#define SERVER_M2M_2_REGISTER_FUNC_ADDR   (0)
 
#define SERVER_M2M_3_REGISTER_DEV_ADDR   (15)
 
#define SERVER_M2M_3_REGISTER_FUNC_ADDR   (0)
 
#define SKX_M2M_PCI_PMON_BOX_CTL_ADDR   (0x258)
 
#define SKX_M2M_PCI_PMON_CTL0_ADDR   (0x228)
 
#define SKX_M2M_PCI_PMON_CTL1_ADDR   (0x230)
 
#define SKX_M2M_PCI_PMON_CTL2_ADDR   (0x238)
 
#define SKX_M2M_PCI_PMON_CTL3_ADDR   (0x240)
 
#define SKX_M2M_PCI_PMON_CTR0_ADDR   (0x200)
 
#define SKX_M2M_PCI_PMON_CTR1_ADDR   (0x208)
 
#define SKX_M2M_PCI_PMON_CTR2_ADDR   (0x210)
 
#define SKX_M2M_PCI_PMON_CTR3_ADDR   (0x218)
 
#define SERVER_M2M_PCI_PMON_BOX_CTL_ADDR   (0x438)
 
#define SERVER_M2M_PCI_PMON_CTL0_ADDR   (0x468)
 
#define SERVER_M2M_PCI_PMON_CTL1_ADDR   (SERVER_M2M_PCI_PMON_CTL0_ADDR + 1*8)
 
#define SERVER_M2M_PCI_PMON_CTL2_ADDR   (SERVER_M2M_PCI_PMON_CTL0_ADDR + 2*8)
 
#define SERVER_M2M_PCI_PMON_CTL3_ADDR   (SERVER_M2M_PCI_PMON_CTL0_ADDR + 3*8)
 
#define SERVER_M2M_PCI_PMON_CTR0_ADDR   (0x440)
 
#define SERVER_M2M_PCI_PMON_CTR1_ADDR   (SERVER_M2M_PCI_PMON_CTR0_ADDR + 1*8)
 
#define SERVER_M2M_PCI_PMON_CTR2_ADDR   (SERVER_M2M_PCI_PMON_CTR0_ADDR + 2*8)
 
#define SERVER_M2M_PCI_PMON_CTR3_ADDR   (SERVER_M2M_PCI_PMON_CTR0_ADDR + 3*8)
 
#define PCM_INVALID_DEV_ADDR   (~(uint32)0UL)
 
#define PCM_INVALID_FUNC_ADDR   (~(uint32)0UL)
 
#define Q_P_PCI_PMON_BOX_CTL_ADDR   (0x0F4)
 
#define Q_P_PCI_PMON_CTL3_ADDR   (0x0E4)
 
#define Q_P_PCI_PMON_CTL2_ADDR   (0x0E0)
 
#define Q_P_PCI_PMON_CTL1_ADDR   (0x0DC)
 
#define Q_P_PCI_PMON_CTL0_ADDR   (0x0D8)
 
#define Q_P_PCI_PMON_CTR3_ADDR   (0x0B8)
 
#define Q_P_PCI_PMON_CTR2_ADDR   (0x0B0)
 
#define Q_P_PCI_PMON_CTR1_ADDR   (0x0A8)
 
#define Q_P_PCI_PMON_CTR0_ADDR   (0x0A0)
 
#define QPI_RATE_STATUS_ADDR   (0x0D4)
 
#define U_L_PCI_PMON_BOX_CTL_ADDR   (0x378)
 
#define U_L_PCI_PMON_CTL3_ADDR   (0x368)
 
#define U_L_PCI_PMON_CTL2_ADDR   (0x360)
 
#define U_L_PCI_PMON_CTL1_ADDR   (0x358)
 
#define U_L_PCI_PMON_CTL0_ADDR   (0x350)
 
#define U_L_PCI_PMON_CTR3_ADDR   (0x330)
 
#define U_L_PCI_PMON_CTR2_ADDR   (0x328)
 
#define U_L_PCI_PMON_CTR1_ADDR   (0x320)
 
#define U_L_PCI_PMON_CTR0_ADDR   (0x318)
 
#define ICX_UPI_PCI_PMON_BOX_CTL_ADDR   (0x318)
 
#define ICX_UPI_PCI_PMON_CTL3_ADDR   (0x368)
 
#define ICX_UPI_PCI_PMON_CTL2_ADDR   (0x360)
 
#define ICX_UPI_PCI_PMON_CTL1_ADDR   (0x358)
 
#define ICX_UPI_PCI_PMON_CTL0_ADDR   (0x350)
 
#define ICX_UPI_PCI_PMON_CTR3_ADDR   (0x338)
 
#define ICX_UPI_PCI_PMON_CTR2_ADDR   (0x330)
 
#define ICX_UPI_PCI_PMON_CTR1_ADDR   (0x328)
 
#define ICX_UPI_PCI_PMON_CTR0_ADDR   (0x320)
 
#define UCLK_FIXED_CTR_ADDR   (0x704)
 
#define UCLK_FIXED_CTL_ADDR   (0x703)
 
#define UBOX_MSR_PMON_CTL0_ADDR   (0x705)
 
#define UBOX_MSR_PMON_CTL1_ADDR   (0x706)
 
#define UBOX_MSR_PMON_CTR0_ADDR   (0x709)
 
#define UBOX_MSR_PMON_CTR1_ADDR   (0x70a)
 
#define JKTIVT_PCU_MSR_PMON_CTR3_ADDR   (0x0C39)
 
#define JKTIVT_PCU_MSR_PMON_CTR2_ADDR   (0x0C38)
 
#define JKTIVT_PCU_MSR_PMON_CTR1_ADDR   (0x0C37)
 
#define JKTIVT_PCU_MSR_PMON_CTR0_ADDR   (0x0C36)
 
#define JKTIVT_PCU_MSR_PMON_BOX_FILTER_ADDR   (0x0C34)
 
#define JKTIVT_PCU_MSR_PMON_CTL3_ADDR   (0x0C33)
 
#define JKTIVT_PCU_MSR_PMON_CTL2_ADDR   (0x0C32)
 
#define JKTIVT_PCU_MSR_PMON_CTL1_ADDR   (0x0C31)
 
#define JKTIVT_PCU_MSR_PMON_CTL0_ADDR   (0x0C30)
 
#define JKTIVT_PCU_MSR_PMON_BOX_CTL_ADDR   (0x0C24)
 
#define HSX_PCU_MSR_PMON_CTR3_ADDR   (0x071A)
 
#define HSX_PCU_MSR_PMON_CTR2_ADDR   (0x0719)
 
#define HSX_PCU_MSR_PMON_CTR1_ADDR   (0x0718)
 
#define HSX_PCU_MSR_PMON_CTR0_ADDR   (0x0717)
 
#define HSX_PCU_MSR_PMON_BOX_FILTER_ADDR   (0x0715)
 
#define HSX_PCU_MSR_PMON_CTL3_ADDR   (0x0714)
 
#define HSX_PCU_MSR_PMON_CTL2_ADDR   (0x0713)
 
#define HSX_PCU_MSR_PMON_CTL1_ADDR   (0x0712)
 
#define HSX_PCU_MSR_PMON_CTL0_ADDR   (0x0711)
 
#define HSX_PCU_MSR_PMON_BOX_CTL_ADDR   (0x0710)
 
#define UNC_PMON_UNIT_CTL_RST_CONTROL   (1 << 0)
 
#define UNC_PMON_UNIT_CTL_RST_COUNTERS   (1 << 1)
 
#define UNC_PMON_UNIT_CTL_FRZ   (1 << 8)
 
#define UNC_PMON_UNIT_CTL_FRZ_EN   (1 << 16)
 
#define UNC_PMON_UNIT_CTL_RSV   ((1 << 16) + (1 << 17))
 
#define UNC_PMON_UNIT_CTL_VALID_BITS_MASK   ((1 << 17) - 1)
 
#define MC_CH_PCI_PMON_FIXED_CTL_RST   (1 << 19)
 
#define MC_CH_PCI_PMON_FIXED_CTL_EN   (1 << 22)
 
#define EDC_CH_PCI_PMON_FIXED_CTL_EN   (1 << 0)
 
#define MC_CH_PCI_PMON_CTL_EVENT(x)   (x << 0)
 
#define MC_CH_PCI_PMON_CTL_UMASK(x)   (x << 8)
 
#define MC_CH_PCI_PMON_CTL_RST   (1 << 17)
 
#define MC_CH_PCI_PMON_CTL_EDGE_DET   (1 << 18)
 
#define MC_CH_PCI_PMON_CTL_EN   (1 << 22)
 
#define MC_CH_PCI_PMON_CTL_INVERT   (1 << 23)
 
#define MC_CH_PCI_PMON_CTL_THRESH(x)   (x << 24UL)
 
#define Q_P_PCI_PMON_CTL_EVENT(x)   (x << 0)
 
#define Q_P_PCI_PMON_CTL_UMASK(x)   (x << 8)
 
#define Q_P_PCI_PMON_CTL_RST   (1 << 17)
 
#define Q_P_PCI_PMON_CTL_EDGE_DET   (1 << 18)
 
#define Q_P_PCI_PMON_CTL_EVENT_EXT   (1 << 21)
 
#define Q_P_PCI_PMON_CTL_EN   (1 << 22)
 
#define Q_P_PCI_PMON_CTL_INVERT   (1 << 23)
 
#define Q_P_PCI_PMON_CTL_THRESH(x)   (x << 24UL)
 
#define PCU_MSR_PMON_BOX_FILTER_BAND_0(x)   (x << 0)
 
#define PCU_MSR_PMON_BOX_FILTER_BAND_1(x)   (x << 8)
 
#define PCU_MSR_PMON_BOX_FILTER_BAND_2(x)   (x << 16)
 
#define PCU_MSR_PMON_BOX_FILTER_BAND_3(x)   (x << 24)
 
#define PCU_MSR_PMON_CTL_EVENT(x)   (x << 0)
 
#define PCU_MSR_PMON_CTL_OCC_SEL(x)   (x << 14)
 
#define PCU_MSR_PMON_CTL_RST   (1 << 17)
 
#define PCU_MSR_PMON_CTL_EDGE_DET   (1 << 18)
 
#define PCU_MSR_PMON_CTL_EXTRA_SEL   (1 << 21)
 
#define PCU_MSR_PMON_CTL_EN   (1 << 22)
 
#define PCU_MSR_PMON_CTL_INVERT   (1 << 23)
 
#define PCU_MSR_PMON_CTL_THRESH(x)   (x << 24UL)
 
#define PCU_MSR_PMON_CTL_OCC_INVERT   (1UL << 30UL)
 
#define PCU_MSR_PMON_CTL_OCC_EDGE_DET   (1UL << 31UL)
 
#define JKT_C0_MSR_PMON_CTR3   0x0D19
 
#define JKT_C0_MSR_PMON_CTR2   0x0D18
 
#define JKT_C0_MSR_PMON_CTR1   0x0D17
 
#define JKT_C0_MSR_PMON_CTR0   0x0D16
 
#define JKT_C0_MSR_PMON_BOX_FILTER   0x0D14
 
#define JKT_C0_MSR_PMON_CTL3   0x0D13
 
#define JKT_C0_MSR_PMON_CTL2   0x0D12
 
#define JKT_C0_MSR_PMON_CTL1   0x0D11
 
#define JKT_C0_MSR_PMON_CTL0   0x0D10
 
#define JKT_C0_MSR_PMON_BOX_CTL   0x0D04
 
#define JKTIVT_CBO_MSR_STEP   0x0020
 
#define IVT_C0_MSR_PMON_BOX_FILTER1   0x0D1A
 
#define HSX_C0_MSR_PMON_CTR3   0x0E0B
 
#define HSX_C0_MSR_PMON_CTR2   0x0E0A
 
#define HSX_C0_MSR_PMON_CTR1   0x0E09
 
#define HSX_C0_MSR_PMON_CTR0   0x0E08
 
#define HSX_C0_MSR_PMON_BOX_FILTER1   0x0E06
 
#define HSX_C0_MSR_PMON_BOX_FILTER   0x0E05
 
#define HSX_C0_MSR_PMON_CTL3   0x0E04
 
#define HSX_C0_MSR_PMON_CTL2   0x0E03
 
#define HSX_C0_MSR_PMON_CTL1   0x0E02
 
#define HSX_C0_MSR_PMON_CTL0   0x0E01
 
#define HSX_C0_MSR_PMON_BOX_STATUS   0x0E07
 
#define HSX_C0_MSR_PMON_BOX_CTL   0x0E00
 
#define HSX_CBO_MSR_STEP   0x0010
 
#define KNL_CHA_MSR_STEP   0x000C
 
#define KNL_CHA0_MSR_PMON_BOX_CTRL   0x0E00
 
#define KNL_CHA0_MSR_PMON_EVT_SEL0   0x0E01
 
#define KNL_CHA0_MSR_PMON_EVT_SEL1   0x0E02
 
#define KNL_CHA0_MSR_PMON_EVT_SEL2   0x0E03
 
#define KNL_CHA0_MSR_PMON_EVT_SEL3   0x0E04
 
#define KNL_CHA0_MSR_PMON_BOX_CTL   0x0E05
 
#define KNL_CHA0_MSR_PMON_BOX_CTL1   0x0E06
 
#define KNL_CHA0_MSR_PMON_BOX_STATUS   0x0E07
 
#define KNL_CHA0_MSR_PMON_CTR0   0x0E08
 
#define KNL_CHA0_MSR_PMON_CTR1   0x0E09
 
#define KNL_CHA0_MSR_PMON_CTR2   0x0E0A
 
#define KNL_CHA0_MSR_PMON_CTR3   0x0E0B
 
#define SERVER_CHA_MSR_PMON_CTL0_OFFSET   (1)
 
#define SERVER_CHA_MSR_PMON_BOX_FILTER_OFFSET   (5)
 
#define SERVER_CHA_MSR_PMON_CTR0_OFFSET   (8)
 
#define CBO_MSR_PMON_CTL_EVENT(x)   (x << 0)
 
#define CBO_MSR_PMON_CTL_UMASK(x)   (x << 8)
 
#define CBO_MSR_PMON_CTL_RST   (1 << 17)
 
#define CBO_MSR_PMON_CTL_EDGE_DET   (1 << 18)
 
#define CBO_MSR_PMON_CTL_TID_EN   (1 << 19)
 
#define CBO_MSR_PMON_CTL_EN   (1 << 22)
 
#define CBO_MSR_PMON_CTL_INVERT   (1 << 23)
 
#define CBO_MSR_PMON_CTL_THRESH(x)   (x << 24UL)
 
#define UNC_PMON_CTL_UMASK_EXT(x)   (uint64(x) << 32ULL)
 
#define JKT_CBO_MSR_PMON_BOX_FILTER_OPC(x)   (x << 23UL)
 
#define IVTHSX_CBO_MSR_PMON_BOX_FILTER1_OPC(x)   (x << 20UL)
 
#define BDX_CBO_MSR_PMON_BOX_GET_OPC0(x)   ((x >> 20) & 0x3FF)
 
#define BDX_CBO_MSR_PMON_BOX_GET_FLT(x)   ((x >> 0x10) & 0x1)
 
#define BDX_CBO_MSR_PMON_BOX_GET_TID(x)   ((x >> 0x11) & 0x1)
 
#define SKX_CHA_MSR_PMON_BOX_FILTER1_REM(x)   (x << 0UL)
 
#define SKX_CHA_MSR_PMON_BOX_FILTER1_LOC(x)   (x << 1UL)
 
#define SKX_CHA_MSR_PMON_BOX_FILTER1_NM(x)   (x << 4UL)
 
#define SKX_CHA_MSR_PMON_BOX_FILTER1_NOT_NM(x)   (x << 5UL)
 
#define SKX_CHA_MSR_PMON_BOX_FILTER1_OPC0(x)   ((x) << 9UL)
 
#define SKX_CHA_MSR_PMON_BOX_FILTER1_OPC1(x)   ((x) << 19UL)
 
#define SKX_CHA_MSR_PMON_BOX_FILTER1_NC(x)   (x << 30UL)
 
#define SKX_CHA_MSR_PMON_BOX_FILTER1_RSV(x)   (x << 2UL)
 
#define SKX_CHA_MSR_PMON_BOX_GET_OPC0(x)   ((x >> 9) & 0x3FF)
 
#define SKX_CHA_MSR_PMON_BOX_GET_NC(x)   ((x >> 0x1e) & 0x1)
 
#define SKX_CHA_TOR_INSERTS_UMASK_IRQ(x)   (x << 0)
 
#define SKX_CHA_TOR_INSERTS_UMASK_PRQ(x)   (x << 2)
 
#define SKX_CHA_TOR_INSERTS_UMASK_HIT(x)   (x << 4)
 
#define SKX_CHA_TOR_INSERTS_UMASK_MISS(x)   (x << 5)
 
#define ICX_CHA_UMASK_EXT(x)   (x << 32UL)
 
#define SKX_IIO_CBDMA_UNIT_STATUS   (0x0A47)
 
#define SKX_IIO_CBDMA_UNIT_CTL   (0x0A40)
 
#define SKX_IIO_CBDMA_CTR0   (0x0A41)
 
#define SKX_IIO_CBDMA_CLK   (0x0A45)
 
#define SKX_IIO_CBDMA_CTL0   (0x0A48)
 
#define SKX_IIO_PM_REG_STEP   (0x0020)
 
#define ICX_IIO_CBDMA_UNIT_STATUS   (0x0A57)
 
#define ICX_IIO_CTL_REG_OFFSET   (0x0008)
 
#define ICX_IIO_CTR_REG_OFFSET   (0x0001)
 
#define ICX_IRP_CTL_REG_OFFSET   (0x0003)
 
#define ICX_IRP_CTR_REG_OFFSET   (0x0001)
 
#define SNR_IRP_CTL_REG_OFFSET   (0x0008)
 
#define SNR_IRP_CTR_REG_OFFSET   (0x0001)
 
#define SKX_IRP_CTL_REG_OFFSET   (0x0003)
 
#define SKX_IRP_CTR_REG_OFFSET   (0x0001)
 
#define SNR_IIO_CBDMA_UNIT_STATUS   (0x1E07)
 
#define SNR_IIO_CBDMA_UNIT_CTL   (0x1E00)
 
#define SNR_IIO_CBDMA_CTR0   (0x1E01)
 
#define SNR_IIO_CBDMA_CTL0   (0x1E08)
 
#define SNR_IIO_PM_REG_STEP   (0x0010)
 
#define IIO_MSR_PMON_CTL_EVENT(x)   ((x) << 0)
 
#define IIO_MSR_PMON_CTL_UMASK(x)   ((x) << 8)
 
#define IIO_MSR_PMON_CTL_RST   (1 << 17)
 
#define IIO_MSR_PMON_CTL_EDGE_DET   (1 << 18)
 
#define IIO_MSR_PMON_CTL_OV_EN   (1 << 20)
 
#define IIO_MSR_PMON_CTL_EN   (1 << 22)
 
#define IIO_MSR_PMON_CTL_INVERT   (1 << 23)
 
#define IIO_MSR_PMON_CTL_THRESH(x)   ((x) << 24ULL)
 
#define IIO_MSR_PMON_CTL_CH_MASK(x)   ((x) << 36ULL)
 
#define IIO_MSR_PMON_CTL_FC_MASK(x)   ((x) << 44ULL)
 
#define ICX_IIO_MSR_PMON_CTL_EVENT(x)   ((x) << 0)
 
#define ICX_IIO_MSR_PMON_CTL_UMASK(x)   ((x) << 8)
 
#define ICX_IIO_MSR_PMON_CTL_RST   (1 << 17)
 
#define ICX_IIO_MSR_PMON_CTL_EDGE_DET   (1 << 18)
 
#define ICX_IIO_MSR_PMON_CTL_OV_EN   (1 << 20)
 
#define ICX_IIO_MSR_PMON_CTL_EN   (1 << 22)
 
#define ICX_IIO_MSR_PMON_CTL_INVERT   (1 << 23)
 
#define ICX_IIO_MSR_PMON_CTL_THRESH(x)   ((x) << 24ULL)
 
#define ICX_IIO_MSR_PMON_CTL_CH_MASK(x)   ((x) << 36ULL)
 
#define ICX_IIO_MSR_PMON_CTL_FC_MASK(x)   ((x) << 48ULL)
 
#define M2M_PCI_PMON_CTL_EVENT(x)   ((x) << 0)
 
#define M2M_PCI_PMON_CTL_UMASK(x)   ((x) << 8)
 
#define M2M_PCI_PMON_CTL_RST   (1 << 17)
 
#define M2M_PCI_PMON_CTL_EDGE_DET   (1 << 18)
 
#define M2M_PCI_PMON_CTL_OV_EN   (1 << 20)
 
#define M2M_PCI_PMON_CTL_EN   (1 << 22)
 
#define M2M_PCI_PMON_CTL_INVERT   (1 << 23)
 
#define M2M_PCI_PMON_CTL_THRESH(x)   ((x) << 24ULL)
 
#define HA_PCI_PMON_CTL_EVENT(x)   ((x) << 0)
 
#define HA_PCI_PMON_CTL_UMASK(x)   ((x) << 8)
 
#define HA_PCI_PMON_CTL_RST   (1 << 17)
 
#define HA_PCI_PMON_CTL_EDGE_DET   (1 << 18)
 
#define HA_PCI_PMON_CTL_OV_EN   (1 << 20)
 
#define HA_PCI_PMON_CTL_EN   (1 << 22)
 
#define HA_PCI_PMON_CTL_INVERT   (1 << 23)
 
#define HA_PCI_PMON_CTL_THRESH(x)   ((x) << 24ULL)
 
#define UCLK_FIXED_CTL_OV_EN   (1 << 20)
 
#define UCLK_FIXED_CTL_EN   (1 << 22)
 
#define MSR_PACKAGE_THERM_STATUS   (0x01B1)
 
#define MSR_IA32_THERM_STATUS   (0x019C)
 
#define PCM_INVALID_THERMAL_HEADROOM   ((std::numeric_limits<int32>::min)())
 
#define MSR_IA32_BIOS_SIGN_ID   (0x8B)
 
#define MSR_DRAM_ENERGY_STATUS   (0x0619)
 
#define MSR_PKG_C2_RESIDENCY   (0x60D)
 
#define MSR_PKG_C3_RESIDENCY   (0x3F8)
 
#define MSR_PKG_C6_RESIDENCY   (0x3F9)
 
#define MSR_PKG_C7_RESIDENCY   (0x3FA)
 
#define MSR_CORE_C3_RESIDENCY   (0x3FC)
 
#define MSR_CORE_C6_RESIDENCY   (0x3FD)
 
#define MSR_CORE_C7_RESIDENCY   (0x3FE)
 
#define MSR_PERF_GLOBAL_INUSE   (0x392)
 
#define MSR_IA32_SPEC_CTRL   (0x48)
 
#define MSR_IA32_ARCH_CAPABILITIES   (0x10A)
 
#define MSR_TSX_FORCE_ABORT   (0x10f)
 
#define MSR_PERF_CAPABILITIES   (0x345)
 

Typedefs

typedef unsigned long long pcm::uint64
 
typedef signed long long pcm::int64
 
typedef unsigned int pcm::uint32
 
typedef signed int pcm::int32
 

Functions

std::ostream & pcm::operator<< (std::ostream &o, const FixedEventControlRegister &reg)
 

Variables

constexpr auto pcm::IA32_PERF_GLOBAL_STATUS = 0x38E
 
constexpr auto pcm::IA32_PERF_GLOBAL_OVF_CTRL = 0x390
 
constexpr auto pcm::MSR_LOAD_LATENCY = 0x3F6
 
constexpr auto pcm::MSR_FRONTEND = 0x3F7
 
constexpr auto pcm::LOAD_LATENCY_EVTNR = 0xcd
 
constexpr auto pcm::LOAD_LATENCY_UMASK = 0x01
 
constexpr auto pcm::FRONTEND_EVTNR = 0xC6
 
constexpr auto pcm::FRONTEND_UMASK = 0x01
 
constexpr auto pcm::SKX_M3UPI_PORT0_REGISTER_DEV_ADDR = (0x12)
 
constexpr auto pcm::SKX_M3UPI_PORT0_REGISTER_FUNC_ADDR = (1)
 
constexpr auto pcm::SKX_M3UPI_PORT1_REGISTER_DEV_ADDR = (0x12)
 
constexpr auto pcm::SKX_M3UPI_PORT1_REGISTER_FUNC_ADDR = (2)
 
constexpr auto pcm::SKX_M3UPI_PORT2_REGISTER_DEV_ADDR = (0x12)
 
constexpr auto pcm::SKX_M3UPI_PORT2_REGISTER_FUNC_ADDR = (5)
 
constexpr auto pcm::CPX_M3UPI_PORT0_REGISTER_DEV_ADDR = (0x12)
 
constexpr auto pcm::CPX_M3UPI_PORT0_REGISTER_FUNC_ADDR = (1)
 
constexpr auto pcm::CPX_M3UPI_PORT1_REGISTER_DEV_ADDR = (0x12)
 
constexpr auto pcm::CPX_M3UPI_PORT1_REGISTER_FUNC_ADDR = (2)
 
constexpr auto pcm::CPX_M3UPI_PORT2_REGISTER_DEV_ADDR = (0x13)
 
constexpr auto pcm::CPX_M3UPI_PORT2_REGISTER_FUNC_ADDR = (1)
 
constexpr auto pcm::CPX_M3UPI_PORT3_REGISTER_DEV_ADDR = (0x13)
 
constexpr auto pcm::CPX_M3UPI_PORT3_REGISTER_FUNC_ADDR = (2)
 
constexpr auto pcm::CPX_M3UPI_PORT4_REGISTER_DEV_ADDR = (0x14)
 
constexpr auto pcm::CPX_M3UPI_PORT4_REGISTER_FUNC_ADDR = (1)
 
constexpr auto pcm::CPX_M3UPI_PORT5_REGISTER_DEV_ADDR = (0x14)
 
constexpr auto pcm::CPX_M3UPI_PORT5_REGISTER_FUNC_ADDR = (2)
 
constexpr auto pcm::ICX_M3UPI_PORT0_REGISTER_DEV_ADDR = (5)
 
constexpr auto pcm::ICX_M3UPI_PORT1_REGISTER_DEV_ADDR = (6)
 
constexpr auto pcm::ICX_M3UPI_PORT2_REGISTER_DEV_ADDR = (7)
 
constexpr auto pcm::ICX_M3UPI_PORT0_REGISTER_FUNC_ADDR = (1)
 
constexpr auto pcm::ICX_M3UPI_PORT1_REGISTER_FUNC_ADDR = (1)
 
constexpr auto pcm::ICX_M3UPI_PORT2_REGISTER_FUNC_ADDR = (1)
 
constexpr auto pcm::M3UPI_PCI_PMON_BOX_CTL_ADDR = (0xF4)
 
constexpr auto pcm::M3UPI_PCI_PMON_CTL0_ADDR = (0xD8)
 
constexpr auto pcm::M3UPI_PCI_PMON_CTL1_ADDR = (0xDC)
 
constexpr auto pcm::M3UPI_PCI_PMON_CTL2_ADDR = (0xE0)
 
constexpr auto pcm::M3UPI_PCI_PMON_CTR0_ADDR = (0xA0)
 
constexpr auto pcm::M3UPI_PCI_PMON_CTR1_ADDR = (0xA8)
 
constexpr auto pcm::M3UPI_PCI_PMON_CTR2_ADDR = (0xB0)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_BOX_CTL_ADDR = (0xA0)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_CTL0_ADDR = (0xD8)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_CTL1_ADDR = (0xDC)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_CTL2_ADDR = (0xE0)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_CTL3_ADDR = (0xE4)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_CTR0_ADDR = (0xA8)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_CTR1_ADDR = (0xB0)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_CTR2_ADDR = (0xB8)
 
constexpr auto pcm::ICX_M3UPI_PCI_PMON_CTR3_ADDR = (0xC0)
 
constexpr auto pcm::MSR_UNCORE_PMON_GLOBAL_CTL = 0x700
 
constexpr auto pcm::IVT_MSR_UNCORE_PMON_GLOBAL_CTL = 0x0C00
 
constexpr auto pcm::JKTIVT_UCLK_FIXED_CTR_ADDR = (0x0C09)
 
constexpr auto pcm::JKTIVT_UCLK_FIXED_CTL_ADDR = (0x0C08)
 
constexpr auto pcm::JKTIVT_UBOX_MSR_PMON_CTL0_ADDR = (0x0C10)
 
constexpr auto pcm::JKTIVT_UBOX_MSR_PMON_CTL1_ADDR = (0x0C11)
 
constexpr auto pcm::JKTIVT_UBOX_MSR_PMON_CTR0_ADDR = (0x0C16)
 
constexpr auto pcm::JKTIVT_UBOX_MSR_PMON_CTR1_ADDR = (0x0C17)
 

Detailed Description

Internal type and constant definitions.

Macro Definition Documentation

◆ XPF_MC_CH_PCI_PMON_BOX_CTL_ADDR

#define XPF_MC_CH_PCI_PMON_BOX_CTL_ADDR   (0x0F4)

XPF_ for Xeons: SNB, IVT, HSX, BDW, etc. KNX_ for Xeon Phi (Knights *) processors