* [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output
@ 2019-09-03 15:37 Prarit Bhargava
2019-09-03 15:37 ` [PATCH 1/8] tools/power/x86/intel-speed-select: Fix package typo Prarit Bhargava
` (8 more replies)
0 siblings, 9 replies; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
Some general fixes and updates for intel-speed-select. Fixes include some
typos as well as an off-by-one cpu count reporting error. Updates for the
output are
- switching to MHz as a standard
- reporting CPU frequencies instead of ratios as a standard
- viewing a human-readable CPU list.
- avoiding reporting "0|1" as success|fail as these can be confusing for a
user.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
Prarit Bhargava (8):
tools/power/x86/intel-speed-select: Fix package typo
tools/power/x86/intel-speed-select: Fix help option typo
tools/power/x86/intel-speed-select: Fix cpu-count output
tools/power/x86/intel-speed-select: Simplify output for turbo-freq and
base-freq
tools/power/x86/intel-speed-select: Switch output to MHz
tools/power/x86/intel-speed-select: Change turbo ratio output to
maximum turbo frequency
tools/power/x86/intel-speed-select: Output human readable CPU list
tools/power/x86/intel-speed-select: Output success/failed for command
output
.../x86/intel-speed-select/isst-config.c | 4 +-
.../x86/intel-speed-select/isst-display.c | 116 ++++++++++++------
2 files changed, 83 insertions(+), 37 deletions(-)
--
2.21.0
^ permalink raw reply [flat|nested] 13+ messages in thread
* [PATCH 1/8] tools/power/x86/intel-speed-select: Fix package typo
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
@ 2019-09-03 15:37 ` Prarit Bhargava
2019-09-03 15:37 ` [PATCH 2/8] tools/power/x86/intel-speed-select: Fix help option typo Prarit Bhargava
` (7 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
packag_ should be package_.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
---
tools/power/x86/intel-speed-select/isst-display.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tools/power/x86/intel-speed-select/isst-display.c b/tools/power/x86/intel-speed-select/isst-display.c
index f368b8323742..0d9a53a5da2d 100644
--- a/tools/power/x86/intel-speed-select/isst-display.c
+++ b/tools/power/x86/intel-speed-select/isst-display.c
@@ -133,7 +133,7 @@ static void format_and_print(FILE *outf, int level, char *header, char *value)
last_level = level;
}
-static void print_packag_info(int cpu, FILE *outf)
+static void print_package_info(int cpu, FILE *outf)
{
char header[256];
@@ -261,7 +261,7 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
char value[256];
int i, base_level = 1;
- print_packag_info(cpu, outf);
+ print_package_info(cpu, outf);
for (i = 0; i <= pkg_dev->levels; ++i) {
struct isst_pkg_ctdp_level_info *ctdp_level;
@@ -397,7 +397,7 @@ void isst_ctdp_display_information_end(FILE *outf)
void isst_pbf_display_information(int cpu, FILE *outf, int level,
struct isst_pbf_info *pbf_info)
{
- print_packag_info(cpu, outf);
+ print_package_info(cpu, outf);
_isst_pbf_display_information(cpu, outf, level, pbf_info, 4);
format_and_print(outf, 1, NULL, NULL);
}
@@ -406,7 +406,7 @@ void isst_fact_display_information(int cpu, FILE *outf, int level,
int fact_bucket, int fact_avx,
struct isst_fact_info *fact_info)
{
- print_packag_info(cpu, outf);
+ print_package_info(cpu, outf);
_isst_fact_display_information(cpu, outf, level, fact_bucket, fact_avx,
fact_info, 4);
format_and_print(outf, 1, NULL, NULL);
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 2/8] tools/power/x86/intel-speed-select: Fix help option typo
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
2019-09-03 15:37 ` [PATCH 1/8] tools/power/x86/intel-speed-select: Fix package typo Prarit Bhargava
@ 2019-09-03 15:37 ` Prarit Bhargava
2019-09-03 15:37 ` [PATCH 3/8] tools/power/x86/intel-speed-select: Fix cpu-count output Prarit Bhargava
` (6 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
Help is -h, not --h.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
---
tools/power/x86/intel-speed-select/isst-config.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/power/x86/intel-speed-select/isst-config.c b/tools/power/x86/intel-speed-select/isst-config.c
index 91c5ad1685a1..d32af8210427 100644
--- a/tools/power/x86/intel-speed-select/isst-config.c
+++ b/tools/power/x86/intel-speed-select/isst-config.c
@@ -1491,7 +1491,7 @@ static void usage(void)
printf("intel-speed-select [OPTIONS] FEATURE COMMAND COMMAND_ARGUMENTS\n");
printf("\nUse this tool to enumerate and control the Intel Speed Select Technology features,\n");
printf("\nFEATURE : [perf-profile|base-freq|turbo-freq|core-power]\n");
- printf("\nFor help on each feature, use --h|--help\n");
+ printf("\nFor help on each feature, use -h|--help\n");
printf("\tFor example: intel-speed-select perf-profile -h\n");
printf("\nFor additional help on each command for a feature, use --h|--help\n");
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 3/8] tools/power/x86/intel-speed-select: Fix cpu-count output
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
2019-09-03 15:37 ` [PATCH 1/8] tools/power/x86/intel-speed-select: Fix package typo Prarit Bhargava
2019-09-03 15:37 ` [PATCH 2/8] tools/power/x86/intel-speed-select: Fix help option typo Prarit Bhargava
@ 2019-09-03 15:37 ` Prarit Bhargava
2019-09-03 15:37 ` [PATCH 4/8] tools/power/x86/intel-speed-select: Simplify output for turbo-freq and base-freq Prarit Bhargava
` (5 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
I have a system with 28 threads/socket but intel-speed-select reports
a cpu-count of 29.
Fix an off-by-one error in the cpu_count() function.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
---
tools/power/x86/intel-speed-select/isst-config.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/power/x86/intel-speed-select/isst-config.c b/tools/power/x86/intel-speed-select/isst-config.c
index d32af8210427..f81a28c6b586 100644
--- a/tools/power/x86/intel-speed-select/isst-config.c
+++ b/tools/power/x86/intel-speed-select/isst-config.c
@@ -304,7 +304,7 @@ static void set_cpu_present_cpu_mask(void)
int get_cpu_count(int pkg_id, int die_id)
{
if (pkg_id < MAX_PACKAGE_COUNT && die_id < MAX_DIE_PER_PACKAGE)
- return cpu_cnt[pkg_id][die_id] + 1;
+ return cpu_cnt[pkg_id][die_id];
return 0;
}
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 4/8] tools/power/x86/intel-speed-select: Simplify output for turbo-freq and base-freq
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
` (2 preceding siblings ...)
2019-09-03 15:37 ` [PATCH 3/8] tools/power/x86/intel-speed-select: Fix cpu-count output Prarit Bhargava
@ 2019-09-03 15:37 ` Prarit Bhargava
2019-09-03 15:37 ` [PATCH 5/8] tools/power/x86/intel-speed-select: Switch output to MHz Prarit Bhargava
` (4 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
The current output of 'intel-speed-select -c 53 perf-profile info -l 0'
shows
speed-select-turbo-freq-support:1
speed-select-base-freq-support:1
speed-select-base-freq-enabled:0
speed-select-turbo-freq-enabled:0
Simplify the output to single lines displaying status of disabled,
enabled, and unsupported.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
---
.../x86/intel-speed-select/isst-display.c | 30 ++++++++++---------
1 file changed, 16 insertions(+), 14 deletions(-)
diff --git a/tools/power/x86/intel-speed-select/isst-display.c b/tools/power/x86/intel-speed-select/isst-display.c
index 0d9a53a5da2d..3ae693efceaa 100644
--- a/tools/power/x86/intel-speed-select/isst-display.c
+++ b/tools/power/x86/intel-speed-select/isst-display.c
@@ -297,23 +297,25 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
format_and_print(outf, base_level + 4, header, value);
snprintf(header, sizeof(header),
- "speed-select-turbo-freq-support");
- snprintf(value, sizeof(value), "%d", ctdp_level->fact_support);
+ "speed-select-turbo-freq");
+ if (ctdp_level->fact_support) {
+ if (ctdp_level->fact_enabled)
+ snprintf(value, sizeof(value), "enabled");
+ else
+ snprintf(value, sizeof(value), "disabled");
+ } else
+ snprintf(value, sizeof(value), "unsupported");
format_and_print(outf, base_level + 4, header, value);
snprintf(header, sizeof(header),
- "speed-select-base-freq-support");
- snprintf(value, sizeof(value), "%d", ctdp_level->pbf_support);
- format_and_print(outf, base_level + 4, header, value);
-
- snprintf(header, sizeof(header),
- "speed-select-base-freq-enabled");
- snprintf(value, sizeof(value), "%d", ctdp_level->pbf_enabled);
- format_and_print(outf, base_level + 4, header, value);
-
- snprintf(header, sizeof(header),
- "speed-select-turbo-freq-enabled");
- snprintf(value, sizeof(value), "%d", ctdp_level->fact_enabled);
+ "speed-select-base-freq");
+ if (ctdp_level->pbf_support) {
+ if (ctdp_level->pbf_enabled)
+ snprintf(value, sizeof(value), "enabled");
+ else
+ snprintf(value, sizeof(value), "disabled");
+ } else
+ snprintf(value, sizeof(value), "unsupported");
format_and_print(outf, base_level + 4, header, value);
snprintf(header, sizeof(header), "thermal-design-power(W)");
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 5/8] tools/power/x86/intel-speed-select: Switch output to MHz
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
` (3 preceding siblings ...)
2019-09-03 15:37 ` [PATCH 4/8] tools/power/x86/intel-speed-select: Simplify output for turbo-freq and base-freq Prarit Bhargava
@ 2019-09-03 15:37 ` Prarit Bhargava
2019-09-03 15:37 ` [PATCH 6/8] tools/power/x86/intel-speed-select: Change turbo ratio output to maximum turbo frequency Prarit Bhargava
` (3 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
These features are introduced on new processors that will never operate
in the KHz range.
Save some zeros and switch the output to MHz.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
---
.../x86/intel-speed-select/isst-display.c | 20 +++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/tools/power/x86/intel-speed-select/isst-display.c b/tools/power/x86/intel-speed-select/isst-display.c
index 3ae693efceaa..4ec1924ff7a9 100644
--- a/tools/power/x86/intel-speed-select/isst-display.c
+++ b/tools/power/x86/intel-speed-select/isst-display.c
@@ -6,7 +6,7 @@
#include "isst.h"
-#define DISP_FREQ_MULTIPLIER 100000
+#define DISP_FREQ_MULTIPLIER 100
static void printcpumask(int str_len, char *str, int mask_size,
cpu_set_t *cpu_mask)
@@ -156,7 +156,7 @@ static void _isst_pbf_display_information(int cpu, FILE *outf, int level,
snprintf(header, sizeof(header), "speed-select-base-freq");
format_and_print(outf, disp_level, header, NULL);
- snprintf(header, sizeof(header), "high-priority-base-frequency(KHz)");
+ snprintf(header, sizeof(header), "high-priority-base-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
pbf_info->p1_high * DISP_FREQ_MULTIPLIER);
format_and_print(outf, disp_level + 1, header, value);
@@ -166,7 +166,7 @@ static void _isst_pbf_display_information(int cpu, FILE *outf, int level,
pbf_info->core_cpumask);
format_and_print(outf, disp_level + 1, header, value);
- snprintf(header, sizeof(header), "low-priority-base-frequency(KHz)");
+ snprintf(header, sizeof(header), "low-priority-base-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
pbf_info->p1_low * DISP_FREQ_MULTIPLIER);
format_and_print(outf, disp_level + 1, header, value);
@@ -209,7 +209,7 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
if (fact_avx & 0x01) {
snprintf(header, sizeof(header),
- "high-priority-max-frequency(KHz)");
+ "high-priority-max-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
bucket_info[j].sse_trl * DISP_FREQ_MULTIPLIER);
format_and_print(outf, base_level + 2, header, value);
@@ -217,7 +217,7 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
if (fact_avx & 0x02) {
snprintf(header, sizeof(header),
- "high-priority-max-avx2-frequency(KHz)");
+ "high-priority-max-avx2-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
bucket_info[j].avx_trl * DISP_FREQ_MULTIPLIER);
format_and_print(outf, base_level + 2, header, value);
@@ -225,7 +225,7 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
if (fact_avx & 0x04) {
snprintf(header, sizeof(header),
- "high-priority-max-avx512-frequency(KHz)");
+ "high-priority-max-avx512-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
bucket_info[j].avx512_trl *
DISP_FREQ_MULTIPLIER);
@@ -235,19 +235,19 @@ static void _isst_fact_display_information(int cpu, FILE *outf, int level,
snprintf(header, sizeof(header),
"speed-select-turbo-freq-clip-frequencies");
format_and_print(outf, base_level + 1, header, NULL);
- snprintf(header, sizeof(header), "low-priority-max-frequency(KHz)");
+ snprintf(header, sizeof(header), "low-priority-max-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
fact_info->lp_clipping_ratio_license_sse *
DISP_FREQ_MULTIPLIER);
format_and_print(outf, base_level + 2, header, value);
snprintf(header, sizeof(header),
- "low-priority-max-avx2-frequency(KHz)");
+ "low-priority-max-avx2-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
fact_info->lp_clipping_ratio_license_avx2 *
DISP_FREQ_MULTIPLIER);
format_and_print(outf, base_level + 2, header, value);
snprintf(header, sizeof(header),
- "low-priority-max-avx512-frequency(KHz)");
+ "low-priority-max-avx512-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
fact_info->lp_clipping_ratio_license_avx512 *
DISP_FREQ_MULTIPLIER);
@@ -291,7 +291,7 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
snprintf(value, sizeof(value), "%d", ctdp_level->tdp_ratio);
format_and_print(outf, base_level + 4, header, value);
- snprintf(header, sizeof(header), "base-frequency(KHz)");
+ snprintf(header, sizeof(header), "base-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
ctdp_level->tdp_ratio * DISP_FREQ_MULTIPLIER);
format_and_print(outf, base_level + 4, header, value);
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 6/8] tools/power/x86/intel-speed-select: Change turbo ratio output to maximum turbo frequency
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
` (4 preceding siblings ...)
2019-09-03 15:37 ` [PATCH 5/8] tools/power/x86/intel-speed-select: Switch output to MHz Prarit Bhargava
@ 2019-09-03 15:37 ` Prarit Bhargava
2019-09-03 15:37 ` [PATCH 7/8] tools/power/x86/intel-speed-select: Output human readable CPU list Prarit Bhargava
` (2 subsequent siblings)
8 siblings, 0 replies; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
The intel-speed-select tool currently outputs the turbo ratio for every
bucket. Make the output more user-friendly by changing the output to the
maximum turbo frequency.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
---
.../x86/intel-speed-select/isst-display.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/tools/power/x86/intel-speed-select/isst-display.c b/tools/power/x86/intel-speed-select/isst-display.c
index 4ec1924ff7a9..cfeee0beb78d 100644
--- a/tools/power/x86/intel-speed-select/isst-display.c
+++ b/tools/power/x86/intel-speed-select/isst-display.c
@@ -336,9 +336,11 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
snprintf(value, sizeof(value), "%d", j);
format_and_print(outf, base_level + 6, header, value);
- snprintf(header, sizeof(header), "turbo-ratio");
+ snprintf(header, sizeof(header),
+ "max-turbo-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
- ctdp_level->trl_sse_active_cores[j]);
+ ctdp_level->trl_sse_active_cores[j] *
+ DISP_FREQ_MULTIPLIER);
format_and_print(outf, base_level + 6, header, value);
}
snprintf(header, sizeof(header), "turbo-ratio-limits-avx");
@@ -351,9 +353,11 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
snprintf(value, sizeof(value), "%d", j);
format_and_print(outf, base_level + 6, header, value);
- snprintf(header, sizeof(header), "turbo-ratio");
+ snprintf(header, sizeof(header),
+ "max-turbo-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
- ctdp_level->trl_avx_active_cores[j]);
+ ctdp_level->trl_avx_active_cores[j] *
+ DISP_FREQ_MULTIPLIER);
format_and_print(outf, base_level + 6, header, value);
}
@@ -367,9 +371,11 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
snprintf(value, sizeof(value), "%d", j);
format_and_print(outf, base_level + 6, header, value);
- snprintf(header, sizeof(header), "turbo-ratio");
+ snprintf(header, sizeof(header),
+ "max-turbo-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
- ctdp_level->trl_avx_512_active_cores[j]);
+ ctdp_level->trl_avx_512_active_cores[j] *
+ DISP_FREQ_MULTIPLIER);
format_and_print(outf, base_level + 6, header, value);
}
if (ctdp_level->pbf_support)
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 7/8] tools/power/x86/intel-speed-select: Output human readable CPU list
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
` (5 preceding siblings ...)
2019-09-03 15:37 ` [PATCH 6/8] tools/power/x86/intel-speed-select: Change turbo ratio output to maximum turbo frequency Prarit Bhargava
@ 2019-09-03 15:37 ` Prarit Bhargava
2019-09-03 15:37 ` [PATCH 8/8] tools/power/x86/intel-speed-select: Output success/failed for command output Prarit Bhargava
2019-09-04 20:06 ` [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Srinivas Pandruvada
8 siblings, 0 replies; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
The intel-speed-select tool currently only outputs a hexidecimal CPU mask,
which requires translation for use with kernel parameters such as
isolcpus.
Along with the CPU mask, output a human readable CPU list.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
---
.../x86/intel-speed-select/isst-display.c | 39 +++++++++++++++++++
1 file changed, 39 insertions(+)
diff --git a/tools/power/x86/intel-speed-select/isst-display.c b/tools/power/x86/intel-speed-select/isst-display.c
index cfeee0beb78d..890a01bfee4b 100644
--- a/tools/power/x86/intel-speed-select/isst-display.c
+++ b/tools/power/x86/intel-speed-select/isst-display.c
@@ -8,6 +8,33 @@
#define DISP_FREQ_MULTIPLIER 100
+static void printcpulist(int str_len, char *str, int mask_size,
+ cpu_set_t *cpu_mask)
+{
+ int i, first, curr_index, index;
+
+ if (!CPU_COUNT_S(mask_size, cpu_mask)) {
+ snprintf(str, str_len, "none");
+ return;
+ }
+
+ curr_index = 0;
+ first = 1;
+ for (i = 0; i < get_topo_max_cpus(); ++i) {
+ if (!CPU_ISSET_S(i, mask_size, cpu_mask))
+ continue;
+ if (!first) {
+ index = snprintf(&str[curr_index],
+ str_len - curr_index, ",");
+ curr_index += index;
+ }
+ index = snprintf(&str[curr_index], str_len - curr_index, "%d",
+ i);
+ curr_index += index;
+ first = 0;
+ }
+}
+
static void printcpumask(int str_len, char *str, int mask_size,
cpu_set_t *cpu_mask)
{
@@ -166,6 +193,12 @@ static void _isst_pbf_display_information(int cpu, FILE *outf, int level,
pbf_info->core_cpumask);
format_and_print(outf, disp_level + 1, header, value);
+ snprintf(header, sizeof(header), "high-priority-cpu-list");
+ printcpulist(sizeof(value), value,
+ pbf_info->core_cpumask_size,
+ pbf_info->core_cpumask);
+ format_and_print(outf, disp_level + 1, header, value);
+
snprintf(header, sizeof(header), "low-priority-base-frequency(MHz)");
snprintf(value, sizeof(value), "%d",
pbf_info->p1_low * DISP_FREQ_MULTIPLIER);
@@ -287,6 +320,12 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
ctdp_level->core_cpumask);
format_and_print(outf, base_level + 4, header, value);
+ snprintf(header, sizeof(header), "enable-cpu-list");
+ printcpulist(sizeof(value), value,
+ ctdp_level->core_cpumask_size,
+ ctdp_level->core_cpumask);
+ format_and_print(outf, base_level + 4, header, value);
+
snprintf(header, sizeof(header), "thermal-design-power-ratio");
snprintf(value, sizeof(value), "%d", ctdp_level->tdp_ratio);
format_and_print(outf, base_level + 4, header, value);
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* [PATCH 8/8] tools/power/x86/intel-speed-select: Output success/failed for command output
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
` (6 preceding siblings ...)
2019-09-03 15:37 ` [PATCH 7/8] tools/power/x86/intel-speed-select: Output human readable CPU list Prarit Bhargava
@ 2019-09-03 15:37 ` Prarit Bhargava
2019-09-03 22:18 ` Srinivas Pandruvada
2019-09-04 20:06 ` [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Srinivas Pandruvada
8 siblings, 1 reply; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-03 15:37 UTC (permalink / raw)
To: platform-driver-x86
Cc: Prarit Bhargava, Srinivas Pandruvada, David Arcari, linux-kernel
Command output has confusing data, returning "0" on success. For example
|# ./intel-speed-select -c 14 turbo-freq enable
Intel(R) Speed Select Technology
Executing on CPU model:106[0x6a]
package-1
die-0
cpu-14
turbo-freq
enable:0
To avoid confusion change the command output to 'success' or 'failed'.
Signed-off-by: Prarit Bhargava <prarit@redhat.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: David Arcari <darcari@redhat.com>
Cc: linux-kernel@vger.kernel.org
---
tools/power/x86/intel-speed-select/isst-display.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/tools/power/x86/intel-speed-select/isst-display.c b/tools/power/x86/intel-speed-select/isst-display.c
index 890a01bfee4b..8500cf2997a6 100644
--- a/tools/power/x86/intel-speed-select/isst-display.c
+++ b/tools/power/x86/intel-speed-select/isst-display.c
@@ -519,7 +519,10 @@ void isst_display_result(int cpu, FILE *outf, char *feature, char *cmd,
snprintf(header, sizeof(header), "%s", feature);
format_and_print(outf, 4, header, NULL);
snprintf(header, sizeof(header), "%s", cmd);
- snprintf(value, sizeof(value), "%d", result);
+ if (!result)
+ snprintf(value, sizeof(value), "success");
+ else
+ snprintf(value, sizeof(value), "failed(error %d)", result);
format_and_print(outf, 5, header, value);
format_and_print(outf, 1, NULL, NULL);
--
2.21.0
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 8/8] tools/power/x86/intel-speed-select: Output success/failed for command output
2019-09-03 15:37 ` [PATCH 8/8] tools/power/x86/intel-speed-select: Output success/failed for command output Prarit Bhargava
@ 2019-09-03 22:18 ` Srinivas Pandruvada
0 siblings, 0 replies; 13+ messages in thread
From: Srinivas Pandruvada @ 2019-09-03 22:18 UTC (permalink / raw)
To: Prarit Bhargava, platform-driver-x86; +Cc: David Arcari, linux-kernel
On Tue, 2019-09-03 at 11:37 -0400, Prarit Bhargava wrote:
> Command output has confusing data, returning "0" on success. For
> example
>
> > # ./intel-speed-select -c 14 turbo-freq enable
>
> Intel(R) Speed Select Technology
> Executing on CPU model:106[0x6a]
> package-1
> die-0
> cpu-14
> turbo-freq
> enable:0
>
> To avoid confusion change the command output to 'success' or
> 'failed'.
We need to fix also help in the function usage() to match new
implementation
" printf("\t\t\tFor Set commands, status is 0 for success and
rest for failures\n");
"
Thanks,
Srinivas
> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> Cc: David Arcari <darcari@redhat.com>
> Cc: linux-kernel@vger.kernel.org
> ---
> tools/power/x86/intel-speed-select/isst-display.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/power/x86/intel-speed-select/isst-display.c
> b/tools/power/x86/intel-speed-select/isst-display.c
> index 890a01bfee4b..8500cf2997a6 100644
> --- a/tools/power/x86/intel-speed-select/isst-display.c
> +++ b/tools/power/x86/intel-speed-select/isst-display.c
> @@ -519,7 +519,10 @@ void isst_display_result(int cpu, FILE *outf,
> char *feature, char *cmd,
> snprintf(header, sizeof(header), "%s", feature);
> format_and_print(outf, 4, header, NULL);
> snprintf(header, sizeof(header), "%s", cmd);
> - snprintf(value, sizeof(value), "%d", result);
> + if (!result)
> + snprintf(value, sizeof(value), "success");
> + else
> + snprintf(value, sizeof(value), "failed(error %d)",
> result);
> format_and_print(outf, 5, header, value);
>
> format_and_print(outf, 1, NULL, NULL);
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
` (7 preceding siblings ...)
2019-09-03 15:37 ` [PATCH 8/8] tools/power/x86/intel-speed-select: Output success/failed for command output Prarit Bhargava
@ 2019-09-04 20:06 ` Srinivas Pandruvada
2019-09-04 20:55 ` Prarit Bhargava
8 siblings, 1 reply; 13+ messages in thread
From: Srinivas Pandruvada @ 2019-09-04 20:06 UTC (permalink / raw)
To: Prarit Bhargava, platform-driver-x86, Andy Shevchenko
Cc: David Arcari, linux-kernel
On Tue, 2019-09-03 at 11:37 -0400, Prarit Bhargava wrote:
> Some general fixes and updates for intel-speed-select. Fixes include
> some
> typos as well as an off-by-one cpu count reporting error. Updates
> for the
> output are
>
> - switching to MHz as a standard
> - reporting CPU frequencies instead of ratios as a standard
> - viewing a human-readable CPU list.
> - avoiding reporting "0|1" as success|fail as these can be confusing
> for a
> user.
Series looks fine, except 8/8.
So please submit v2. Better to resubmit as a series as v2, unless Andy
has other preference.
Thanks,
Srinivas
>
> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> Cc: David Arcari <darcari@redhat.com>
> Cc: linux-kernel@vger.kernel.org
>
> Prarit Bhargava (8):
> tools/power/x86/intel-speed-select: Fix package typo
> tools/power/x86/intel-speed-select: Fix help option typo
> tools/power/x86/intel-speed-select: Fix cpu-count output
> tools/power/x86/intel-speed-select: Simplify output for turbo-freq
> and
> base-freq
> tools/power/x86/intel-speed-select: Switch output to MHz
> tools/power/x86/intel-speed-select: Change turbo ratio output to
> maximum turbo frequency
> tools/power/x86/intel-speed-select: Output human readable CPU list
> tools/power/x86/intel-speed-select: Output success/failed for
> command
> output
>
> .../x86/intel-speed-select/isst-config.c | 4 +-
> .../x86/intel-speed-select/isst-display.c | 116 ++++++++++++--
> ----
> 2 files changed, 83 insertions(+), 37 deletions(-)
>
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output
2019-09-04 20:06 ` [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Srinivas Pandruvada
@ 2019-09-04 20:55 ` Prarit Bhargava
2019-09-04 20:59 ` Srinivas Pandruvada
0 siblings, 1 reply; 13+ messages in thread
From: Prarit Bhargava @ 2019-09-04 20:55 UTC (permalink / raw)
To: Srinivas Pandruvada, platform-driver-x86, Andy Shevchenko
Cc: David Arcari, linux-kernel
On 9/4/19 4:06 PM, Srinivas Pandruvada wrote:
> On Tue, 2019-09-03 at 11:37 -0400, Prarit Bhargava wrote:
>> Some general fixes and updates for intel-speed-select. Fixes include
>> some
>> typos as well as an off-by-one cpu count reporting error. Updates
>> for the
>> output are
>>
>> - switching to MHz as a standard
>> - reporting CPU frequencies instead of ratios as a standard
>> - viewing a human-readable CPU list.
>> - avoiding reporting "0|1" as success|fail as these can be confusing
>> for a
>> user.
> Series looks fine, except 8/8.
> So please submit v2. Better to resubmit as a series as v2, unless Andy
> has other preference.
Thanks Srinivas.
I have an additional patch. It looks like there's a memory leak. Sorry for the
cut-and-paste but if okay I'll submit this as part of v2. Reworking the code
this way makes it easier to introduce CascadeLake-N support too.
diff --git a/tools/power/x86/intel-speed-select/isst-config.c b/tools/power/x86/
intel-speed-select/isst-config.c
index 78f0cebda1da..59753b3917bb 100644
--- a/tools/power/x86/intel-speed-select/isst-config.c
+++ b/tools/power/x86/intel-speed-select/isst-config.c
@@ -603,6 +603,10 @@ static int isst_fill_platform_info(void)
close(fd);
+ if (isst_platform_info.api_version > supported_api_ver) {
+ printf("Incompatible API versions; Upgrade of tool is required\n");
+ return -1;
+ }
return 0;
}
@@ -1528,6 +1532,7 @@ static void cmdline(int argc, char **argv)
{
int opt;
int option_index = 0;
+ int ret;
static struct option long_options[] = {
{ "cpu", required_argument, 0, 'c' },
@@ -1589,13 +1594,14 @@ static void cmdline(int argc, char **argv)
set_max_cpu_num();
set_cpu_present_cpu_mask();
set_cpu_target_cpu_mask();
- isst_fill_platform_info();
- if (isst_platform_info.api_version > supported_api_ver) {
- printf("Incompatible API versions; Upgrade of tool is required\n");
- exit(0);
- }
+ ret = isst_fill_platform_info();
+ if (ret)
+ goto out;
process_command(argc, argv);
+out:
+ free_cpu_set(present_cpumask);
+ free_cpu_set(target_cpumask);
}
int main(int argc, char **argv)
P.
>
> Thanks,
> Srinivas
>
>>
>> Signed-off-by: Prarit Bhargava <prarit@redhat.com>
>> Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
>> Cc: David Arcari <darcari@redhat.com>
>> Cc: linux-kernel@vger.kernel.org
>>
>> Prarit Bhargava (8):
>> tools/power/x86/intel-speed-select: Fix package typo
>> tools/power/x86/intel-speed-select: Fix help option typo
>> tools/power/x86/intel-speed-select: Fix cpu-count output
>> tools/power/x86/intel-speed-select: Simplify output for turbo-freq
>> and
>> base-freq
>> tools/power/x86/intel-speed-select: Switch output to MHz
>> tools/power/x86/intel-speed-select: Change turbo ratio output to
>> maximum turbo frequency
>> tools/power/x86/intel-speed-select: Output human readable CPU list
>> tools/power/x86/intel-speed-select: Output success/failed for
>> command
>> output
>>
>> .../x86/intel-speed-select/isst-config.c | 4 +-
>> .../x86/intel-speed-select/isst-display.c | 116 ++++++++++++--
>> ----
>> 2 files changed, 83 insertions(+), 37 deletions(-)
>>
>
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output
2019-09-04 20:55 ` Prarit Bhargava
@ 2019-09-04 20:59 ` Srinivas Pandruvada
0 siblings, 0 replies; 13+ messages in thread
From: Srinivas Pandruvada @ 2019-09-04 20:59 UTC (permalink / raw)
To: Prarit Bhargava, platform-driver-x86, Andy Shevchenko
Cc: David Arcari, linux-kernel
On Wed, 2019-09-04 at 16:55 -0400, Prarit Bhargava wrote:
>
> On 9/4/19 4:06 PM, Srinivas Pandruvada wrote:
> > On Tue, 2019-09-03 at 11:37 -0400, Prarit Bhargava wrote:
> > > Some general fixes and updates for intel-speed-select. Fixes
> > > include
> > > some
> > > typos as well as an off-by-one cpu count reporting
> > > error. Updates
> > > for the
> > > output are
> > >
> > > - switching to MHz as a standard
> > > - reporting CPU frequencies instead of ratios as a standard
> > > - viewing a human-readable CPU list.
> > > - avoiding reporting "0|1" as success|fail as these can be
> > > confusing
> > > for a
> > > user.
> >
> > Series looks fine, except 8/8.
> > So please submit v2. Better to resubmit as a series as v2, unless
> > Andy
> > has other preference.
>
> Thanks Srinivas.
>
> I have an additional patch. It looks like there's a memory
> leak. Sorry for the
> cut-and-paste but if okay I'll submit this as part of v2. Reworking
> the code
> this way makes it easier to introduce CascadeLake-N support too.
>
Looks good to me.
> diff --git a/tools/power/x86/intel-speed-select/isst-config.c
> b/tools/power/x86/
> intel-speed-select/isst-config.c
> index 78f0cebda1da..59753b3917bb 100644
> --- a/tools/power/x86/intel-speed-select/isst-config.c
> +++ b/tools/power/x86/intel-speed-select/isst-config.c
> @@ -603,6 +603,10 @@ static int isst_fill_platform_info(void)
>
> close(fd);
>
> + if (isst_platform_info.api_version > supported_api_ver) {
> + printf("Incompatible API versions; Upgrade of tool is
> required\n");
> + return -1;
> + }
> return 0;
> }
>
> @@ -1528,6 +1532,7 @@ static void cmdline(int argc, char **argv)
> {
> int opt;
> int option_index = 0;
> + int ret;
>
> static struct option long_options[] = {
> { "cpu", required_argument, 0, 'c' },
> @@ -1589,13 +1594,14 @@ static void cmdline(int argc, char **argv)
> set_max_cpu_num();
> set_cpu_present_cpu_mask();
> set_cpu_target_cpu_mask();
> - isst_fill_platform_info();
> - if (isst_platform_info.api_version > supported_api_ver) {
> - printf("Incompatible API versions; Upgrade of tool is
> required\n");
> - exit(0);
> - }
> + ret = isst_fill_platform_info();
> + if (ret)
> + goto out;
>
> process_command(argc, argv);
> +out:
> + free_cpu_set(present_cpumask);
> + free_cpu_set(target_cpumask);
> }
>
> int main(int argc, char **argv)
>
> P.
> >
> > Thanks,
> > Srinivas
> >
> > >
> > > Signed-off-by: Prarit Bhargava <prarit@redhat.com>
> > > Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
> > > Cc: David Arcari <darcari@redhat.com>
> > > Cc: linux-kernel@vger.kernel.org
> > >
> > > Prarit Bhargava (8):
> > > tools/power/x86/intel-speed-select: Fix package typo
> > > tools/power/x86/intel-speed-select: Fix help option typo
> > > tools/power/x86/intel-speed-select: Fix cpu-count output
> > > tools/power/x86/intel-speed-select: Simplify output for turbo-
> > > freq
> > > and
> > > base-freq
> > > tools/power/x86/intel-speed-select: Switch output to MHz
> > > tools/power/x86/intel-speed-select: Change turbo ratio output
> > > to
> > > maximum turbo frequency
> > > tools/power/x86/intel-speed-select: Output human readable CPU
> > > list
> > > tools/power/x86/intel-speed-select: Output success/failed for
> > > command
> > > output
> > >
> > > .../x86/intel-speed-select/isst-config.c | 4 +-
> > > .../x86/intel-speed-select/isst-display.c | 116
> > > ++++++++++++--
> > > ----
> > > 2 files changed, 83 insertions(+), 37 deletions(-)
> > >
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2019-09-04 20:59 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-03 15:37 [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Prarit Bhargava
2019-09-03 15:37 ` [PATCH 1/8] tools/power/x86/intel-speed-select: Fix package typo Prarit Bhargava
2019-09-03 15:37 ` [PATCH 2/8] tools/power/x86/intel-speed-select: Fix help option typo Prarit Bhargava
2019-09-03 15:37 ` [PATCH 3/8] tools/power/x86/intel-speed-select: Fix cpu-count output Prarit Bhargava
2019-09-03 15:37 ` [PATCH 4/8] tools/power/x86/intel-speed-select: Simplify output for turbo-freq and base-freq Prarit Bhargava
2019-09-03 15:37 ` [PATCH 5/8] tools/power/x86/intel-speed-select: Switch output to MHz Prarit Bhargava
2019-09-03 15:37 ` [PATCH 6/8] tools/power/x86/intel-speed-select: Change turbo ratio output to maximum turbo frequency Prarit Bhargava
2019-09-03 15:37 ` [PATCH 7/8] tools/power/x86/intel-speed-select: Output human readable CPU list Prarit Bhargava
2019-09-03 15:37 ` [PATCH 8/8] tools/power/x86/intel-speed-select: Output success/failed for command output Prarit Bhargava
2019-09-03 22:18 ` Srinivas Pandruvada
2019-09-04 20:06 ` [PATCH 0/8] tools-power-x86-intel-speed-select: Fixes and updates for output Srinivas Pandruvada
2019-09-04 20:55 ` Prarit Bhargava
2019-09-04 20:59 ` Srinivas Pandruvada
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).