Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
a1ce5ba2
Commit
a1ce5ba2
authored
Apr 19, 2011
by
Dominik Brodowski
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cpupowerutils: utils - ConfigStyle bugfixes
Signed-off-by:
Dominik Brodowski
<
linux@dominikbrodowski.net
>
parent
2cd005ca
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
122 additions
and
108 deletions
+122
-108
tools/power/cpupower/utils/cpufreq-info.c
tools/power/cpupower/utils/cpufreq-info.c
+68
-55
tools/power/cpupower/utils/cpufreq-set.c
tools/power/cpupower/utils/cpufreq-set.c
+13
-12
tools/power/cpupower/utils/cpuidle-info.c
tools/power/cpupower/utils/cpuidle-info.c
+13
-14
tools/power/cpupower/utils/cpupower-info.c
tools/power/cpupower/utils/cpupower-info.c
+8
-9
tools/power/cpupower/utils/cpupower-set.c
tools/power/cpupower/utils/cpupower-set.c
+8
-8
tools/power/cpupower/utils/cpupower.c
tools/power/cpupower/utils/cpupower.c
+12
-10
No files found.
tools/power/cpupower/utils/cpufreq-info.c
View file @
a1ce5ba2
...
...
@@ -27,7 +27,7 @@ static unsigned int count_cpus(void)
unsigned
int
cpunr
=
0
;
fp
=
fopen
(
"/proc/stat"
,
"r"
);
if
(
!
fp
)
{
if
(
!
fp
)
{
printf
(
_
(
"Couldn't count the number of CPUs (%s: %s), assuming 1
\n
"
),
"/proc/stat"
,
strerror
(
errno
));
return
1
;
}
...
...
@@ -48,7 +48,7 @@ static unsigned int count_cpus(void)
fclose
(
fp
);
/* cpu count starts from 0, on error return 1 (UP) */
return
(
ret
+
1
)
;
return
ret
+
1
;
}
...
...
@@ -63,7 +63,7 @@ static void proc_cpufreq_output(void)
printf
(
_
(
" minimum CPU frequency - maximum CPU frequency - governor
\n
"
));
nr_cpus
=
count_cpus
();
for
(
cpu
=
0
;
cpu
<
nr_cpus
;
cpu
++
)
{
for
(
cpu
=
0
;
cpu
<
nr_cpus
;
cpu
++
)
{
policy
=
cpufreq_get_policy
(
cpu
);
if
(
!
policy
)
continue
;
...
...
@@ -75,7 +75,8 @@ static void proc_cpufreq_output(void)
max_pctg
=
(
policy
->
max
*
100
)
/
max
;
}
printf
(
"CPU%3d %9lu kHz (%3d %%) - %9lu kHz (%3d %%) - %s
\n
"
,
cpu
,
policy
->
min
,
max
?
min_pctg
:
0
,
policy
->
max
,
max
?
max_pctg
:
0
,
policy
->
governor
);
cpu
,
policy
->
min
,
max
?
min_pctg
:
0
,
policy
->
max
,
max
?
max_pctg
:
0
,
policy
->
governor
);
cpufreq_put_policy
(
policy
);
}
...
...
@@ -89,21 +90,21 @@ static void print_speed(unsigned long speed)
tmp
=
speed
%
10000
;
if
(
tmp
>=
5000
)
speed
+=
10000
;
printf
(
"%u.%02u GHz"
,
((
unsigned
int
)
speed
/
1000000
),
printf
(
"%u.%02u GHz"
,
((
unsigned
int
)
speed
/
1000000
),
((
unsigned
int
)
(
speed
%
1000000
)
/
10000
));
}
else
if
(
speed
>
100000
)
{
tmp
=
speed
%
1000
;
if
(
tmp
>=
500
)
speed
+=
1000
;
printf
(
"%u MHz"
,
((
unsigned
int
)
speed
/
1000
));
printf
(
"%u MHz"
,
((
unsigned
int
)
speed
/
1000
));
}
else
if
(
speed
>
1000
)
{
tmp
=
speed
%
100
;
if
(
tmp
>=
50
)
speed
+=
100
;
printf
(
"%u.%01u MHz"
,
((
unsigned
int
)
speed
/
1000
),
printf
(
"%u.%01u MHz"
,
((
unsigned
int
)
speed
/
1000
),
((
unsigned
int
)
(
speed
%
1000
)
/
100
));
}
else
printf
(
"%lu kHz"
,
speed
);
printf
(
"%lu kHz"
,
speed
);
return
;
}
...
...
@@ -116,28 +117,29 @@ static void print_duration(unsigned long duration)
tmp
=
duration
%
10000
;
if
(
tmp
>=
5000
)
duration
+=
10000
;
printf
(
"%u.%02u ms"
,
((
unsigned
int
)
duration
/
1000000
),
printf
(
"%u.%02u ms"
,
((
unsigned
int
)
duration
/
1000000
),
((
unsigned
int
)
(
duration
%
1000000
)
/
10000
));
}
else
if
(
duration
>
100000
)
{
tmp
=
duration
%
1000
;
if
(
tmp
>=
500
)
duration
+=
1000
;
printf
(
"%u us"
,
((
unsigned
int
)
duration
/
1000
));
printf
(
"%u us"
,
((
unsigned
int
)
duration
/
1000
));
}
else
if
(
duration
>
1000
)
{
tmp
=
duration
%
100
;
if
(
tmp
>=
50
)
duration
+=
100
;
printf
(
"%u.%01u us"
,
((
unsigned
int
)
duration
/
1000
),
printf
(
"%u.%01u us"
,
((
unsigned
int
)
duration
/
1000
),
((
unsigned
int
)
(
duration
%
1000
)
/
100
));
}
else
printf
(
"%lu ns"
,
duration
);
printf
(
"%lu ns"
,
duration
);
return
;
}
/* --boost / -b */
static
int
get_boost_mode
(
unsigned
int
cpu
)
{
static
int
get_boost_mode
(
unsigned
int
cpu
)
{
int
support
,
active
,
b_states
=
0
,
ret
,
pstate_no
,
i
;
/* ToDo: Make this more global */
unsigned
long
pstates
[
MAX_HW_PSTATES
]
=
{
0
,};
...
...
@@ -158,13 +160,13 @@ static int get_boost_mode(unsigned int cpu) {
&& (cpuid_edx(0x80000007) & (1 << 7)))
*/
printf
(
_
(
" boost state support:
\n
"
));
printf
(
_
(
" boost state support:
\n
"
));
printf
(
_
(
" Supported: %s
\n
"
),
support
?
_
(
"yes"
)
:
_
(
"no"
));
printf
(
_
(
" Active: %s
\n
"
),
active
?
_
(
"yes"
)
:
_
(
"no"
));
/* ToDo: Only works for AMD for now... */
if
(
cpupower_cpu_info
.
vendor
==
X86_VENDOR_AMD
&&
cpupower_cpu_info
.
family
>=
0x10
)
{
ret
=
decode_pstates
(
cpu
,
cpupower_cpu_info
.
family
,
b_states
,
...
...
@@ -196,12 +198,11 @@ static void debug_output_one(unsigned int cpu)
unsigned
long
total_trans
,
latency
;
unsigned
long
long
total_time
;
struct
cpufreq_policy
*
policy
;
struct
cpufreq_available_governors
*
governors
;
struct
cpufreq_available_governors
*
governors
;
struct
cpufreq_stats
*
stats
;
if
(
cpufreq_cpu_exists
(
cpu
))
{
if
(
cpufreq_cpu_exists
(
cpu
))
return
;
}
freq_kernel
=
cpufreq_get_freq_kernel
(
cpu
);
freq_hardware
=
cpufreq_get_freq_hardware
(
cpu
);
...
...
@@ -294,8 +295,7 @@ static void debug_output_one(unsigned int cpu)
if
(
freq_hardware
)
{
print_speed
(
freq_hardware
);
printf
(
_
(
" (asserted by call to hardware)"
));
}
else
}
else
print_speed
(
freq_kernel
);
printf
(
".
\n
"
);
}
...
...
@@ -322,7 +322,8 @@ static void debug_output_one(unsigned int cpu)
/* --freq / -f */
static
int
get_freq_kernel
(
unsigned
int
cpu
,
unsigned
int
human
)
{
static
int
get_freq_kernel
(
unsigned
int
cpu
,
unsigned
int
human
)
{
unsigned
long
freq
=
cpufreq_get_freq_kernel
(
cpu
);
if
(
!
freq
)
return
-
EINVAL
;
...
...
@@ -337,7 +338,8 @@ static int get_freq_kernel(unsigned int cpu, unsigned int human) {
/* --hwfreq / -w */
static
int
get_freq_hardware
(
unsigned
int
cpu
,
unsigned
int
human
)
{
static
int
get_freq_hardware
(
unsigned
int
cpu
,
unsigned
int
human
)
{
unsigned
long
freq
=
cpufreq_get_freq_hardware
(
cpu
);
if
(
!
freq
)
return
-
EINVAL
;
...
...
@@ -351,7 +353,8 @@ static int get_freq_hardware(unsigned int cpu, unsigned int human) {
/* --hwlimits / -l */
static
int
get_hardware_limits
(
unsigned
int
cpu
)
{
static
int
get_hardware_limits
(
unsigned
int
cpu
)
{
unsigned
long
min
,
max
;
if
(
cpufreq_get_hardware_limits
(
cpu
,
&
min
,
&
max
))
return
-
EINVAL
;
...
...
@@ -361,7 +364,8 @@ static int get_hardware_limits(unsigned int cpu) {
/* --driver / -d */
static
int
get_driver
(
unsigned
int
cpu
)
{
static
int
get_driver
(
unsigned
int
cpu
)
{
char
*
driver
=
cpufreq_get_driver
(
cpu
);
if
(
!
driver
)
return
-
EINVAL
;
...
...
@@ -372,7 +376,8 @@ static int get_driver(unsigned int cpu) {
/* --policy / -p */
static
int
get_policy
(
unsigned
int
cpu
)
{
static
int
get_policy
(
unsigned
int
cpu
)
{
struct
cpufreq_policy
*
policy
=
cpufreq_get_policy
(
cpu
);
if
(
!
policy
)
return
-
EINVAL
;
...
...
@@ -383,8 +388,10 @@ static int get_policy(unsigned int cpu) {
/* --governors / -g */
static
int
get_available_governors
(
unsigned
int
cpu
)
{
struct
cpufreq_available_governors
*
governors
=
cpufreq_get_available_governors
(
cpu
);
static
int
get_available_governors
(
unsigned
int
cpu
)
{
struct
cpufreq_available_governors
*
governors
=
cpufreq_get_available_governors
(
cpu
);
if
(
!
governors
)
return
-
EINVAL
;
...
...
@@ -400,7 +407,8 @@ static int get_available_governors(unsigned int cpu) {
/* --affected-cpus / -a */
static
int
get_affected_cpus
(
unsigned
int
cpu
)
{
static
int
get_affected_cpus
(
unsigned
int
cpu
)
{
struct
cpufreq_affected_cpus
*
cpus
=
cpufreq_get_affected_cpus
(
cpu
);
if
(
!
cpus
)
return
-
EINVAL
;
...
...
@@ -416,7 +424,8 @@ static int get_affected_cpus(unsigned int cpu) {
/* --related-cpus / -r */
static
int
get_related_cpus
(
unsigned
int
cpu
)
{
static
int
get_related_cpus
(
unsigned
int
cpu
)
{
struct
cpufreq_affected_cpus
*
cpus
=
cpufreq_get_related_cpus
(
cpu
);
if
(
!
cpus
)
return
-
EINVAL
;
...
...
@@ -432,17 +441,19 @@ static int get_related_cpus(unsigned int cpu) {
/* --stats / -s */
static
int
get_freq_stats
(
unsigned
int
cpu
,
unsigned
int
human
)
{
static
int
get_freq_stats
(
unsigned
int
cpu
,
unsigned
int
human
)
{
unsigned
long
total_trans
=
cpufreq_get_transitions
(
cpu
);
unsigned
long
long
total_time
;
struct
cpufreq_stats
*
stats
=
cpufreq_get_stats
(
cpu
,
&
total_time
);
while
(
stats
)
{
if
(
human
)
{
print_speed
(
stats
->
frequency
);
printf
(
":%.2f%%"
,
(
100
.
0
*
stats
->
time_in_state
)
/
total_time
);
}
else
printf
(
"%lu:%llu"
,
stats
->
frequency
,
stats
->
time_in_state
);
printf
(
":%.2f%%"
,
(
100
.
0
*
stats
->
time_in_state
)
/
total_time
);
}
else
printf
(
"%lu:%llu"
,
stats
->
frequency
,
stats
->
time_in_state
);
stats
=
stats
->
next
;
if
(
stats
)
printf
(
", "
);
...
...
@@ -455,7 +466,8 @@ static int get_freq_stats(unsigned int cpu, unsigned int human) {
/* --latency / -y */
static
int
get_latency
(
unsigned
int
cpu
,
unsigned
int
human
)
{
static
int
get_latency
(
unsigned
int
cpu
,
unsigned
int
human
)
{
unsigned
long
latency
=
cpufreq_get_transition_latency
(
cpu
);
if
(
!
latency
)
return
-
EINVAL
;
...
...
@@ -468,7 +480,8 @@ static int get_latency(unsigned int cpu, unsigned int human) {
return
0
;
}
void
freq_info_help
(
void
)
{
void
freq_info_help
(
void
)
{
printf
(
_
(
"Usage: cpupower freqinfo [options]
\n
"
));
printf
(
_
(
"Options:
\n
"
));
printf
(
_
(
" -e, --debug Prints out debug information [default]
\n
"
));
...
...
@@ -494,26 +507,26 @@ void freq_info_help(void) {
printf
(
"
\n
"
);
printf
(
_
(
"If no argument is given, full output about
\n
"
"cpufreq is printed which is useful e.g. for reporting bugs.
\n\n
"
));
printf
(
_
(
"By default info of CPU 0 is shown which can be overridden
\n
"
printf
(
_
(
"By default info of CPU 0 is shown which can be overridden
\n
"
"with the cpupower --cpu main command option.
\n
"
));
}
static
struct
option
info_opts
[]
=
{
{
.
name
=
"debug"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'e'
},
{
.
name
=
"boost"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'b'
},
{
.
name
=
"freq"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'f'
},
{
.
name
=
"hwfreq"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'w'
},
{
.
name
=
"hwlimits"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'l'
},
{
.
name
=
"driver"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'd'
},
{
.
name
=
"policy"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'p'
},
{
.
name
=
"governors"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'g'
},
{
.
name
=
"related-cpus"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'r'
},
{
.
name
=
"affected-cpus"
,.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'a'
},
{
.
name
=
"stats"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
's'
},
{
.
name
=
"latency"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'y'
},
{
.
name
=
"proc"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'o'
},
{
.
name
=
"human"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'm'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
.
name
=
"debug"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'e'
},
{
.
name
=
"boost"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'b'
},
{
.
name
=
"freq"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'f'
},
{
.
name
=
"hwfreq"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'w'
},
{
.
name
=
"hwlimits"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'l'
},
{
.
name
=
"driver"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'd'
},
{
.
name
=
"policy"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'p'
},
{
.
name
=
"governors"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'g'
},
{
.
name
=
"related-cpus"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'r'
},
{
.
name
=
"affected-cpus"
,.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'a'
},
{
.
name
=
"stats"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
's'
},
{
.
name
=
"latency"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'y'
},
{
.
name
=
"proc"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'o'
},
{
.
name
=
"human"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'm'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
},
};
...
...
@@ -572,7 +585,7 @@ int cmd_freq_info(int argc, char **argv)
fprintf
(
stderr
,
"invalid or unknown argument
\n
"
);
return
EXIT_FAILURE
;
}
}
while
(
cont
);
}
while
(
cont
);
switch
(
output_param
)
{
case
'o'
:
...
...
@@ -591,7 +604,7 @@ int cmd_freq_info(int argc, char **argv)
/* Default is: show output of CPU 0 only */
if
(
bitmask_isallclear
(
cpus_chosen
))
bitmask_setbit
(
cpus_chosen
,
0
);
switch
(
output_param
)
{
case
-
1
:
printf
(
_
(
"You can't specify more than one --cpu parameter and/or
\n
"
...
...
@@ -659,7 +672,7 @@ int cmd_freq_info(int argc, char **argv)
break
;
}
if
(
ret
)
return
(
ret
)
;
return
ret
;
}
return
ret
;
}
tools/power/cpupower/utils/cpufreq-set.c
View file @
a1ce5ba2
...
...
@@ -43,12 +43,12 @@ void freq_set_help(void)
}
static
struct
option
set_opts
[]
=
{
{
.
name
=
"min"
,
.
has_arg
=
required_argument
,
.
flag
=
NULL
,
.
val
=
'd'
},
{
.
name
=
"max"
,
.
has_arg
=
required_argument
,
.
flag
=
NULL
,
.
val
=
'u'
},
{
.
name
=
"governor"
,
.
has_arg
=
required_argument
,
.
flag
=
NULL
,
.
val
=
'g'
},
{
.
name
=
"freq"
,
.
has_arg
=
required_argument
,
.
flag
=
NULL
,
.
val
=
'f'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
.
name
=
"related"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'r'
},
{
.
name
=
"min"
,
.
has_arg
=
required_argument
,
.
flag
=
NULL
,
.
val
=
'd'
},
{
.
name
=
"max"
,
.
has_arg
=
required_argument
,
.
flag
=
NULL
,
.
val
=
'u'
},
{
.
name
=
"governor"
,
.
has_arg
=
required_argument
,
.
flag
=
NULL
,
.
val
=
'g'
},
{
.
name
=
"freq"
,
.
has_arg
=
required_argument
,
.
flag
=
NULL
,
.
val
=
'f'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
.
name
=
"related"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'r'
},
{
},
};
...
...
@@ -64,7 +64,7 @@ static void print_error(void)
};
struct
freq_units
{
char
*
str_unit
;
char
*
str_unit
;
int
power_of_ten
;
};
...
...
@@ -204,7 +204,8 @@ static int do_one_cpu(unsigned int cpu, struct cpufreq_policy *new_pol,
else
if
(
new_pol
->
max
)
return
cpufreq_modify_policy_max
(
cpu
,
new_pol
->
max
);
else
if
(
new_pol
->
governor
)
return
cpufreq_modify_policy_governor
(
cpu
,
new_pol
->
governor
);
return
cpufreq_modify_policy_governor
(
cpu
,
new_pol
->
governor
);
default:
/* slow path */
...
...
@@ -282,15 +283,15 @@ int cmd_freq_set(int argc, char **argv)
if
((
strlen
(
optarg
)
<
3
)
||
(
strlen
(
optarg
)
>
18
))
{
print_unknown_arg
();
return
-
EINVAL
;
}
}
if
((
sscanf
(
optarg
,
"%s"
,
gov
))
!=
1
)
{
print_unknown_arg
();
return
-
EINVAL
;
}
}
new_pol
.
governor
=
gov
;
break
;
}
}
while
(
cont
);
}
while
(
cont
);
/* parameter checking */
if
(
double_parm
)
{
...
...
@@ -339,7 +340,7 @@ int cmd_freq_set(int argc, char **argv)
/* loop over CPUs */
for
(
cpu
=
bitmask_first
(
cpus_chosen
);
cpu
<=
bitmask_last
(
cpus_chosen
);
cpu
++
)
{
if
(
!
bitmask_isbitset
(
cpus_chosen
,
cpu
)
||
cpufreq_cpu_exists
(
cpu
))
continue
;
...
...
tools/power/cpupower/utils/cpuidle-info.c
View file @
a1ce5ba2
...
...
@@ -31,8 +31,7 @@ static void cpuidle_cpu_output(unsigned int cpu, int verbose)
if
(
idlestates
==
0
)
{
printf
(
_
(
"CPU %u: No idle states
\n
"
),
cpu
);
return
;
}
else
if
(
idlestates
<=
0
)
{
}
else
if
(
idlestates
<=
0
)
{
printf
(
_
(
"CPU %u: Can't read idle state info
\n
"
),
cpu
);
return
;
}
...
...
@@ -92,7 +91,7 @@ static void cpuidle_general_output(void)
}
printf
(
_
(
"CPUidle driver: %s
\n
"
),
tmp
);
free
(
tmp
);
free
(
tmp
);
tmp
=
sysfs_get_cpuidle_governor
();
if
(
!
tmp
)
{
...
...
@@ -101,7 +100,7 @@ static void cpuidle_general_output(void)
}
printf
(
_
(
"CPUidle governor: %s
\n
"
),
tmp
);
free
(
tmp
);
free
(
tmp
);
}
static
void
proc_cpuidle_cpu_output
(
unsigned
int
cpu
)
...
...
@@ -117,8 +116,7 @@ static void proc_cpuidle_cpu_output(unsigned int cpu)
* printf(_("CPU %u: No C-states available\n"), cpu);
* return;
*/
}
else
if
(
cstates
<=
0
)
{
}
else
if
(
cstates
<=
0
)
{
printf
(
_
(
"CPU %u: Can't read C-state info
\n
"
),
cpu
);
return
;
}
...
...
@@ -143,7 +141,8 @@ static void proc_cpuidle_cpu_output(unsigned int cpu)
/* --freq / -f */
void
idle_info_help
(
void
)
{
void
idle_info_help
(
void
)
{
printf
(
_
(
"Usage: cpupower idleinfo [options]
\n
"
));
printf
(
_
(
"Options:
\n
"
));
printf
(
_
(
" -s, --silent Only show general C-state information
\n
"
));
...
...
@@ -155,9 +154,9 @@ void idle_info_help(void) {
}
static
struct
option
info_opts
[]
=
{
{
.
name
=
"silent"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
's'
},
{
.
name
=
"proc"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'o'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
.
name
=
"silent"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
's'
},
{
.
name
=
"proc"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'o'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
},
};
...
...
@@ -202,7 +201,7 @@ int cmd_idle_info(int argc, char **argv)
output_param
=
ret
;
break
;
}
}
while
(
cont
);
}
while
(
cont
);
switch
(
output_param
)
{
case
-
1
:
...
...
@@ -219,10 +218,10 @@ int cmd_idle_info(int argc, char **argv)
/* Default is: show output of CPU 0 only */
if
(
bitmask_isallclear
(
cpus_chosen
))
bitmask_setbit
(
cpus_chosen
,
0
);
if
(
output_param
==
0
)
cpuidle_general_output
();
for
(
cpu
=
bitmask_first
(
cpus_chosen
);
cpu
<=
bitmask_last
(
cpus_chosen
);
cpu
++
)
{
...
...
@@ -241,5 +240,5 @@ int cmd_idle_info(int argc, char **argv)
break
;
}
}
return
(
EXIT_SUCCESS
)
;
return
EXIT_SUCCESS
;
}
tools/power/cpupower/utils/cpupower-info.c
View file @
a1ce5ba2
...
...
@@ -30,10 +30,10 @@ void info_help(void)
}
static
struct
option
set_opts
[]
=
{
{
.
name
=
"perf-bias"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
'b'
},
{
.
name
=
"sched-mc"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
'm'
},
{
.
name
=
"sched-smt"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
's'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
.
name
=
"perf-bias"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
'b'
},
{
.
name
=
"sched-mc"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
'm'
},
{
.
name
=
"sched-smt"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
's'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
},
};
...
...
@@ -57,12 +57,11 @@ int cmd_info(int argc, char **argv)
int
perf_bias
:
1
;
};
int
params
;
}
params
=
{};
int
ret
=
0
;
setlocale
(
LC_ALL
,
""
);
textdomain
(
PACKAGE
);
textdomain
(
PACKAGE
);
/* parameter parsing */
while
((
ret
=
getopt_long
(
argc
,
argv
,
"msbh"
,
set_opts
,
NULL
))
!=
-
1
)
{
...
...
@@ -105,7 +104,7 @@ int cmd_info(int argc, char **argv)
printf
(
_
(
"not supported
\n
"
));
else
printf
(
"%d
\n
"
,
ret
);
}
}
if
(
params
.
sched_smt
)
{
ret
=
sysfs_get_sched
(
"smt"
);
printf
(
_
(
"System's thread sibling scheduler setting: "
));
...
...
@@ -123,7 +122,7 @@ int cmd_info(int argc, char **argv)
if
(
params
.
perf_bias
)
{
if
(
!
run_as_root
)
{
params
.
perf_bias
=
0
;
printf
(
_
(
"Intel's performance bias setting needs root privileges
\n
"
));
printf
(
_
(
"Intel's performance bias setting needs root privileges
\n
"
));
}
else
if
(
!
(
cpupower_cpu_info
.
caps
&
CPUPOWER_CAP_PERF_BIAS
))
{
printf
(
_
(
"System does not support Intel's performance"
" bias setting
\n
"
));
...
...
@@ -134,7 +133,7 @@ int cmd_info(int argc, char **argv)
/* loop over CPUs */
for
(
cpu
=
bitmask_first
(
cpus_chosen
);
cpu
<=
bitmask_last
(
cpus_chosen
);
cpu
++
)
{
if
(
!
bitmask_isbitset
(
cpus_chosen
,
cpu
)
||
cpufreq_cpu_exists
(
cpu
))
continue
;
...
...
tools/power/cpupower/utils/cpupower-set.c
View file @
a1ce5ba2
...
...
@@ -30,10 +30,10 @@ void set_help(void)
}
static
struct
option
set_opts
[]
=
{
{
.
name
=
"perf-bias"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
'b'
},
{
.
name
=
"sched-mc"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
'm'
},
{
.
name
=
"sched-smt"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
's'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
.
name
=
"perf-bias"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
'b'
},
{
.
name
=
"sched-mc"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
'm'
},
{
.
name
=
"sched-smt"
,
.
has_arg
=
optional_argument
,
.
flag
=
NULL
,
.
val
=
's'
},
{
.
name
=
"help"
,
.
has_arg
=
no_argument
,
.
flag
=
NULL
,
.
val
=
'h'
},
{
},
};
...
...
@@ -57,17 +57,17 @@ int cmd_set(int argc, char **argv)
int
perf_bias
:
1
;
};
int
params
;
}
params
;
int
sched_mc
=
0
,
sched_smt
=
0
,
perf_bias
=
0
;
int
ret
=
0
;
setlocale
(
LC_ALL
,
""
);
textdomain
(
PACKAGE
);
textdomain
(
PACKAGE
);
params
.
params
=
0
;
/* parameter parsing */
while
((
ret
=
getopt_long
(
argc
,
argv
,
"m:s:b:h"
,
set_opts
,
NULL
))
!=
-
1
)
{
while
((
ret
=
getopt_long
(
argc
,
argv
,
"m:s:b:h"
,
set_opts
,
NULL
))
!=
-
1
)
{
switch
(
ret
)
{
case
'h'
:
set_help
();
...
...
@@ -135,7 +135,7 @@ int cmd_set(int argc, char **argv)
/* loop over CPUs */
for
(
cpu
=
bitmask_first
(
cpus_chosen
);
cpu
<=
bitmask_last
(
cpus_chosen
);
cpu
++
)
{
if
(
!
bitmask_isbitset
(
cpus_chosen
,
cpu
)
||
cpufreq_cpu_exists
(
cpu
))
continue
;
...
...
tools/power/cpupower/utils/cpupower.c
View file @
a1ce5ba2
...
...
@@ -50,8 +50,8 @@ static struct cmd_struct commands[] = {
{
"set"
,
cmd_set
,
set_help
,
1
},
{
"info"
,
cmd_info
,
info_help
,
0
},
{
"monitor"
,
cmd_monitor
,
monitor_help
,
0
},
{
"help"
,
cmd_help
,
print_help
,
0
},
/
/ { "bench", cmd_bench, NULL, 1 },
{
"help"
,
cmd_help
,
print_help
,
0
},
/
* { "bench", cmd_bench, NULL, 1 }, */
};
int
cmd_help
(
int
argc
,
const
char
**
argv
)
...
...
@@ -95,8 +95,9 @@ static void print_help(void)
printf
(
_
(
"
\n
Use cpupower help subcommand for getting help for above subcommands.
\n
"
));
}
static
void
print_version
(
void
)
{
printf
(
PACKAGE
" "
VERSION
"
\n
"
);
static
void
print_version
(
void
)
{
printf
(
PACKAGE
" "
VERSION
"
\n
"
);
printf
(
_
(
"Report errors and bugs to %s, please.
\n
"
),
PACKAGE_BUGREPORT
);
}
...
...
@@ -109,10 +110,10 @@ static void handle_options(int *argc, const char ***argv)
for
(
x
=
0
;
x
<
*
argc
&&
((
*
argv
)[
x
])[
0
]
==
'-'
;
x
++
)
{
const
char
*
param
=
(
*
argv
)[
x
];
if
(
!
strcmp
(
param
,
"-h"
)
||
!
strcmp
(
param
,
"--help"
)){
if
(
!
strcmp
(
param
,
"-h"
)
||
!
strcmp
(
param
,
"--help"
))
{
print_help
();
exit
(
EXIT_SUCCESS
);
}
else
if
(
!
strcmp
(
param
,
"-c"
)
||
!
strcmp
(
param
,
"--cpu"
)){
}
else
if
(
!
strcmp
(
param
,
"-c"
)
||
!
strcmp
(
param
,
"--cpu"
))
{
if
(
*
argc
<
2
)
{
print_help
();
exit
(
EXIT_FAILURE
);
...
...
@@ -132,13 +133,14 @@ static void handle_options(int *argc, const char ***argv)
/* Cut out param: cpupower -c 1 info -> cpupower info */
new_argc
+=
2
;
continue
;
}
else
if
(
!
strcmp
(
param
,
"-v"
)
||
!
strcmp
(
param
,
"--version"
)){
}
else
if
(
!
strcmp
(
param
,
"-v"
)
||
!
strcmp
(
param
,
"--version"
))
{
print_version
();
exit
(
EXIT_SUCCESS
);
#ifdef DEBUG
}
else
if
(
!
strcmp
(
param
,
"-d"
)
||
!
strcmp
(
param
,
"--debug"
)){
}
else
if
(
!
strcmp
(
param
,
"-d"
)
||
!
strcmp
(
param
,
"--debug"
))
{
be_verbose
=
1
;
new_argc
++
;
new_argc
++
;
continue
;
#endif
}
else
{
...
...
@@ -171,7 +173,7 @@ int main(int argc, const char *argv[])
}
setlocale
(
LC_ALL
,
""
);
textdomain
(
PACKAGE
);
textdomain
(
PACKAGE
);
/* Turn "perf cmd --help" into "perf help cmd" */
if
(
argc
>
1
&&
!
strcmp
(
argv
[
1
],
"--help"
))
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment