Skip to content

Commit 73dfc10

Browse files
committed
Promote Events to a 64 bitmap
Added a Clear All command
1 parent 52fe0cc commit 73dfc10

9 files changed

+132
-73
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ parm: HWP_EPP:Energy Performance Preference (short)
481481
parm: HDC_Enable:Hardware Duty Cycling (short)
482482
parm: EEO_Disable:Disable Energy Efficiency Optimization (short)
483483
parm: R2H_Disable:Disable Race to Halt (short)
484-
parm: Clear_Events:Clear Thermal and Power Events (uint)
484+
parm: Clear_Events:Clear Thermal and Power Events (ullong)
485485
parm: ThermalScope:[0:None; 1:SMT; 2:Core; 3:Package] (int)
486486
parm: VoltageScope:[0:None; 1:SMT; 2:Core; 3:Package] (int)
487487
parm: PowerScope:[0:None; 1:SMT; 2:Core; 3:Package] (int)

corefreq-cli-rsc-en.h

+1
Original file line numberDiff line numberDiff line change
@@ -1690,6 +1690,7 @@
16901690
#define RSC_BOX_EVENT_ELECTRICAL_CODE_EN " Electrical EDP "
16911691
#define RSC_BOX_EVENT_MAX_TURBO_CODE_EN " Max Turbo "
16921692
#define RSC_BOX_EVENT_THERMAL_LOG_CODE_EN " Thermal Log "
1693+
#define RSC_BOX_EVENT_ALL_OF_THEM_CODE_EN " < Clear All> "
16931694

16941695
#define RSC_BOX_STATE_UNSPECIFIED_CODE_EN " UNSPECIFIED "
16951696

corefreq-cli-rsc-fr.h

+1
Original file line numberDiff line numberDiff line change
@@ -1177,6 +1177,7 @@ do echo -en "$h$l\t""\xc3""\x$h$l""\t"; done; done;echo
11771177
#define RSC_BOX_EVENT_ELECTRICAL_CODE_FR " EDP ""\xa9""lectrique "
11781178
#define RSC_BOX_EVENT_MAX_TURBO_CODE_FR " Turbo Max "
11791179
#define RSC_BOX_EVENT_THERMAL_LOG_CODE_FR " Log thermique "
1180+
#define RSC_BOX_EVENT_ALL_OF_THEM_CODE_FR "< Tout effacer >"
11801181

11811182
#define RSC_BOX_STATE_UNSPECIFIED_CODE_FR " " \
11821183
"IND""\x89""TERMIN""\x89"\

corefreq-cli-rsc.c

