Skip to content

Commit

Permalink
tools/power/x86/intel-speed-select: Change TRL display for Emerald Ra…
Browse files Browse the repository at this point in the history
…pids

Emerald Rapids doesn't specify TRL (Turbo Ratio Limits) based instruction
types. Instead it specifies 5 TRL levels, which can be anyone of the
instruction types.

Increase TRL levels to 5 for Emerald Rapids. Also change display to show
by level number. Show only non zero level values.

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
  • Loading branch information
Srinivas Pandruvada committed Mar 22, 2023
1 parent 1d54b13 commit 2c00056
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 3 deletions.
15 changes: 15 additions & 0 deletions tools/power/x86/intel-speed-select/isst-core-mbox.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,33 @@
static int mbox_delay;
static int mbox_retries = 3;

#define MAX_TRL_LEVELS_EMR 5

static int mbox_get_disp_freq_multiplier(void)
{
return DISP_FREQ_MULTIPLIER;
}

static int mbox_get_trl_max_levels(void)
{
if (is_emr_platform())
return MAX_TRL_LEVELS_EMR;

return 3;
}

static char *mbox_get_trl_level_name(int level)
{
if (is_emr_platform()) {
static char level_str[18];

if (level >= MAX_TRL_LEVELS_EMR)
return NULL;

snprintf(level_str, sizeof(level_str), "level-%d", level);
return level_str;
}

switch (level) {
case 0:
return "sse";
Expand Down
9 changes: 6 additions & 3 deletions tools/power/x86/intel-speed-select/isst-display.c
Original file line number Diff line number Diff line change
Expand Up @@ -283,9 +283,9 @@ static void _isst_fact_display_information(struct isst_id *id, FILE *outf, int l
bucket_info[j].hp_cores);
format_and_print(outf, base_level + 2, header, value);
for (i = 0; i < trl_max_levels; i++) {
if (fact_avx != 0xFF && !(fact_avx & (1 << i)))
if (!bucket_info[j].hp_ratios[i] || (fact_avx != 0xFF && !(fact_avx & (1 << i))))
continue;
if (i == 0 && api_version() == 1)
if (i == 0 && api_version() == 1 && !is_emr_platform())
snprintf(header, sizeof(header),
"high-priority-max-frequency(MHz)");
else
Expand All @@ -301,8 +301,11 @@ static void _isst_fact_display_information(struct isst_id *id, FILE *outf, int l
format_and_print(outf, base_level + 1, header, NULL);

for (j = 0; j < trl_max_levels; j++) {
if (!fact_info->lp_ratios[j])
continue;

/* No AVX level name for SSE to be consistent with previous formatting */
if (j == 0 && api_version() == 1)
if (j == 0 && api_version() == 1 && !is_emr_platform())
snprintf(header, sizeof(header), "low-priority-max-frequency(MHz)");
else
snprintf(header, sizeof(header), "low-priority-max-%s-frequency(MHz)",
Expand Down

0 comments on commit 2c00056

Please sign in to comment.