aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/cpu-freq/governors.txt26
-rw-r--r--drivers/cpufreq/cpufreq_conservative.c17
-rw-r--r--drivers/cpufreq/cpufreq_ondemand.c18
3 files changed, 18 insertions, 43 deletions
diff --git a/Documentation/cpu-freq/governors.txt b/Documentation/cpu-freq/governors.txt
index ce73f3eb5ddb..aed082f49d09 100644
--- a/Documentation/cpu-freq/governors.txt
+++ b/Documentation/cpu-freq/governors.txt
@@ -119,10 +119,6 @@ want the kernel to look at the CPU usage and to make decisions on
119what to do about the frequency. Typically this is set to values of 119what to do about the frequency. Typically this is set to values of
120around '10000' or more. It's default value is (cmp. with users-guide.txt): 120around '10000' or more. It's default value is (cmp. with users-guide.txt):
121transition_latency * 1000 121transition_latency * 1000
122The lowest value you can set is:
123transition_latency * 100 or it may get restricted to a value where it
124makes not sense for the kernel anymore to poll that often which depends
125on your HZ config variable (HZ=1000: max=20000us, HZ=250: max=5000).
126Be aware that transition latency is in ns and sampling_rate is in us, so you 122Be aware that transition latency is in ns and sampling_rate is in us, so you
127get the same sysfs value by default. 123get the same sysfs value by default.
128Sampling rate should always get adjusted considering the transition latency 124Sampling rate should always get adjusted considering the transition latency
@@ -131,14 +127,20 @@ in the bash (as said, 1000 is default), do:
131echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) \ 127echo `$(($(cat cpuinfo_transition_latency) * 750 / 1000)) \
132 >ondemand/sampling_rate 128 >ondemand/sampling_rate
133 129
134show_sampling_rate_(min|max): THIS INTERFACE IS DEPRECATED, DON'T USE IT. 130show_sampling_rate_min:
135You can use wider ranges now and the general 131The sampling rate is limited by the HW transition latency:
136cpuinfo_transition_latency variable (cmp. with user-guide.txt) can be 132transition_latency * 100
137used to obtain exactly the same info: 133Or by kernel restrictions:
138show_sampling_rate_min = transtition_latency * 500 / 1000 134If CONFIG_NO_HZ is set, the limit is 10ms fixed.
139show_sampling_rate_max = transtition_latency * 500000 / 1000 135If CONFIG_NO_HZ is not set or no_hz=off boot parameter is used, the
140(divided by 1000 is to illustrate that sampling rate is in us and 136limits depend on the CONFIG_HZ option:
141transition latency is exported ns). 137HZ=1000: min=20000us (20ms)
138HZ=250: min=80000us (80ms)
139HZ=100: min=200000us (200ms)
140The highest value of kernel and HW latency restrictions is shown and
141used as the minimum sampling rate.
142
143show_sampling_rate_max: THIS INTERFACE IS DEPRECATED, DON'T USE IT.
142 144
143up_threshold: defines what the average CPU usage between the samplings 145up_threshold: defines what the average CPU usage between the samplings
144of 'sampling_rate' needs to be for the kernel to make a decision on 146of 'sampling_rate' needs to be for the kernel to make a decision on
diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufreq_conservative.c
index 06bfe1c572cd..7fc58af748b4 100644
--- a/drivers/cpufreq/cpufreq_conservative.c
+++ b/drivers/cpufreq/cpufreq_conservative.c
@@ -167,26 +167,13 @@ static struct notifier_block dbs_cpufreq_notifier_block = {
167/************************** sysfs interface ************************/ 167/************************** sysfs interface ************************/
168static ssize_t show_sampling_rate_max(struct cpufreq_policy *policy, char *buf) 168static ssize_t show_sampling_rate_max(struct cpufreq_policy *policy, char *buf)
169{ 169{
170 static int print_once; 170 printk_once(KERN_INFO "CPUFREQ: conservative sampling_rate_max "
171 171 "sysfs file is deprecated - used by: %s\n", current->comm);
172 if (!print_once) {
173 printk(KERN_INFO "CPUFREQ: conservative sampling_rate_max "
174 "sysfs file is deprecated - used by: %s\n",
175 current->comm);
176 print_once = 1;
177 }
178 return sprintf(buf, "%u\n", -1U); 172 return sprintf(buf, "%u\n", -1U);
179} 173}
180 174
181static ssize_t show_sampling_rate_min(struct cpufreq_policy *policy, char *buf) 175static ssize_t show_sampling_rate_min(struct cpufreq_policy *policy, char *buf)
182{ 176{
183 static int print_once;
184
185 if (!print_once) {
186 printk(KERN_INFO "CPUFREQ: conservative sampling_rate_max "
187 "sysfs file is deprecated - used by: %s\n", current->comm);
188 print_once = 1;
189 }
190 return sprintf(buf, "%u\n", min_sampling_rate); 177 return sprintf(buf, "%u\n", min_sampling_rate);
191} 178}
192 179
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
index a235114c3d85..1911d1729353 100644
--- a/drivers/cpufreq/cpufreq_ondemand.c
+++ b/drivers/cpufreq/cpufreq_ondemand.c
@@ -205,27 +205,13 @@ static void ondemand_powersave_bias_init(void)
205/************************** sysfs interface ************************/ 205/************************** sysfs interface ************************/
206static ssize_t show_sampling_rate_max(struct cpufreq_policy *policy, char *buf) 206static ssize_t show_sampling_rate_max(struct cpufreq_policy *policy, char *buf)
207{ 207{
208 static int print_once; 208 printk_once(KERN_INFO "CPUFREQ: ondemand sampling_rate_max "
209 209 "sysfs file is deprecated - used by: %s\n", current->comm);
210 if (!print_once) {
211 printk(KERN_INFO "CPUFREQ: ondemand sampling_rate_max "
212 "sysfs file is deprecated - used by: %s\n",
213 current->comm);
214 print_once = 1;
215 }
216 return sprintf(buf, "%u\n", -1U); 210 return sprintf(buf, "%u\n", -1U);
217} 211}
218 212
219static ssize_t show_sampling_rate_min(struct cpufreq_policy *policy, char *buf) 213static ssize_t show_sampling_rate_min(struct cpufreq_policy *policy, char *buf)
220{ 214{
221 static int print_once;
222
223 if (!print_once) {
224 printk(KERN_INFO "CPUFREQ: ondemand sampling_rate_min "
225 "sysfs file is deprecated - used by: %s\n",
226 current->comm);
227 print_once = 1;
228 }
229 return sprintf(buf, "%u\n", min_sampling_rate); 215 return sprintf(buf, "%u\n", min_sampling_rate);
230} 216}
231 217