Skip to content

Commit 324bc29

Browse files
committed
[Intel/SKL] Indicator of Frequency Clipping in Processor Cores
1 parent de1c1d0 commit 324bc29

9 files changed

+253
-56
lines changed

corefreq-cli-rsc-en.h

+4
Original file line numberDiff line numberDiff line change
@@ -1678,6 +1678,10 @@
16781678
#define RSC_BOX_EVENT_POWER_LIMIT_CODE_EN " Power Limitation "
16791679
#define RSC_BOX_EVENT_CURRENT_LIMIT_CODE_EN " Current Limitation "
16801680
#define RSC_BOX_EVENT_CROSS_DOM_LIMIT_CODE_EN " Cross Domain Limit. "
1681+
#define RSC_BOX_EVENT_POWER_PL1_CODE_EN " Package PL1 "
1682+
#define RSC_BOX_EVENT_POWER_PL2_CODE_EN " Package PL2 "
1683+
#define RSC_BOX_EVENT_ELECTRICAL_CODE_EN " Electrical EDP "
1684+
#define RSC_BOX_EVENT_MAX_TURBO_CODE_EN " Max Turbo Limit. "
16811685

16821686
#define RSC_BOX_STATE_UNSPECIFIED_CODE_EN " UNSPECIFIED "
16831687

corefreq-cli-rsc-fr.h

+6
Original file line numberDiff line numberDiff line change
@@ -1167,6 +1167,12 @@ do echo -en "$h$l\t""\xc3""\x$h$l""\t"; done; done;echo
11671167
#define RSC_BOX_EVENT_POWER_LIMIT_CODE_FR " Limitation de puissance "
11681168
#define RSC_BOX_EVENT_CURRENT_LIMIT_CODE_FR " Limitation de courant "
11691169
#define RSC_BOX_EVENT_CROSS_DOM_LIMIT_CODE_FR " Limitation interdomaine "
1170+
#define RSC_BOX_EVENT_POWER_PL1_CODE_FR " PL1 du Package "
1171+
#define RSC_BOX_EVENT_POWER_PL2_CODE_FR " PL2 du Package "
1172+
#define RSC_BOX_EVENT_ELECTRICAL_CODE_FR " EDP " \
1173+
"\xa9""lectrique "
1174+
1175+
#define RSC_BOX_EVENT_MAX_TURBO_CODE_FR " Limitation Turbo Max. "
11701176

11711177
#define RSC_BOX_STATE_UNSPECIFIED_CODE_FR " " \
11721178
"IND""\x89""TERMIN""\x89"\

corefreq-cli-rsc.c