+1
Original file line numberDiff line numberDiff line change
@@ -1611,6 +1611,7 @@ RESOURCE_ST Resource[] = {
16111611
LDT(RSC_BOX_EVENT_ELECTRICAL),
16121612
LDT(RSC_BOX_EVENT_MAX_TURBO),
16131613
LDT(RSC_BOX_EVENT_THERMAL_LOG),
1614+
LDT(RSC_BOX_EVENT_ALL_OF_THEM),
16141615
LDT(RSC_BOX_STATE_UNSPECIFIED),
16151616
LDQ(RSC_BOX_STATE_C8),
16161617
LDQ(RSC_BOX_STATE_C7),

corefreq-cli-rsc.h

+1
Original file line numberDiff line numberDiff line change
@@ -1415,6 +1415,7 @@ enum {
14151415
RSC_BOX_EVENT_ELECTRICAL,
14161416
RSC_BOX_EVENT_MAX_TURBO,
14171417
RSC_BOX_EVENT_THERMAL_LOG,
1418+
RSC_BOX_EVENT_ALL_OF_THEM,
14181419
RSC_BOX_STATE_UNSPECIFIED,
14191420
RSC_BOX_STATE_C8,
14201421
RSC_BOX_STATE_C7,

corefreq-cli.c

+46-13
Original file line numberDiff line numberDiff line change
@@ -9655,18 +9655,26 @@ Window *CreateSelectIdle(unsigned long long id)
96559655
return wIdle;
96569656
}
96579657

9658-
void UpdateEvent(TGrid *grid, DATA_TYPE data)
9658+
void UpdateEvent_Thm_1(TGrid *grid, DATA_TYPE data)
96599659
{
9660-
const enum THERM_PWR_EVENTS event = data.uint[0];
9661-
const unsigned int thm = data.uint[1];
9660+
const enum THERM_PWR_EVENTS event = data.ullong;
96629661
const ATTRIBUTE attrib = RSC(BOX_EVENT).ATTR()[
9663-
(ProcessorEvents & event) ? thm : 0
9662+
(ProcessorEvents & event) ? 1 : 0
9663+
];
9664+
memset(grid->cell.attr, attrib.value, grid->cell.length);
9665+
}
9666+
9667+
void UpdateEvent_Thm_2(TGrid *grid, DATA_TYPE data)
9668+
{
9669+
const enum THERM_PWR_EVENTS event = data.ullong;
9670+
const ATTRIBUTE attrib = RSC(BOX_EVENT).ATTR()[
9671+
(ProcessorEvents & event) ? 2 : 0
96649672
];
96659673
memset(grid->cell.attr, attrib.value, grid->cell.length);
96669674
}
96679675

96689676
#define EVENT_DOMAINS 4
9669-
#define EVENT_SECTIONS 10
9677+
#define EVENT_SECTIONS 11
96709678

96719679
Window *CreateEvents(unsigned long long id)
96729680
{
@@ -9678,14 +9686,17 @@ Window *CreateEvents(unsigned long long id)
96789686
} evLdr[EVENT_DOMAINS][EVENT_SECTIONS] = {
96799687
{
96809688
/* Thermal Sensor */
9681-
{ {BOXKEY_CLR_THM_SENSOR},RSC(BOX_EVENT_THERMAL_SENSOR).CODE(),
9682-
EVENT_THERM_SENSOR , 1 },
9689+
{ {SCANKEY_NULL} , RSC(BOX_EVENT_THERMAL_SENSOR).CODE(),
9690+
EVENT_THERMAL_STS , 1 },
96839691
/* PROCHOT# Agent */
96849692
{ {SCANKEY_NULL} , RSC(BOX_EVENT_PROCHOT_STS).CODE(),
96859693
EVENT_PROCHOT_STS , 1 },
96869694
/* PROCHOT# Agent Log */
96879695
{ {BOXKEY_CLR_PROCHOT_LOG}, RSC(BOX_EVENT_PROCHOT_LOG).CODE(),
96889696
EVENT_PROCHOT_LOG , 1 },
9697+
/* Thermal Log */
9698+
{ {BOXKEY_CLR_THM_SENSOR} , RSC(BOX_EVENT_THERMAL_LOG).CODE(),
9699+
EVENT_THERMAL_LOG , 1 },
96899700
/* Critical Temperature */
96909701
{ {SCANKEY_NULL} , RSC(BOX_EVENT_CRITICAL_TMP).CODE(),
96919702
EVENT_CRITIC_TMP , 1 },
@@ -9736,6 +9747,9 @@ Window *CreateEvents(unsigned long long id)
97369747
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
97379748
EVENT_THERM_NONE , 0 },
97389749
/* Blank cell */
9750+
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9751+
EVENT_THERM_NONE , 0 },
9752+
/* Blank cell */
97399753
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
97409754
EVENT_THERM_NONE , 0 }
97419755
}, {
@@ -9767,6 +9781,9 @@ Window *CreateEvents(unsigned long long id)
97679781
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
97689782
EVENT_THERM_NONE , 0 },
97699783
/* Blank cell */
9784+
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9785+
EVENT_THERM_NONE , 0 },
9786+
/* Blank cell */
97709787
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
97719788
EVENT_THERM_NONE , 0 }
97729789
}, {
@@ -9775,7 +9792,7 @@ Window *CreateEvents(unsigned long long id)
97759792
EVENT_RING_THM_STS , 1 },
97769793
/* PROCHOT# Agent */
97779794
{ {SCANKEY_NULL} , RSC(BOX_EVENT_PROCHOT_STS).CODE(),
9778-
EVENT_RING_HOT_STS , 0 },
9795+
EVENT_RING_HOT_STS , 1 },
97799796
/* PROCHOT# Agent Log */
97809797
{ {BOXKEY_CLR_RING_HOT} , RSC(BOX_EVENT_PROCHOT_LOG).CODE(),
97819798
EVENT_RING_HOT_LOG , 1 },
@@ -9799,6 +9816,9 @@ Window *CreateEvents(unsigned long long id)
97999816
EVENT_THERM_NONE , 0 },
98009817
/* Blank cell */
98019818
{ {SCANKEY_NULL} , RSC(BOX_EVENT_SPACE).CODE(),
9819+
EVENT_THERM_NONE , 0 },
9820+
/* Clear all events */
9821+
{ {BOXKEY_CLR_ALL_EVENTS} , RSC(BOX_EVENT_ALL_OF_THEM).CODE(),
98029822
EVENT_THERM_NONE , 0 }
98039823
}
98049824
};
@@ -9809,7 +9829,6 @@ Window *CreateEvents(unsigned long long id)
98099829
6, TOP_HEADER_ROW + 2 );
98109830
if (wEvent != NULL)
98119831
{
9812-
DATA_TYPE data;
98139832
CUINT col, row;
98149833
for (row = 0; row < EVENT_SECTIONS; row++) {
98159834
for (col = 0; col < EVENT_DOMAINS; col++) {
@@ -9823,8 +9842,14 @@ Window *CreateEvents(unsigned long long id)
98239842

98249843
if (evLdr[col][row].mask != EVENT_THERM_NONE)
98259844
{
9826-
data = (const DATA_TYPE){.uint = {evLdr[col][row].mask, theme}};
9827-
GridCall(grid, UpdateEvent, data);
9845+
switch (evLdr[col][row].theme) {
9846+
case 1:
9847+
GridCall(grid, UpdateEvent_Thm_1, evLdr[col][row].mask);
9848+
break;
9849+
case 2:
9850+
GridCall(grid, UpdateEvent_Thm_2, evLdr[col][row].mask);
9851+
break;
9852+
}
98289853
}
98299854
}
98309855
}
@@ -13435,6 +13460,14 @@ int Shortcut(SCANKEY *scan)
1343513460
}
1343613461
break;
1343713462

