struct _PPM_ENGINE_SETTINGS { union _PPM_POLICY_SETTINGS_MASK ExplicitSetting[2];/* 0x0 16 */ unsigned char ThrottlingPolicy;/* 0x10 1 */ /* 3 bytes padding */ unsigned long PerfTimeCheck;/* 0x14 4 */ unsigned char PerfHistoryCount[2];/* 0x18 2 */ unsigned char PerfMinPolicy[2];/* 0x1a 2 */ unsigned char PerfMaxPolicy[2];/* 0x1c 2 */ unsigned char PerfDecreaseTime[2];/* 0x1e 2 */ unsigned char PerfIncreaseTime[2];/* 0x20 2 */ unsigned char PerfDecreasePolicy[2];/* 0x22 2 */ unsigned char PerfIncreasePolicy[2];/* 0x24 2 */ unsigned char PerfDecreaseThreshold[2];/* 0x26 2 */ unsigned char PerfIncreaseThreshold[2];/* 0x28 2 */ /* 2 bytes padding */ unsigned long PerfFrequencyCap[2];/* 0x2c 8 */ unsigned long PerfBoostPolicy;/* 0x34 4 */ unsigned long PerfBoostMode;/* 0x38 4 */ unsigned long PerfReductionTolerance;/* 0x3c 4 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned long EnergyPerfPreference[2];/* 0x40 8 */ unsigned long AutonomousActivityWindow;/* 0x48 4 */ unsigned char AutonomousPreference;/* 0x4c 1 */ unsigned char LatencyHintPerf[2];/* 0x4d 2 */ unsigned char LatencyHintUnpark[2];/* 0x4f 2 */ /* 3 bytes padding */ unsigned long ResponsivenessDisableThreshold[2];/* 0x54 8 */ unsigned long ResponsivenessEnableThreshold[2];/* 0x5c 8 */ unsigned char ResponsivenessDisableTime[2];/* 0x64 2 */ unsigned char ResponsivenessEnableTime[2];/* 0x66 2 */ unsigned long ResponsivenessEppCeiling[2];/* 0x68 8 */ unsigned long ResponsivenessPerfFloor[2];/* 0x70 8 */ unsigned char DutyCycling;/* 0x78 1 */ unsigned char ParkingPerfState[2];/* 0x79 2 */ unsigned char DistributeUtility;/* 0x7b 1 */ unsigned char CoreParkingOverUtilizationThreshold;/* 0x7c 1 */ unsigned char CoreParkingConcurrencyThreshold;/* 0x7d 1 */ unsigned char CoreParkingHeadroomThreshold;/* 0x7e 1 */ unsigned char CoreParkingDistributionThreshold;/* 0x7f 1 */ /* ── cacheline 2 boundary (128 bytes) ── */ unsigned char CoreParkingDecreasePolicy;/* 0x80 1 */ unsigned char CoreParkingIncreasePolicy;/* 0x81 1 */ /* 2 bytes padding */ unsigned long CoreParkingDecreaseTime;/* 0x84 4 */ unsigned long CoreParkingIncreaseTime;/* 0x88 4 */ unsigned char CoreParkingMinCores[2];/* 0x8c 2 */ unsigned char CoreParkingMaxCores[2];/* 0x8e 2 */ unsigned long SoftParkLatency;/* 0x90 4 */ unsigned char AllowScaling;/* 0x94 1 */ unsigned char IdleDisabled;/* 0x95 1 */ /* 2 bytes padding */ unsigned long IdleTimeCheck;/* 0x98 4 */ unsigned char IdleDemotePercent;/* 0x9c 1 */ unsigned char IdlePromotePercent;/* 0x9d 1 */ unsigned char IdleStateMax;/* 0x9e 1 */ unsigned char HeteroDecreaseTime;/* 0x9f 1 */ unsigned char HeteroIncreaseTime;/* 0xa0 1 */ unsigned char HeteroDecreaseThreshold[32];/* 0xa1 32 */ /* ── cacheline 3 boundary (192 bytes) ── */ unsigned char HeteroIncreaseThreshold[32];/* 0xc1 32 */ unsigned char Class0FloorPerformance;/* 0xe1 1 */ unsigned char Class1InitialPerformance;/* 0xe2 1 */ /* 1 byte padding */ enum _KHETERO_CPU_POLICY ThreadPolicies[2];/* 0xe4 8 */};size 240 (0xf0)54 members6 holes (13 bytes)padding 44 cachelines
Used in (1)