struct _PPM_ENGINE_SETTINGS { union _PPM_POLICY_SETTINGS_MASK ExplicitSetting[2];/* 0x0 32 */ unsigned char ThrottlingPolicy;/* 0x20 1 */ /* 3 bytes padding */ unsigned long PerfTimeCheck;/* 0x24 4 */ unsigned char PerfHistoryCount[2];/* 0x28 2 */ unsigned char PerfMinPolicy[2];/* 0x2a 2 */ unsigned char PerfMaxPolicy[2];/* 0x2c 2 */ unsigned char PerfDecreaseTime[2];/* 0x2e 2 */ unsigned char PerfIncreaseTime[2];/* 0x30 2 */ unsigned char PerfDecreasePolicy[2];/* 0x32 2 */ unsigned char PerfIncreasePolicy[2];/* 0x34 2 */ unsigned char PerfDecreaseThreshold[2];/* 0x36 2 */ unsigned char PerfIncreaseThreshold[2];/* 0x38 2 */ /* 2 bytes padding */ unsigned long PerfFrequencyCap[2];/* 0x3c 8 */ /* ── cacheline 1 boundary (64 bytes) ── */ unsigned long PerfBoostPolicy;/* 0x44 4 */ unsigned long PerfBoostMode;/* 0x48 4 */ unsigned long PerfReductionTolerance;/* 0x4c 4 */ unsigned long EnergyPerfPreference[2];/* 0x50 8 */ unsigned long AutonomousActivityWindow;/* 0x58 4 */ unsigned char AutonomousPreference;/* 0x5c 1 */ unsigned char LatencyHintPerf[2];/* 0x5d 2 */ unsigned char LatencyHintEpp[2];/* 0x5f 2 */ unsigned char LatencyHintUnpark[2];/* 0x61 2 */ /* 1 byte padding */ unsigned long ResponsivenessDisableThreshold[2];/* 0x64 8 */ unsigned long ResponsivenessEnableThreshold[2];/* 0x6c 8 */ unsigned char ResponsivenessDisableTime[2];/* 0x74 2 */ unsigned char ResponsivenessEnableTime[2];/* 0x76 2 */ unsigned long ResponsivenessEppCeiling[2];/* 0x78 8 */ /* ── cacheline 2 boundary (128 bytes) ── */ unsigned long ResponsivenessPerfFloor[2];/* 0x80 8 */ unsigned char DutyCycling;/* 0x88 1 */ unsigned char ParkingPerfState[2];/* 0x89 2 */ unsigned char DistributeUtility;/* 0x8b 1 */ unsigned char CoreParkingOverUtilizationThreshold;/* 0x8c 1 */ unsigned char CoreParkingConcurrencyThreshold;/* 0x8d 1 */ unsigned char CoreParkingHeadroomThreshold;/* 0x8e 1 */ unsigned char CoreParkingDistributionThreshold;/* 0x8f 1 */ unsigned char CoreParkingDecreasePolicy;/* 0x90 1 */ unsigned char CoreParkingIncreasePolicy;/* 0x91 1 */ /* 2 bytes padding */ unsigned long CoreParkingDecreaseTime;/* 0x94 4 */ unsigned long CoreParkingIncreaseTime;/* 0x98 4 */ unsigned char CoreParkingMinCores[2];/* 0x9c 2 */ unsigned char CoreParkingMaxCores[2];/* 0x9e 2 */ unsigned long SoftParkLatency;/* 0xa0 4 */ unsigned char AllowScaling;/* 0xa4 1 */ unsigned char IdleDisabled;/* 0xa5 1 */ /* 2 bytes padding */ unsigned long IdleTimeCheck;/* 0xa8 4 */ unsigned char IdleDemotePercent;/* 0xac 1 */ unsigned char IdlePromotePercent;/* 0xad 1 */ unsigned char IdleStateMax;/* 0xae 1 */ unsigned char ResourcePriority[2];/* 0xaf 2 */ unsigned char HeteroDecreaseTime;/* 0xb1 1 */ unsigned char HeteroIncreaseTime;/* 0xb2 1 */ unsigned char HeteroDecreaseThreshold[2][64];/* 0xb3 128 */ /* ── cacheline 4 boundary (256 bytes) ── */ unsigned char HeteroIncreaseThreshold[2][64];/* 0x133 128 */ /* ── cacheline 6 boundary (384 bytes) ── */ unsigned char Class0FloorPerformance;/* 0x1b3 1 */ unsigned char Class1InitialPerformance;/* 0x1b4 1 */ /* 3 bytes padding */ unsigned long ShortThreadRuntimeThreshold;/* 0x1b8 4 */ enum _KHETERO_CPU_POLICY ThreadPolicies[2];/* 0x1bc 8 */ /* ── cacheline 7 boundary (448 bytes) ── */ unsigned char ArchClassLowerThreshold[2];/* 0x1c4 2 */ unsigned char ArchClassUpperThreshold[2];/* 0x1c6 2 */ unsigned char ModuleUnparkPolicy;/* 0x1c8 1 */ unsigned char ComplexUnparkPolicy;/* 0x1c9 1 */ unsigned char SmtUnparkPolicy;/* 0x1ca 1 */ /* 1 byte padding */ enum _PPM_HETERO_POLICY HeteroPolicy;/* 0x1cc 4 */ unsigned long HeteroContainmentDecreaseTime;/* 0x1d0 4 */ unsigned long HeteroContainmentIncreaseTime;/* 0x1d4 4 */ unsigned long HeteroEfficiencyContainmentThreshold;/* 0x1d8 4 */ unsigned long HeteroHybridContainmentThreshold;/* 0x1dc 4 */ unsigned long HeteroContainmentPolicy;/* 0x1e0 4 */ unsigned char RestrictionCount;/* 0x1e4 1 */};size 488 (0x1e8)69 members7 holes (14 bytes)padding 38 cachelines
Used in (1)