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/power | |
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/power')
-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); |