<global>
clock=5000
</global>

<metric>
name=avg_freq
units=mhz
level=core
max=7000
log_invalid=yes
eq=msr_30a msr_30b / IA_MAX_NON_TURBO_FREQ_MHZ *
</metric>

<metric>
name=CPI
level=core
eq= msr_10 msr_309 /
</metric>

<metric>
name=pkg_energy_units
units=joules
freqtype=meta
eq=0.5 msr_606 8 >> 0x1f & POW
</metric>


<metric>
name=power_units
units=watts
freqtype=meta
eq=0.5 msr_606 0xf & POW
</metric>


<metric>
name=rap
units=watts 
level=package 
max=300
eq=msr_611 pkg_energy_units * msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 *
</metric>


<metric>
name=temperature
units=centigrade
level=core
max=120
eq=  0 tj_max msr_i_19c 16 >> 0x7f & - msr_i_19c 31 >> 1 &  ?:
</metric>

<metric>
name=C0
units=percent
level=core
max=102
eq=msr_30b msr_10 / 100 *
</metric>

<metric>
name=memory_read_bw
valid_cpu_signatures=0x706E 0x706D
units=MBps
max=50000
eq=mmio_5050 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_write_bw
valid_cpu_signatures=0x706E 0x706D
units=MBps
max=50000
eq=mmio_5054 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_gt_bw
valid_cpu_signatures=0x706E 0x706D
units=MBps
eq=mmio_5040 64 * msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_ia_bw
valid_cpu_signatures=0x706E 0x706D
units=MBps
eq=mmio_5044 64 * msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_io_bw
valid_cpu_signatures=0x706E 0x706D
units=MBps
eq=mmio_5048 64 * msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_mc0_read_bw
valid_cpu_signatures=0x806C 0x806D 0x9067 0x906A 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
units=MBps
max=50000
eq=mmio_5058 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_mc0_write_bw
valid_cpu_signatures=0x806C 0x806D 0x9067 0x906A 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
units=MBps
max=50000
eq=mmio_50A0 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_mc1_read_bw
valid_cpu_signatures=0x806C 0x806D 0x9067 0x906A 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
units=MBps
max=50000
eq=mmio_0x15058 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_mc1_write_bw
valid_cpu_signatures=0x806C 0x806D 0x9067 0x906A 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
units=MBps
max=50000
eq=mmio_0x150A0 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>



<metric>
name=config_tdp_num_levels
freqtype=meta
eq= msr_ce 33 >> 0x3 & 1 +
</metric>

<metric>
name=config_tdp_nominal
freqtype=meta
units=mhz
eq= msr_648 100 *
</metric>

<metric>
name=config_tdp_level1
freqtype=meta
units=watts
eq= msr_649 0x7FFF & power_units  *
</metric>

<metric>
name=config_tdp_level2
freqtype=meta
units=watts
eq= msr_64a 0x7FFF & power_units  *
</metric>


<metric>
name=basetdp
freqtype=meta
units=watts
eq= msr_614 0x7FFF & power_units *
</metric>


<metric>
name=psys_pl1
freqtype=meta
units=watts
eq= msr_65c 15 >> 1 &  msr_65c 0x7FFF & power_units * *
</metric>

<metric>
name=psys_pl2
freqtype=meta
units=watts
eq=msr_65c 47 >> 1 &  msr_65c 32 >> 0x7FFF & power_units * *
</metric>

<metric>
name=psys_rap
units=watts
max=300
eq=msr_64d pkg_energy_units *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 *
</metric>

<metric>
name=hwp_support
freqtype=meta
valid_zero_value=1
eq=msr_770 1 &
</metric>


//  Creating GTMM PCIBAR Address space as below
<pcibar>
name=gtmmaddr
bus=0
device=0
function=0x2
offset=0x10
mask=0xFFF00000
</pcibar>


// Created a new metric using GTMM address space
<metric>
name=gt_c0_residency
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x706D
max=102
eq=100 gtmmaddr_138108 1.28 * 1000 / msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 /  / 100 * -
valid_zero_value=1
</metric>


//Gen 6, 7, 8, 9, 10
<metric>
name=GT_INSTANT_FREQ
units=MHZ
valid_zero_value=1
max=3000
eq=mmio_i_5948 17 >> 0x3FE & 50 * 3 /
valid_cpu_signatures=0x506E 0x406E 0x806E 0x906E 0x6066 0x6067 0x706D
</metric>

//Gen 11, 12, 13
<metric>
name=GT_INSTANT_FREQ
units=MHZ
valid_zero_value=1
max=3000
eq=mmio_i_5948 20 >> 0x1FF0 & 50 * 3 /
valid_cpu_signatures=0xB06A 0x906A 0x9067 0x806C 0x806D 0xA067 0xB06E 0xA06A 0xB067 0xB06F 0xA07E 0xA07A 0xA077 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
</metric>

<metric>
name=EPP
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
valid_zero_value=1
max=100
eq=msr_i_774 24 >> 0xFF & 1 + 100 * 0xFF /
</metric>

<metric>
name=C2_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x706E 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xb06e 0xb06a 0xb067 0xb06f 0xa06a 0xa06c 0xb06d 0xB065 0xC066 0xC06A 0xC065
level=package
valid_zero_value=1
max=102
eq=msr_60d msr_10 / 100 *
</metric>

<metric>
name=C3_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package
valid_zero_value=1
max=102
eq=msr_3f8 msr_10 / 100 *
</metric>

<metric>
name=C6_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package
valid_zero_value=1
max=102
eq=msr_3f9 msr_10 / 100 *
</metric>

