Skip to content

Commit 064070d

Browse files
committed
Provides Event Status and Mask filters.
1 parent c4421b3 commit 064070d

File tree

4 files changed

+60
-19
lines changed

4 files changed

+60
-19
lines changed

corefreq-cli.c

+4-13
Original file line numberDiff line numberDiff line change
@@ -11104,7 +11104,7 @@ int Shortcut(SCANKEY *scan)
1110411104
/* Thermal Sensor */
1110511105
RSC(BOX_EVENT_THERMAL_SENSOR).CODE(),
1110611106
RSC(BOX_EVENT).ATTR()[
11107-
(ProcessorEvents & EVENT_GFX_THM) ? 2 : 0
11107+
(ProcessorEvents & EVENT_GFX_THM) ? 1 : 0
1110811108
],
1110911109
BOXKEY_CLR_GFX_THM,
1111011110
/* Package PL1 */
@@ -11132,7 +11132,7 @@ int Shortcut(SCANKEY *scan)
1113211132
/* Thermal Sensor */
1113311133
RSC(BOX_EVENT_THERMAL_SENSOR).CODE(),
1113411134
RSC(BOX_EVENT).ATTR()[
11135-
(ProcessorEvents & EVENT_RING_THM) ? 2 : 0
11135+
(ProcessorEvents & EVENT_RING_THM) ? 1 : 0
1113611136
],
1113711137
BOXKEY_CLR_RING_THM,
1113811138
/* Package PL1 */
@@ -15973,10 +15973,7 @@ CUINT Draw_Monitor_Frequency(Layer *layer, const unsigned int cpu, CUINT row)
1597315973
].PowerThermal.Limit[SENSOR_HIGHEST])
1597415974
warning = RSC(UI).ATTR()[UI_DRAW_MONITOR_FREQUENCY_HIGH];
1597515975
}
15976-
if ( CFlop->Thermal.Events & ( EVENT_THERM_SENSOR
15977-
| EVENT_THERM_PROCHOT
15978-
| EVENT_THERM_CRIT
15979-
| EVENT_THERM_THOLD ) )
15976+
if (CFlop->Thermal.Events & THERMAL_EVENT_FILTER)
1598015977
{
1598115978
warning = RSC(UI).ATTR()[UI_DRAW_MONITOR_FREQUENCY_HOT];
1598215979
}
@@ -17754,13 +17751,7 @@ void Draw_Footer(Layer *layer, CUINT row)
1775417751
_hot = 0;
1775517752
_tmp = 3;
1775617753
} else {
17757-
if (ProcessorEvents & ( EVENT_THERM_SENSOR
17758-
| EVENT_THERM_PROCHOT
17759-
| EVENT_THERM_CRIT
17760-
| EVENT_THERM_THOLD
17761-
| EVENT_CORE_PL1
17762-
| EVENT_CORE_PL2
17763-
| EVENT_CORE_EDP ) )
17754+
if (ProcessorEvents & HOT_EVENT_FILTER)
1776417755
{
1776517756
_hot = 4;
1776617757
_tmp = 1;

corefreq-cli.h

+15
Original file line numberDiff line numberDiff line change
@@ -933,3 +933,18 @@ struct RECORDER_ST {
933933
int lret = StrFormat( __VA_ARGS__ ); \
934934
_ret = lret > 0 ? ( __typeof__ (_ret) ) lret : 0; \
935935
})
936+
937+
#define HOT_EVENT_FILTER ( ALL_EVENT_MASK \
938+
& ( EVENT_THERM_SENSOR \
939+
| EVENT_THERM_PROCHOT \
940+
| EVENT_THERM_CRIT \
941+
| EVENT_THERM_THOLD \
942+
| EVENT_CORE_STS \
943+
| EVENT_GFX_STS \
944+
| EVENT_RING_STS ) )
945+
946+
#define THERMAL_EVENT_FILTER ( ALL_EVENT_MASK \
947+
& ( EVENT_THERM_SENSOR \
948+
| EVENT_THERM_PROCHOT \
949+
| EVENT_THERM_CRIT \
950+
| EVENT_THERM_THOLD ) )

corefreqk.c