+4
Original file line numberDiff line numberDiff line change
@@ -1599,6 +1599,10 @@ RESOURCE_ST Resource[] = {
15991599
LDT(RSC_BOX_EVENT_POWER_LIMIT),
16001600
LDT(RSC_BOX_EVENT_CURRENT_LIMIT),
16011601
LDT(RSC_BOX_EVENT_CROSS_DOM_LIMIT),
1602+
LDT(RSC_BOX_EVENT_POWER_PL1),
1603+
LDT(RSC_BOX_EVENT_POWER_PL2),
1604+
LDT(RSC_BOX_EVENT_ELECTRICAL),
1605+
LDT(RSC_BOX_EVENT_MAX_TURBO),
16021606
LDT(RSC_BOX_STATE_UNSPECIFIED),
16031607
LDQ(RSC_BOX_STATE_C8),
16041608
LDQ(RSC_BOX_STATE_C7),

corefreq-cli-rsc.h

+4
Original file line numberDiff line numberDiff line change
@@ -1403,6 +1403,10 @@ enum {
14031403
RSC_BOX_EVENT_POWER_LIMIT,
14041404
RSC_BOX_EVENT_CURRENT_LIMIT,
14051405
RSC_BOX_EVENT_CROSS_DOM_LIMIT,
1406+
RSC_BOX_EVENT_POWER_PL1,
1407+
RSC_BOX_EVENT_POWER_PL2,
1408+
RSC_BOX_EVENT_ELECTRICAL,
1409+
RSC_BOX_EVENT_MAX_TURBO,
14061410
RSC_BOX_STATE_UNSPECIFIED,
14071411
RSC_BOX_STATE_C8,
14081412
RSC_BOX_STATE_C7,

corefreq-cli.c

+61-10
Original file line numberDiff line numberDiff line change
@@ -10970,28 +10970,72 @@ int Shortcut(SCANKEY *scan)
1097010970

1097110971
Window *wBox = CreateBox(scan->key, origin, select,
1097210972
(char*) RSC(BOX_EVENT_TITLE).CODE(),
10973+
/* Thermal Sensor */
1097310974
RSC(BOX_EVENT_THERMAL_SENSOR).CODE(),
10974-
RSC(BOX_EVENT).ATTR()[(ProcessorEvents & EVENT_THERM_SENSOR) ? 1 : 0],
10975+
RSC(BOX_EVENT).ATTR()[
10976+
(ProcessorEvents & EVENT_THERM_SENSOR) ? 1 : 0
10977+
],
1097510978
BOXKEY_CLR_THM_SENSOR,
10979+
/* PROCHOT# Agent */
1097610980
RSC(BOX_EVENT_PROCHOT_AGENT).CODE(),
10977-
RSC(BOX_EVENT).ATTR()[(ProcessorEvents & EVENT_THERM_PROCHOT) ? 1 : 0],
10981+
RSC(BOX_EVENT).ATTR()[
10982+
(ProcessorEvents & EVENT_THERM_PROCHOT) ? 1 : 0
10983+
],
1097810984
BOXKEY_CLR_THM_PROCHOT,
10985+
/* Critical Temperature */
1097910986
RSC(BOX_EVENT_CRITICAL_TEMP).CODE(),
10980-
RSC(BOX_EVENT).ATTR()[(ProcessorEvents & EVENT_THERM_CRIT) ? 1 : 0],
10987+
RSC(BOX_EVENT).ATTR()[
10988+
(ProcessorEvents & EVENT_THERM_CRIT) ? 1 : 0
10989+
],
1098110990
BOXKEY_CLR_THM_CRIT,
10991+
/* Thermal Threshold */
1098210992
RSC(BOX_EVENT_THERM_THRESHOLD).CODE(),
10983-
RSC(BOX_EVENT).ATTR()[(ProcessorEvents & EVENT_THERM_THOLD) ? 1 : 0],
10993+
RSC(BOX_EVENT).ATTR()[
10994+
(ProcessorEvents & EVENT_THERM_THOLD) ? 1 : 0
10995+
],
1098410996
BOXKEY_CLR_THM_THOLD,
10997+
/* Power Limitation */
1098510998
RSC(BOX_EVENT_POWER_LIMIT).CODE(),
10986-
RSC(BOX_EVENT).ATTR()[(ProcessorEvents & EVENT_POWER_LIMIT) ? 2 : 0],
10999+
RSC(BOX_EVENT).ATTR()[
11000+
(ProcessorEvents & EVENT_POWER_LIMIT) ? 2 : 0
11001+
],
1098711002
BOXKEY_CLR_PWR_LIMIT,
11003+
/* Current Limitation */
1098811004
RSC(BOX_EVENT_CURRENT_LIMIT).CODE(),
10989-
RSC(BOX_EVENT).ATTR()[(ProcessorEvents & EVENT_CURRENT_LIMIT) ? 2 : 0],
11005+
RSC(BOX_EVENT).ATTR()[
11006+
(ProcessorEvents & EVENT_CURRENT_LIMIT) ? 2 : 0
11007+
],
1099011008
BOXKEY_CLR_CUR_LIMIT,
11009+
/* Cross Domain Limit. */
1099111010
RSC(BOX_EVENT_CROSS_DOM_LIMIT).CODE(),
10992-
RSC(BOX_EVENT).ATTR()[(ProcessorEvents & EVENT_CROSS_DOMAIN) ? 1 : 0],
10993-
BOXKEY_CLR_X_DOMAIN);
10994-
11011+
RSC(BOX_EVENT).ATTR()[
11012+
(ProcessorEvents & EVENT_CROSS_DOMAIN) ? 1 : 0
11013+
],
11014+
BOXKEY_CLR_X_DOMAIN,
11015+
/* Package PL1 */
11016+
RSC(BOX_EVENT_POWER_PL1).CODE(),
11017+
RSC(BOX_EVENT).ATTR()[
11018+
(ProcessorEvents & EVENT_POWER_PL1) ? 2 : 0
11019+
],
11020+
BOXKEY_CLR_PWR_PL1,
11021+
/* Package PL2 */
11022+
RSC(BOX_EVENT_POWER_PL2).CODE(),
11023+
RSC(BOX_EVENT).ATTR()[
11024+
(ProcessorEvents & EVENT_POWER_PL2) ? 2 : 0
11025+
],
11026+
BOXKEY_CLR_PWR_PL2,
11027+
/* Electrical EDP */
11028+
RSC(BOX_EVENT_ELECTRICAL).CODE(),
11029+
RSC(BOX_EVENT).ATTR()[
11030+
(ProcessorEvents & EVENT_ELECTRICAL) ? 2 : 0
11031+
],
11032+
BOXKEY_CLR_ELECTRICAL,
11033+
/* Max Turbo Limit. */
11034+
RSC(BOX_EVENT_MAX_TURBO).CODE(),
11035+
RSC(BOX_EVENT).ATTR()[
11036+
(ProcessorEvents & EVENT_MAX_TURBO) ? 2 : 0
11037+
],
11038+
BOXKEY_CLR_MAX_TURBO);
1099511039
if (wBox != NULL) {
1099611040
AppendWindow(wBox, &winList);
1099711041
} else {
@@ -13219,6 +13263,10 @@ int Shortcut(SCANKEY *scan)
1321913263
case BOXKEY_CLR_PWR_LIMIT:
1322013264
case BOXKEY_CLR_CUR_LIMIT:
1322113265
case BOXKEY_CLR_X_DOMAIN:
13266+
case BOXKEY_CLR_PWR_PL1:
13267+
case BOXKEY_CLR_PWR_PL2:
13268+
case BOXKEY_CLR_ELECTRICAL:
13269+
case BOXKEY_CLR_MAX_TURBO:
1322213270
{
1322313271
const enum THERM_PWR_EVENTS events=(scan->key & CLEAR_EVENT_MASK) >> 4;
1322413272
if (!RING_FULL(RW(Shm)->Ring[0])) {
@@ -17594,7 +17642,10 @@ void Draw_Footer(Layer *layer, CUINT row)
1759417642
if (ProcessorEvents & ( EVENT_THERM_SENSOR
1759517643
| EVENT_THERM_PROCHOT
1759617644
| EVENT_THERM_CRIT
17597-
| EVENT_THERM_THOLD ) )
17645+
| EVENT_THERM_THOLD
17646+
| EVENT_POWER_PL1
17647+
| EVENT_POWER_PL2
17648+
| EVENT_ELECTRICAL ) )
1759817649
{
1759917650
_hot = 4;
1760017651
_tmp = 1;

corefreq-cli.h

+13-8
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* Licenses: GPL2
55
*/
66

7-
#define CLEAR_EVENT_MASK 0x0000000000000ff0LLU
7+
#define CLEAR_EVENT_MASK 0x000000000000fff0LLU
88

99
#define TRACK_TASK 0x0200000000000000LLU
1010
#define TRACK_MASK 0x00000000000fffffLLU
@@ -39,6 +39,7 @@
3939
#define SMBIOS_STRING_INDEX 0x0010000000000000
4040
#define SMBIOS_STRING_MASK 0x00000000000000ffLLU
4141

42+
#define BOXKEY_EVT_OR 0x3000000000020001LLU
4243
#define BOXKEY_TDP_OR 0x3000000000021100LLU
4344
#define BOXKEY_PLX_OP 0x3000000000021200LLU
4445
#define BOXKEY_PL1_OR (BOXKEY_PLX_OP | (0x8 << PL1))
@@ -284,13 +285,17 @@ enum {
284285
BOXKEY_LIMIT_IDLE_ST09 = 0x3000000000014891LLU,
285286
BOXKEY_LIMIT_IDLE_ST10 = 0x30000000000148a1LLU,
286287

287-
BOXKEY_CLR_THM_SENSOR = 0x3000000000020011LLU,
288-
BOXKEY_CLR_THM_PROCHOT = 0x3000000000020021LLU,
289-
BOXKEY_CLR_THM_CRIT = 0x3000000000020041LLU,
290-
BOXKEY_CLR_THM_THOLD = 0x3000000000020081LLU,
291-
BOXKEY_CLR_PWR_LIMIT = 0x3000000000020101LLU,
292-
BOXKEY_CLR_CUR_LIMIT = 0x3000000000020201LLU,
293-
BOXKEY_CLR_X_DOMAIN = 0x3000000000020401LLU,
288+
BOXKEY_CLR_THM_SENSOR = BOXKEY_EVT_OR | (EVENT_THERM_SENSOR << 4),
289+
BOXKEY_CLR_THM_PROCHOT = BOXKEY_EVT_OR | (EVENT_THERM_PROCHOT << 4),
290+
BOXKEY_CLR_THM_CRIT = BOXKEY_EVT_OR | (EVENT_THERM_CRIT << 4),
291+
BOXKEY_CLR_THM_THOLD = BOXKEY_EVT_OR | (EVENT_THERM_THOLD << 4),
292+
BOXKEY_CLR_PWR_LIMIT = BOXKEY_EVT_OR | (EVENT_POWER_LIMIT << 4),
293+
BOXKEY_CLR_CUR_LIMIT = BOXKEY_EVT_OR | (EVENT_CURRENT_LIMIT << 4),
294+
BOXKEY_CLR_X_DOMAIN = BOXKEY_EVT_OR | (EVENT_CROSS_DOMAIN << 4),
295+
BOXKEY_CLR_PWR_PL1 = BOXKEY_EVT_OR | (EVENT_POWER_PL1 << 4),
296+
BOXKEY_CLR_PWR_PL2 = BOXKEY_EVT_OR | (EVENT_POWER_PL2 << 4),
297+
BOXKEY_CLR_ELECTRICAL = BOXKEY_EVT_OR | (EVENT_ELECTRICAL << 4),
298+
BOXKEY_CLR_MAX_TURBO = BOXKEY_EVT_OR | (EVENT_MAX_TURBO << 4),
294299

295300
BOXKEY_TDP_PKG = BOXKEY_TDP_OR | (PWR_DOMAIN(PKG) << 5),
296301
BOXKEY_TDP_CORES = BOXKEY_TDP_OR | (PWR_DOMAIN(CORES) << 5),

0 commit comments

Comments
 (0)