13463+
case BOXKEY_CLR_ALL_EVENTS:
13464+
if (!RING_FULL(RW(Shm)->Ring[0])) {
13465+
RING_WRITE( RW(Shm)->Ring[0],
13466+
COREFREQ_IOCTL_CLEAR_EVENTS,
13467+
EVENT_ALL_OF_THEM );
13468+
}
13469+
break;
13470+
1343813471
case BOXKEY_CLR_THM_SENSOR:
1343913472
case BOXKEY_CLR_PROCHOT_LOG:
1344013473
case BOXKEY_CLR_THM_CRIT:
@@ -13459,8 +13492,8 @@ int Shortcut(SCANKEY *scan)
1345913492
case BOXKEY_CLR_RING_PL2:
1346013493
case BOXKEY_CLR_RING_EDP:
1346113494
{
13462-
const enum EVENT_ENUM lshift = (scan->key & CLEAR_EVENT_MASK) >> 2;
13463-
const enum THERM_PWR_EVENTS event = 0x1 << lshift;
13495+
const enum EVENT_ENUM lshift = (scan->key & CLEAR_EVENT_MASK) >> 1;
13496+
const enum THERM_PWR_EVENTS event = 0x1LLU << lshift;
1346413497
if (!RING_FULL(RW(Shm)->Ring[0])) {
1346513498
RING_WRITE(RW(Shm)->Ring[0], COREFREQ_IOCTL_CLEAR_EVENTS, event);
1346613499
}

corefreq-cli.h

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

7-
#define CLEAR_EVENT_MASK 0x00000000000000fcLLU
7+
#define CLEAR_EVENT_MASK 0x000000000000007eLLU
88

99
#define TRACK_TASK 0x0200000000000000LLU
1010
#define TRACK_MASK 0x00000000000fffffLLU
@@ -285,29 +285,30 @@ enum KEY_ENUM {
285285
BOXKEY_LIMIT_IDLE_ST09 = 0x3000000000014891LLU,
286286
BOXKEY_LIMIT_IDLE_ST10 = 0x30000000000148a1LLU,
287287

288-
BOXKEY_CLR_THM_SENSOR = BOXKEY_EVT_OR | (LSHIFT_THERM_SENSOR << 2),
289-
BOXKEY_CLR_PROCHOT_LOG = BOXKEY_EVT_OR | (LSHIFT_PROCHOT_LOG << 2),
290-
BOXKEY_CLR_THM_CRIT = BOXKEY_EVT_OR | (LSHIFT_CRITIC_LOG << 2),
291-
BOXKEY_CLR_THM_THOLD = BOXKEY_EVT_OR | (LSHIFT_THERM_THOLD << 2),
292-
BOXKEY_CLR_PWR_LIMIT = BOXKEY_EVT_OR | (LSHIFT_POWER_LIMIT << 2),
293-
BOXKEY_CLR_CUR_LIMIT = BOXKEY_EVT_OR | (LSHIFT_CURRENT_LIMIT << 2),
294-
BOXKEY_CLR_X_DOMAIN = BOXKEY_EVT_OR | (LSHIFT_CROSS_DOMAIN << 2),
295-
BOXKEY_CLR_CORE_HOT = BOXKEY_EVT_OR | (LSHIFT_CORE_HOT_LOG << 2),
296-
BOXKEY_CLR_CORE_THM = BOXKEY_EVT_OR | (LSHIFT_CORE_THM_LOG << 2),
297-
BOXKEY_CLR_CORE_PL1 = BOXKEY_EVT_OR | (LSHIFT_CORE_PL1 << 2),
298-
BOXKEY_CLR_CORE_PL2 = BOXKEY_EVT_OR | (LSHIFT_CORE_PL2 << 2),
299-
BOXKEY_CLR_CORE_EDP = BOXKEY_EVT_OR | (LSHIFT_CORE_EDP << 2),
300-
BOXKEY_CLR_CORE_TURBO = BOXKEY_EVT_OR | (LSHIFT_CORE_TURBO << 2),
301-
BOXKEY_CLR_GFX_HOT = BOXKEY_EVT_OR | (LSHIFT_GFX_HOT_LOG << 2),
302-
BOXKEY_CLR_GFX_THM = BOXKEY_EVT_OR | (LSHIFT_GFX_THM_LOG << 2),
303-
BOXKEY_CLR_GFX_PL1 = BOXKEY_EVT_OR | (LSHIFT_GFX_PL1 << 2),
304-
BOXKEY_CLR_GFX_PL2 = BOXKEY_EVT_OR | (LSHIFT_GFX_PL2 << 2),
305-
BOXKEY_CLR_GFX_EDP = BOXKEY_EVT_OR | (LSHIFT_GFX_EDP << 2),
306-
BOXKEY_CLR_RING_HOT = BOXKEY_EVT_OR | (LSHIFT_RING_HOT_LOG << 2),
307-
BOXKEY_CLR_RING_THM = BOXKEY_EVT_OR | (LSHIFT_RING_THM_LOG << 2),
308-
BOXKEY_CLR_RING_PL1 = BOXKEY_EVT_OR | (LSHIFT_RING_PL1 << 2),
309-
BOXKEY_CLR_RING_PL2 = BOXKEY_EVT_OR | (LSHIFT_RING_PL2 << 2),
310-
BOXKEY_CLR_RING_EDP = BOXKEY_EVT_OR | (LSHIFT_RING_EDP << 2),
288+
BOXKEY_CLR_ALL_EVENTS = BOXKEY_EVT_OR ^ 0x1,
289+
BOXKEY_CLR_THM_SENSOR = BOXKEY_EVT_OR | (LSHIFT_THERMAL_LOG << 1),
290+
BOXKEY_CLR_PROCHOT_LOG = BOXKEY_EVT_OR | (LSHIFT_PROCHOT_LOG << 1),
291+
BOXKEY_CLR_THM_CRIT = BOXKEY_EVT_OR | (LSHIFT_CRITIC_LOG << 1),
292+
BOXKEY_CLR_THM_THOLD = BOXKEY_EVT_OR | (LSHIFT_THERM_THOLD << 1),
293+
BOXKEY_CLR_PWR_LIMIT = BOXKEY_EVT_OR | (LSHIFT_POWER_LIMIT << 1),
294+
BOXKEY_CLR_CUR_LIMIT = BOXKEY_EVT_OR | (LSHIFT_CURRENT_LIMIT << 1),
295+
BOXKEY_CLR_X_DOMAIN = BOXKEY_EVT_OR | (LSHIFT_CROSS_DOMAIN << 1),
296+
BOXKEY_CLR_CORE_HOT = BOXKEY_EVT_OR | (LSHIFT_CORE_HOT_LOG << 1),
297+
BOXKEY_CLR_CORE_THM = BOXKEY_EVT_OR | (LSHIFT_CORE_THM_LOG << 1),
298+
BOXKEY_CLR_CORE_PL1 = BOXKEY_EVT_OR | (LSHIFT_CORE_PL1 << 1),
299+
BOXKEY_CLR_CORE_PL2 = BOXKEY_EVT_OR | (LSHIFT_CORE_PL2 << 1),
300+
BOXKEY_CLR_CORE_EDP = BOXKEY_EVT_OR | (LSHIFT_CORE_EDP << 1),
301+
BOXKEY_CLR_CORE_TURBO = BOXKEY_EVT_OR | (LSHIFT_CORE_TURBO << 1),
302+
BOXKEY_CLR_GFX_HOT = BOXKEY_EVT_OR | (LSHIFT_GFX_HOT_LOG << 1),
303+
BOXKEY_CLR_GFX_THM = BOXKEY_EVT_OR | (LSHIFT_GFX_THM_LOG << 1),
304+
BOXKEY_CLR_GFX_PL1 = BOXKEY_EVT_OR | (LSHIFT_GFX_PL1 << 1),
305+
BOXKEY_CLR_GFX_PL2 = BOXKEY_EVT_OR | (LSHIFT_GFX_PL2 << 1),
306+
BOXKEY_CLR_GFX_EDP = BOXKEY_EVT_OR | (LSHIFT_GFX_EDP << 1),
307+
BOXKEY_CLR_RING_HOT = BOXKEY_EVT_OR | (LSHIFT_RING_HOT_LOG << 1),
308+
BOXKEY_CLR_RING_THM = BOXKEY_EVT_OR | (LSHIFT_RING_THM_LOG << 1),
309+
BOXKEY_CLR_RING_PL1 = BOXKEY_EVT_OR | (LSHIFT_RING_PL1 << 1),
310+
BOXKEY_CLR_RING_PL2 = BOXKEY_EVT_OR | (LSHIFT_RING_PL2 << 1),
311+
BOXKEY_CLR_RING_EDP = BOXKEY_EVT_OR | (LSHIFT_RING_EDP << 1),
311312

312313
BOXKEY_TDP_PKG = BOXKEY_TDP_OR | (PWR_DOMAIN(PKG) << 5),
313314
BOXKEY_TDP_CORES = BOXKEY_TDP_OR | (PWR_DOMAIN(CORES) << 5),
@@ -627,6 +628,7 @@ int CheckDuplicateKey(void) \
627628
case BOXKEY_LIMIT_IDLE_ST09: \
628629
case BOXKEY_LIMIT_IDLE_ST10: \
629630
\
631+
case BOXKEY_CLR_ALL_EVENTS: \
630632
case BOXKEY_CLR_THM_SENSOR: \
631633
case BOXKEY_CLR_PROCHOT_LOG: \
632634
case BOXKEY_CLR_THM_CRIT: \
@@ -943,7 +945,8 @@ struct RECORDER_ST {
943945
})
944946

945947
#define HOT_EVENT_FILTER ( ALL_EVENT_MASK \
946-
& ( EVENT_THERM_SENSOR \
948+
& ( EVENT_THERMAL_STS \
949+
| EVENT_THERMAL_LOG \
947950
| EVENT_PROCHOT_LOG \
948951
| EVENT_CRITIC_LOG \
949952
| EVENT_THRESHOLD_LOG \
@@ -955,7 +958,7 @@ struct RECORDER_ST {
955958
| EVENT_RING_HOT_STS ) )
956959

957960
#define THERMAL_EVENT_FILTER ( ALL_EVENT_MASK \
958-
& ( EVENT_THERM_SENSOR \
961+
& ( EVENT_THERMAL_STS \
959962
| EVENT_PROCHOT_STS \
960963
| EVENT_CRITIC_TMP \
961964
| EVENT_THERM_THOLD ) )

0 commit comments

Comments
 (0)