<metric>
name=C7_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package
valid_zero_value=1
max=102
eq=msr_3fa msr_10 / 100 *
</metric>

<metric>
name=C8_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package
valid_zero_value=1
max=102
eq=msr_630 msr_10 / 100 *
</metric>

<metric>
name=C9_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package
valid_zero_value=1
max=102
eq=msr_631 msr_10 / 100 *
</metric>

<metric>
name=C10_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package
valid_zero_value=1
max=102
eq=msr_632 msr_10 / 100 *
</metric>


<metric>
name=C1_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=core
valid_zero_value=1
max=102
eq=msr_660 msr_10 / 100 *
</metric>


<metric>
name=C3_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=core
valid_zero_value=1
max=102
eq=msr_3FC msr_10 / 100 *
</metric>

<metric>
name=C6_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=core
valid_zero_value=1
max=102
eq=msr_3FD msr_10 / 100 *
</metric>

<metric>
name=C7_RESIDENCY
units=percent
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=core
valid_zero_value=1
max=102
eq=msr_3FE msr_10 / 100 *
</metric>


<metric>
name=ia_power
units=watts 
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package 
max=200
eq=msr_639 pkg_energy_units * msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 *
</metric>

<metric>
name=gt_power
valid_zero_value=1
units=watts 
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package 
max=200
eq=msr_641 pkg_energy_units * msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 *
</metric>

<metric>
name=dram_power
units=watts 
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package 
max=100
eq=msr_619 pkg_energy_units * msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 *
</metric>

<metric>
name=pkg_power_minus_ia_and_gt
units=watts 
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package
valid_zero_value=1
max=200
eq= msr_611 msr_639 - msr_641 - pkg_energy_units * msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 *
</metric>

<metric>
name=ANY_GFXE_C0
units=residency
valid_cpu_signatures=0x406E 0x506E 0x806E 0x906E 0x6066 0x6067 0x806C 0x706D 0x806D 0x9067 0x906A 0xA067 0xA07E 0xA07A 0xA077 0xB06E 0xB067 0xB06F 0xB06A 0xA06A 0xA06C 0xB06D 0xB065 0xC066 0xC06A 0xC065
level=package
max=102
eq=msr_65A msr_10 / 100 *
</metric>


<metric>
name=pl1_enable_status
freqtype=meta
eq=msr_i_610 15 >> 1 &
</metric>

<metric>
name=pl2_enable_status
freqtype=meta
eq=msr_i_610 47 >> 1 &
</metric>

<metric>
name=pl3_enable_status
freqtype=meta
eq=msr_i_615 15 >> 1 & 0 *
</metric>

<metric>
name=pl1_limit
freqtype=meta
units=watts
eq=msr_i_610 0x7FFF & power_units *
</metric>

<metric>
name=pl2_limit
freqtype=meta
units=watts
eq= msr_i_610 32 >> 0x7FFF & power_units *
</metric>


<metric>
name=pl3_limit
freqtype=meta
units=watts
eq=msr_i_615 0x7FFF & power_units *
</metric>


<metric>
name=pl4_limit
freqtype=meta
units=watts
eq=msr_i_601 0x1FFF & power_units *
</metric>


<metric>
name=IA_INSTANT_FREQ
units=Mhz
valid_cpu_signatures=0x806C 0x806D
level=thread
valid_zero_value=1
eq= msr_i_198 8 >> 0xff & 100 *
</metric>

<metric>
name=platform_id
freqtype=meta
valid_zero_value=1
eq=msr_i_17 50 >> 0x7 &
</metric>

<metric>
name=cl_control
freqtype=meta
log_invalid=yes
dctl_enable=yes
eq=msr_i_1f1
</metric>

<metric>
name=ia32_overclocking_status
valid_cpu_signatures=0x9067 0x906a 0xA06A 0xb06e 0xb067 0xb06f 0xb06a 0xa06c 0xb06d 0xb065 0xc066 0xc06a 0xc065
freqtype=meta
eq=msr_i_195
</metric>

<metric>
name=ia32_arch_capabilities
valid_cpu_signatures=0x9067 0x906a 0xA06A 0xb06e 0xb067 0xb06f 0xb06a 0xa06c 0xb06d 0xb065 0xc066 0xc06a 0xc065
freqtype=meta
eq=msr_i_10A
</metric>

<metric>
name=memory_mc0_read_bw
valid_cpu_signatures=0x806D 0x9067 0x906A 0xb06e 0xb06a 0xb067 0xb06f 0xa06a 0xa06c 0xb06d 0xb065 0xc066 0xc06a 0xc065
units=MBps
max=200000
eq=mmio_D858 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_mc0_write_bw
valid_cpu_signatures=0x806D 0x9067 0x906A 0xb06e 0xb06a 0xb067 0xb06f 0xa06a 0xa06c 0xb06d 0xb065 0xc066 0xc06a 0xc065
units=MBps
max=200000
eq=mmio_D8A0 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_mc1_read_bw
valid_cpu_signatures=0x806D 0x9067 0x906A 0xb06e 0xb06a 0xb067 0xb06f 0xa06a 0xa06c 0xb06d 0xb065 0xc066 0xc06a 0xc065
units=MBps
max=200000
eq=mmio_0x1D858 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

<metric>
name=memory_mc1_write_bw
valid_cpu_signatures=0x806D 0x9067 0x906A 0xb06e 0xb06a 0xb067 0xb06f 0xa06a 0xa06c 0xb06d 0xb065 0xc066 0xc06a 0xc065
units=MBps
max=200000
eq=mmio_0x1D8A0 64 *  msr_10 IA_MAX_NON_TURBO_FREQ_MHZ / 1000 / / 1000 * 1000000 /
</metric>