+12-6
Original file line numberDiff line numberDiff line change
@@ -8286,7 +8286,8 @@ void CorePerfLimitReasons(CORE_RO *Core)
82868286
RDMSR(limit, MSR_SKL_CORE_PERF_LIMIT_REASONS);
82878287
}
82888288
PUBLIC(RO(Proc))->PowerThermal.Events |= (
8289-
(limit.PL1_Log << LSHIFT_CORE_PL1)
8289+
(limit.Thermal_Status << LSHIFT_CORE_STS)
8290+
| (limit.PL1_Log << LSHIFT_CORE_PL1)
82908291
| (limit.PL2_Log << LSHIFT_CORE_PL2)
82918292
| (limit.EDP_Log << LSHIFT_CORE_EDP)
82928293
| (limit.TurboLimitLog << LSHIFT_CORE_TURBO)
@@ -8324,7 +8325,8 @@ void GraphicsPerfLimitReasons(CORE_RO *Core)
83248325
RDMSR(limit, MSR_GRAPHICS_PERF_LIMIT_REASONS);
83258326
}
83268327
PUBLIC(RO(Proc))->PowerThermal.Events |= (
8327-
(limit.Thermal_Log << LSHIFT_GFX_THM)
8328+
(limit.Thermal_Status << LSHIFT_GFX_STS)
8329+
| (limit.Thermal_Log << LSHIFT_GFX_THM)
83288330
| (limit.PL1_Log << LSHIFT_GFX_PL1)
83298331
| (limit.PL2_Log << LSHIFT_GFX_PL2)
83308332
| (limit.EDP_Log << LSHIFT_GFX_EDP)
@@ -8362,7 +8364,8 @@ void RingPerfLimitReasons(CORE_RO *Core)
83628364
RDMSR(limit, MSR_RING_PERF_LIMIT_REASONS);
83638365
}
83648366
PUBLIC(RO(Proc))->PowerThermal.Events |= (
8365-
(limit.Thermal_Log << LSHIFT_RING_THM)
8367+
(limit.Thermal_Status << LSHIFT_RING_STS)
8368+
| (limit.Thermal_Log << LSHIFT_RING_THM)
83668369
| (limit.PL1_Log << LSHIFT_RING_PL1)
83678370
| (limit.PL2_Log << LSHIFT_RING_PL2)
83688371
| (limit.EDP_Log << LSHIFT_RING_EDP)
@@ -12570,7 +12573,8 @@ void Monitor_CorePerfLimitReasons(PROC_RO *Pkg)
1257012573
RDMSR(limit, MSR_SKL_CORE_PERF_LIMIT_REASONS);
1257112574

1257212575
Pkg->PowerThermal.Events |= (
12573-
(limit.PL1_Log << LSHIFT_CORE_PL1)
12576+
(limit.Thermal_Status << LSHIFT_CORE_STS)
12577+
| (limit.PL1_Log << LSHIFT_CORE_PL1)
1257412578
| (limit.PL2_Log << LSHIFT_CORE_PL2)
1257512579
| (limit.EDP_Log << LSHIFT_CORE_EDP)
1257612580
| (limit.TurboLimitLog << LSHIFT_CORE_TURBO)
@@ -12583,7 +12587,8 @@ void Monitor_GraphicsPerfLimitReasons(PROC_RO *Pkg)
1258312587
RDMSR(limit, MSR_GRAPHICS_PERF_LIMIT_REASONS);
1258412588

1258512589
Pkg->PowerThermal.Events |= (
12586-
(limit.Thermal_Log << LSHIFT_GFX_THM)
12590+
(limit.Thermal_Status << LSHIFT_GFX_STS)
12591+
| (limit.Thermal_Log << LSHIFT_GFX_THM)
1258712592
| (limit.PL1_Log << LSHIFT_GFX_PL1)
1258812593
| (limit.PL2_Log << LSHIFT_GFX_PL2)
1258912594
| (limit.EDP_Log << LSHIFT_GFX_EDP)
@@ -12596,7 +12601,8 @@ void Monitor_RingPerfLimitReasons(PROC_RO *Pkg)
1259612601
RDMSR(limit, MSR_RING_PERF_LIMIT_REASONS);
1259712602

1259812603
Pkg->PowerThermal.Events |= (
12599-
(limit.Thermal_Log << LSHIFT_RING_THM)
12604+
(limit.Thermal_Status << LSHIFT_RING_STS)
12605+
| (limit.Thermal_Log << LSHIFT_RING_THM)
1260012606
| (limit.PL1_Log << LSHIFT_RING_PL1)
1260112607
| (limit.PL2_Log << LSHIFT_RING_PL2)
1260212608
| (limit.EDP_Log << LSHIFT_RING_EDP)

coretypes.h

+29
Original file line numberDiff line numberDiff line change
@@ -271,16 +271,19 @@ enum EVENT_ENUM {
271271
LSHIFT_CURRENT_LIMIT,
272272
LSHIFT_CROSS_DOMAIN,
273273
/* MSR_SKL_CORE_PERF_LIMIT_REASONS: */
274+
LSHIFT_CORE_STS,
274275
LSHIFT_CORE_PL1,
275276
LSHIFT_CORE_PL2,
276277
LSHIFT_CORE_EDP,
277278
LSHIFT_CORE_TURBO,
278279
/* MSR_GRAPHICS_PERF_LIMIT_REASONS: */
280+
LSHIFT_GFX_STS,
279281
LSHIFT_GFX_THM,
280282
LSHIFT_GFX_PL1,
281283
LSHIFT_GFX_PL2,
282284
LSHIFT_GFX_EDP,
283285
/* MSR_RING_PERF_LIMIT_REASONS: */
286+
LSHIFT_RING_STS,
284287
LSHIFT_RING_THM,
285288
LSHIFT_RING_PL1,
286289
LSHIFT_RING_PL2,
@@ -298,22 +301,48 @@ enum THERM_PWR_EVENTS {
298301
EVENT_CURRENT_LIMIT = 0x1 << LSHIFT_CURRENT_LIMIT,
299302
EVENT_CROSS_DOMAIN = 0x1 << LSHIFT_CROSS_DOMAIN,
300303
/* MSR_SKL_CORE_PERF_LIMIT_REASONS: */
304+
EVENT_CORE_STS = 0x1 << LSHIFT_CORE_STS,
301305
EVENT_CORE_PL1 = 0x1 << LSHIFT_CORE_PL1,
302306
EVENT_CORE_PL2 = 0x1 << LSHIFT_CORE_PL2,
303307
EVENT_CORE_EDP = 0x1 << LSHIFT_CORE_EDP,
304308
EVENT_CORE_TURBO = 0x1 << LSHIFT_CORE_TURBO,
305309
/* MSR_GRAPHICS_PERF_LIMIT_REASONS: */
310+
EVENT_GFX_STS = 0x1 << LSHIFT_GFX_STS,
306311
EVENT_GFX_THM = 0x1 << LSHIFT_GFX_THM,
307312
EVENT_GFX_PL1 = 0x1 << LSHIFT_GFX_PL1,
308313
EVENT_GFX_PL2 = 0x1 << LSHIFT_GFX_PL2,
309314
EVENT_GFX_EDP = 0x1 << LSHIFT_GFX_EDP,
310315
/* MSR_RING_PERF_LIMIT_REASONS: */
316+
EVENT_RING_STS = 0x1 << LSHIFT_RING_STS,
311317
EVENT_RING_THM = 0x1 << LSHIFT_RING_THM,
312318
EVENT_RING_PL1 = 0x1 << LSHIFT_RING_PL1,
313319
EVENT_RING_PL2 = 0x1 << LSHIFT_RING_PL2,
314320
EVENT_RING_EDP = 0x1 << LSHIFT_RING_EDP
315321
};
316322

323+
#define ALL_EVENT_MASK (EVENT_THERM_SENSOR \
324+
| EVENT_THERM_PROCHOT \
325+
| EVENT_THERM_CRIT \
326+
| EVENT_THERM_THOLD \
327+
| EVENT_POWER_LIMIT \
328+
| EVENT_CURRENT_LIMIT \
329+
| EVENT_CROSS_DOMAIN \
330+
| EVENT_CORE_STS \
331+
| EVENT_CORE_PL1 \
332+
| EVENT_CORE_PL2 \
333+
| EVENT_CORE_EDP \
334+
| EVENT_CORE_TURBO \
335+
| EVENT_GFX_STS \
336+
| EVENT_GFX_THM \
337+
| EVENT_GFX_PL1 \
338+
| EVENT_GFX_PL2 \
339+
| EVENT_GFX_EDP \
340+
| EVENT_RING_STS \
341+
| EVENT_RING_THM \
342+
| EVENT_RING_PL1 \
343+
| EVENT_RING_PL2 \
344+
| EVENT_RING_EDP)
345+
317346
enum SENSOR_LIMITS {
318347
SENSOR_LOWEST,
319348
SENSOR_HIGHEST,

0 commit comments

Comments
 (0)