diff options
| author | Thomas Renninger <trenn@suse.de> | 2014-05-13 06:41:45 -0400 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2014-05-16 18:36:37 -0400 |
| commit | 7ea1bdb8e162ef7b90eef2450e9a2eaefeb58d61 (patch) | |
| tree | c97c35c03c3f0a6aac9e2b56a47ec9f7f66d8e88 /tools | |
| parent | 3fc5a0e51aef4503b6a06ef35409370eed568684 (diff) | |
cpupower: Remove mc and smt power aware scheduler info/settings
These kernel interfaces got removed by:
commit 8e7fbcbc22c12414bcc9dfdd683637f58fb32759
Author: Peter Zijlstra <peterz@infradead.org>
Date: Mon Jan 9 11:28:35 2012 +0100
sched: Remove stale power aware scheduling remnants and dysfunctional knobs
No need to further keep them as userspace configurations.
Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'tools')
| -rw-r--r-- | tools/power/cpupower/man/cpupower-info.1 | 2 | ||||
| -rw-r--r-- | tools/power/cpupower/man/cpupower-set.1 | 31 | ||||
| -rw-r--r-- | tools/power/cpupower/utils/cpupower-info.c | 35 | ||||
| -rw-r--r-- | tools/power/cpupower/utils/cpupower-set.c | 43 |
4 files changed, 5 insertions, 106 deletions
diff --git a/tools/power/cpupower/man/cpupower-info.1 b/tools/power/cpupower/man/cpupower-info.1 index 58e21196f17f..340bcd0be7de 100644 --- a/tools/power/cpupower/man/cpupower-info.1 +++ b/tools/power/cpupower/man/cpupower-info.1 | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | cpupower\-info \- Shows processor power related kernel or hardware configurations | 3 | cpupower\-info \- Shows processor power related kernel or hardware configurations |
| 4 | .SH SYNOPSIS | 4 | .SH SYNOPSIS |
| 5 | .ft B | 5 | .ft B |
| 6 | .B cpupower info [ \-b ] [ \-s ] [ \-m ] | 6 | .B cpupower info [ \-b ] |
| 7 | 7 | ||
| 8 | .SH DESCRIPTION | 8 | .SH DESCRIPTION |
| 9 | \fBcpupower info \fP shows kernel configurations or processor hardware | 9 | \fBcpupower info \fP shows kernel configurations or processor hardware |
diff --git a/tools/power/cpupower/man/cpupower-set.1 b/tools/power/cpupower/man/cpupower-set.1 index 9dbd536518ab..2bcc696f4496 100644 --- a/tools/power/cpupower/man/cpupower-set.1 +++ b/tools/power/cpupower/man/cpupower-set.1 | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | cpupower\-set \- Set processor power related kernel or hardware configurations | 3 | cpupower\-set \- Set processor power related kernel or hardware configurations |
| 4 | .SH SYNOPSIS | 4 | .SH SYNOPSIS |
| 5 | .ft B | 5 | .ft B |
| 6 | .B cpupower set [ \-b VAL ] [ \-s VAL ] [ \-m VAL ] | 6 | .B cpupower set [ \-b VAL ] |
| 7 | 7 | ||
| 8 | 8 | ||
| 9 | .SH DESCRIPTION | 9 | .SH DESCRIPTION |
| @@ -55,35 +55,6 @@ Use \fBcpupower -c all info -b\fP to verify. | |||
| 55 | 55 | ||
| 56 | This options needs the msr kernel driver (CONFIG_X86_MSR) loaded. | 56 | This options needs the msr kernel driver (CONFIG_X86_MSR) loaded. |
| 57 | .RE | 57 | .RE |
| 58 | .PP | ||
| 59 | \-\-sched\-mc, \-m [ VAL ] | ||
| 60 | .RE | ||
| 61 | \-\-sched\-smt, \-s [ VAL ] | ||
| 62 | .RS 4 | ||
| 63 | \-\-sched\-mc utilizes cores in one processor package/socket first before | ||
| 64 | processes are scheduled to other processor packages/sockets. | ||
| 65 | |||
| 66 | \-\-sched\-smt utilizes thread siblings of one processor core first before | ||
| 67 | processes are scheduled to other cores. | ||
| 68 | |||
| 69 | The impact on power consumption and performance (positiv or negativ) heavily | ||
| 70 | depends on processor support for deep sleep states, frequency scaling and | ||
| 71 | frequency boost modes and their dependencies between other thread siblings | ||
| 72 | and processor cores. | ||
| 73 | |||
| 74 | Taken over from kernel documentation: | ||
| 75 | |||
| 76 | Adjust the kernel's multi-core scheduler support. | ||
| 77 | |||
| 78 | Possible values are: | ||
| 79 | .RS 2 | ||
| 80 | 0 - No power saving load balance (default value) | ||
| 81 | |||
| 82 | 1 - Fill one thread/core/package first for long running threads | ||
| 83 | |||
| 84 | 2 - Also bias task wakeups to semi-idle cpu package for power | ||
| 85 | savings | ||
| 86 | .RE | ||
| 87 | 58 | ||
| 88 | .SH "SEE ALSO" | 59 | .SH "SEE ALSO" |
| 89 | cpupower-info(1), cpupower-monitor(1), powertop(1) | 60 | cpupower-info(1), cpupower-monitor(1), powertop(1) |
diff --git a/tools/power/cpupower/utils/cpupower-info.c b/tools/power/cpupower/utils/cpupower-info.c index 0ac25772bf63..136d979e9586 100644 --- a/tools/power/cpupower/utils/cpupower-info.c +++ b/tools/power/cpupower/utils/cpupower-info.c | |||
| @@ -18,8 +18,6 @@ | |||
| 18 | 18 | ||
| 19 | static struct option set_opts[] = { | 19 | static struct option set_opts[] = { |
| 20 | { .name = "perf-bias", .has_arg = optional_argument, .flag = NULL, .val = 'b'}, | 20 | { .name = "perf-bias", .has_arg = optional_argument, .flag = NULL, .val = 'b'}, |
| 21 | { .name = "sched-mc", .has_arg = optional_argument, .flag = NULL, .val = 'm'}, | ||
| 22 | { .name = "sched-smt", .has_arg = optional_argument, .flag = NULL, .val = 's'}, | ||
| 23 | { }, | 21 | { }, |
| 24 | }; | 22 | }; |
| 25 | 23 | ||
| @@ -37,8 +35,6 @@ int cmd_info(int argc, char **argv) | |||
| 37 | 35 | ||
| 38 | union { | 36 | union { |
| 39 | struct { | 37 | struct { |
| 40 | int sched_mc:1; | ||
| 41 | int sched_smt:1; | ||
| 42 | int perf_bias:1; | 38 | int perf_bias:1; |
| 43 | }; | 39 | }; |
| 44 | int params; | 40 | int params; |
| @@ -49,23 +45,13 @@ int cmd_info(int argc, char **argv) | |||
| 49 | textdomain(PACKAGE); | 45 | textdomain(PACKAGE); |
| 50 | 46 | ||
| 51 | /* parameter parsing */ | 47 | /* parameter parsing */ |
| 52 | while ((ret = getopt_long(argc, argv, "msb", set_opts, NULL)) != -1) { | 48 | while ((ret = getopt_long(argc, argv, "b", set_opts, NULL)) != -1) { |
| 53 | switch (ret) { | 49 | switch (ret) { |
| 54 | case 'b': | 50 | case 'b': |
| 55 | if (params.perf_bias) | 51 | if (params.perf_bias) |
| 56 | print_wrong_arg_exit(); | 52 | print_wrong_arg_exit(); |
| 57 | params.perf_bias = 1; | 53 | params.perf_bias = 1; |
| 58 | break; | 54 | break; |
| 59 | case 'm': | ||
| 60 | if (params.sched_mc) | ||
| 61 | print_wrong_arg_exit(); | ||
| 62 | params.sched_mc = 1; | ||
| 63 | break; | ||
| 64 | case 's': | ||
| 65 | if (params.sched_smt) | ||
| 66 | print_wrong_arg_exit(); | ||
| 67 | params.sched_smt = 1; | ||
| 68 | break; | ||
| 69 | default: | 55 | default: |
| 70 | print_wrong_arg_exit(); | 56 | print_wrong_arg_exit(); |
| 71 | } | 57 | } |
| @@ -78,25 +64,6 @@ int cmd_info(int argc, char **argv) | |||
| 78 | if (bitmask_isallclear(cpus_chosen)) | 64 | if (bitmask_isallclear(cpus_chosen)) |
| 79 | bitmask_setbit(cpus_chosen, 0); | 65 | bitmask_setbit(cpus_chosen, 0); |
| 80 | 66 | ||
| 81 | if (params.sched_mc) { | ||
| 82 | ret = sysfs_get_sched("mc"); | ||
| 83 | printf(_("System's multi core scheduler setting: ")); | ||
| 84 | if (ret < 0) | ||
| 85 | /* if sysfs file is missing it's: errno == ENOENT */ | ||
| 86 | printf(_("not supported\n")); | ||
| 87 | else | ||
| 88 | printf("%d\n", ret); | ||
| 89 | } | ||
| 90 | if (params.sched_smt) { | ||
| 91 | ret = sysfs_get_sched("smt"); | ||
| 92 | printf(_("System's thread sibling scheduler setting: ")); | ||
| 93 | if (ret < 0) | ||
| 94 | /* if sysfs file is missing it's: errno == ENOENT */ | ||
| 95 | printf(_("not supported\n")); | ||
| 96 | else | ||
| 97 | printf("%d\n", ret); | ||
| 98 | } | ||
| 99 | |||
| 100 | /* Add more per cpu options here */ | 67 | /* Add more per cpu options here */ |
| 101 | if (!params.perf_bias) | 68 | if (!params.perf_bias) |
| 102 | return ret; | 69 | return ret; |
diff --git a/tools/power/cpupower/utils/cpupower-set.c b/tools/power/cpupower/utils/cpupower-set.c index bcf1d2f0b791..573c75f8e3f5 100644 --- a/tools/power/cpupower/utils/cpupower-set.c +++ b/tools/power/cpupower/utils/cpupower-set.c | |||
| @@ -19,8 +19,6 @@ | |||
| 19 | 19 | ||
| 20 | static struct option set_opts[] = { | 20 | static struct option set_opts[] = { |
| 21 | { .name = "perf-bias", .has_arg = required_argument, .flag = NULL, .val = 'b'}, | 21 | { .name = "perf-bias", .has_arg = required_argument, .flag = NULL, .val = 'b'}, |
| 22 | { .name = "sched-mc", .has_arg = required_argument, .flag = NULL, .val = 'm'}, | ||
| 23 | { .name = "sched-smt", .has_arg = required_argument, .flag = NULL, .val = 's'}, | ||
| 24 | { }, | 22 | { }, |
| 25 | }; | 23 | }; |
| 26 | 24 | ||
| @@ -38,13 +36,11 @@ int cmd_set(int argc, char **argv) | |||
| 38 | 36 | ||
| 39 | union { | 37 | union { |
| 40 | struct { | 38 | struct { |
| 41 | int sched_mc:1; | ||
| 42 | int sched_smt:1; | ||
| 43 | int perf_bias:1; | 39 | int perf_bias:1; |
| 44 | }; | 40 | }; |
| 45 | int params; | 41 | int params; |
| 46 | } params; | 42 | } params; |
| 47 | int sched_mc = 0, sched_smt = 0, perf_bias = 0; | 43 | int perf_bias = 0; |
| 48 | int ret = 0; | 44 | int ret = 0; |
| 49 | 45 | ||
| 50 | setlocale(LC_ALL, ""); | 46 | setlocale(LC_ALL, ""); |
| @@ -52,7 +48,7 @@ int cmd_set(int argc, char **argv) | |||
| 52 | 48 | ||
| 53 | params.params = 0; | 49 | params.params = 0; |
| 54 | /* parameter parsing */ | 50 | /* parameter parsing */ |
| 55 | while ((ret = getopt_long(argc, argv, "m:s:b:", | 51 | while ((ret = getopt_long(argc, argv, "b:", |
| 56 | set_opts, NULL)) != -1) { | 52 | set_opts, NULL)) != -1) { |
| 57 | switch (ret) { | 53 | switch (ret) { |
| 58 | case 'b': | 54 | case 'b': |
| @@ -66,28 +62,6 @@ int cmd_set(int argc, char **argv) | |||
| 66 | } | 62 | } |
| 67 | params.perf_bias = 1; | 63 | params.perf_bias = 1; |
| 68 | break; | 64 | break; |
| 69 | case 'm': | ||
| 70 | if (params.sched_mc) | ||
| 71 | print_wrong_arg_exit(); | ||
| 72 | sched_mc = atoi(optarg); | ||
| 73 | if (sched_mc < 0 || sched_mc > 2) { | ||
| 74 | printf(_("--sched-mc param out " | ||
| 75 | "of range [0-%d]\n"), 2); | ||
| 76 | print_wrong_arg_exit(); | ||
| 77 | } | ||
| 78 | params.sched_mc = 1; | ||
| 79 | break; | ||
| 80 | case 's': | ||
| 81 | if (params.sched_smt) | ||
| 82 | print_wrong_arg_exit(); | ||
| 83 | sched_smt = atoi(optarg); | ||
| 84 | if (sched_smt < 0 || sched_smt > 2) { | ||
| 85 | printf(_("--sched-smt param out " | ||
| 86 | "of range [0-%d]\n"), 2); | ||
| 87 | print_wrong_arg_exit(); | ||
| 88 | } | ||
| 89 | params.sched_smt = 1; | ||
| 90 | break; | ||
| 91 | default: | 65 | default: |
| 92 | print_wrong_arg_exit(); | 66 | print_wrong_arg_exit(); |
| 93 | } | 67 | } |
| @@ -96,19 +70,6 @@ int cmd_set(int argc, char **argv) | |||
| 96 | if (!params.params) | 70 | if (!params.params) |
| 97 | print_wrong_arg_exit(); | 71 | print_wrong_arg_exit(); |
| 98 | 72 | ||
| 99 | if (params.sched_mc) { | ||
| 100 | ret = sysfs_set_sched("mc", sched_mc); | ||
| 101 | if (ret) | ||
| 102 | fprintf(stderr, _("Error setting sched-mc %s\n"), | ||
| 103 | (ret == -ENODEV) ? "not supported" : ""); | ||
| 104 | } | ||
| 105 | if (params.sched_smt) { | ||
| 106 | ret = sysfs_set_sched("smt", sched_smt); | ||
| 107 | if (ret) | ||
| 108 | fprintf(stderr, _("Error setting sched-smt %s\n"), | ||
| 109 | (ret == -ENODEV) ? "not supported" : ""); | ||
| 110 | } | ||
| 111 | |||
| 112 | /* Default is: set all CPUs */ | 73 | /* Default is: set all CPUs */ |
| 113 | if (bitmask_isallclear(cpus_chosen)) | 74 | if (bitmask_isallclear(cpus_chosen)) |
| 114 | bitmask_setall(cpus_chosen); | 75 | bitmask_setall(cpus_chosen); |
