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
43dde64b
Commit
43dde64b
authored
Aug 23, 2021
by
Rafael J. Wysocki
Browse files
Options
Browse Files
Download
Plain Diff
Merge back cpufreq changes for v5.15.
parents
a87a1096
e5c6b312
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
25 additions
and
19 deletions
+25
-19
drivers/cpufreq/acpi-cpufreq.c
drivers/cpufreq/acpi-cpufreq.c
+2
-2
drivers/cpufreq/cpufreq.c
drivers/cpufreq/cpufreq.c
+3
-3
drivers/cpufreq/cpufreq_ondemand.c
drivers/cpufreq/cpufreq_ondemand.c
+2
-2
drivers/cpufreq/intel_pstate.c
drivers/cpufreq/intel_pstate.c
+2
-2
drivers/cpufreq/powernow-k8.c
drivers/cpufreq/powernow-k8.c
+3
-3
drivers/cpufreq/powernv-cpufreq.c
drivers/cpufreq/powernv-cpufreq.c
+2
-2
kernel/sched/cpufreq_schedutil.c
kernel/sched/cpufreq_schedutil.c
+11
-5
No files found.
drivers/cpufreq/acpi-cpufreq.c
View file @
43dde64b
...
...
@@ -163,9 +163,9 @@ static ssize_t store_cpb(struct cpufreq_policy *policy, const char *buf,
if
(
ret
||
val
>
1
)
return
-
EINVAL
;
get_online_cpus
();
cpus_read_lock
();
set_boost
(
policy
,
val
);
put_online_cpus
();
cpus_read_unlock
();
return
count
;
}
...
...
drivers/cpufreq/cpufreq.c
View file @
43dde64b
...
...
@@ -2654,18 +2654,18 @@ int cpufreq_boost_trigger_state(int state)
cpufreq_driver
->
boost_enabled
=
state
;
write_unlock_irqrestore
(
&
cpufreq_driver_lock
,
flags
);
get_online_cpus
();
cpus_read_lock
();
for_each_active_policy
(
policy
)
{
ret
=
cpufreq_driver
->
set_boost
(
policy
,
state
);
if
(
ret
)
goto
err_reset_state
;
}
put_online_cpus
();
cpus_read_unlock
();
return
0
;
err_reset_state:
put_online_cpus
();
cpus_read_unlock
();
write_lock_irqsave
(
&
cpufreq_driver_lock
,
flags
);
cpufreq_driver
->
boost_enabled
=
!
state
;
...
...
drivers/cpufreq/cpufreq_ondemand.c
View file @
43dde64b
...
...
@@ -418,7 +418,7 @@ static void od_set_powersave_bias(unsigned int powersave_bias)
default_powersave_bias
=
powersave_bias
;
cpumask_clear
(
&
done
);
get_online_cpus
();
cpus_read_lock
();
for_each_online_cpu
(
cpu
)
{
struct
cpufreq_policy
*
policy
;
struct
policy_dbs_info
*
policy_dbs
;
...
...
@@ -442,7 +442,7 @@ static void od_set_powersave_bias(unsigned int powersave_bias)
od_tuners
=
dbs_data
->
tuners
;
od_tuners
->
powersave_bias
=
default_powersave_bias
;
}
put_online_cpus
();
cpus_read_unlock
();
}
void
od_register_powersave_bias_handler
(
unsigned
int
(
*
f
)
...
...
drivers/cpufreq/intel_pstate.c
View file @
43dde64b
...
...
@@ -2969,7 +2969,7 @@ static void intel_pstate_driver_cleanup(void)
{
unsigned
int
cpu
;
get_online_cpus
();
cpus_read_lock
();
for_each_online_cpu
(
cpu
)
{
if
(
all_cpu_data
[
cpu
])
{
if
(
intel_pstate_driver
==
&
intel_pstate
)
...
...
@@ -2979,7 +2979,7 @@ static void intel_pstate_driver_cleanup(void)
all_cpu_data
[
cpu
]
=
NULL
;
}
}
put_online_cpus
();
cpus_read_unlock
();
intel_pstate_driver
=
NULL
;
}
...
...
drivers/cpufreq/powernow-k8.c
View file @
43dde64b
...
...
@@ -1180,7 +1180,7 @@ static int powernowk8_init(void)
if
(
!
x86_match_cpu
(
powernow_k8_ids
))
return
-
ENODEV
;
get_online_cpus
();
cpus_read_lock
();
for_each_online_cpu
(
i
)
{
smp_call_function_single
(
i
,
check_supported_cpu
,
&
ret
,
1
);
if
(
!
ret
)
...
...
@@ -1188,10 +1188,10 @@ static int powernowk8_init(void)
}
if
(
supported_cpus
!=
num_online_cpus
())
{
put_online_cpus
();
cpus_read_unlock
();
return
-
ENODEV
;
}
put_online_cpus
();
cpus_read_unlock
();
ret
=
cpufreq_register_driver
(
&
cpufreq_amd64_driver
);
if
(
ret
)
...
...
drivers/cpufreq/powernv-cpufreq.c
View file @
43dde64b
...
...
@@ -918,7 +918,7 @@ static void powernv_cpufreq_work_fn(struct work_struct *work)
unsigned
int
cpu
;
cpumask_t
mask
;
get_online_cpus
();
cpus_read_lock
();
cpumask_and
(
&
mask
,
&
chip
->
mask
,
cpu_online_mask
);
smp_call_function_any
(
&
mask
,
powernv_cpufreq_throttle_check
,
NULL
,
0
);
...
...
@@ -939,7 +939,7 @@ static void powernv_cpufreq_work_fn(struct work_struct *work)
cpufreq_cpu_put
(
policy
);
}
out:
put_online_cpus
();
cpus_read_unlock
();
}
static
int
powernv_cpufreq_occ_msg
(
struct
notifier_block
*
nb
,
...
...
kernel/sched/cpufreq_schedutil.c
View file @
43dde64b
...
...
@@ -537,9 +537,17 @@ static struct attribute *sugov_attrs[] = {
};
ATTRIBUTE_GROUPS
(
sugov
);
static
void
sugov_tunables_free
(
struct
kobject
*
kobj
)
{
struct
gov_attr_set
*
attr_set
=
container_of
(
kobj
,
struct
gov_attr_set
,
kobj
);
kfree
(
to_sugov_tunables
(
attr_set
));
}
static
struct
kobj_type
sugov_tunables_ktype
=
{
.
default_groups
=
sugov_groups
,
.
sysfs_ops
=
&
governor_sysfs_ops
,
.
release
=
&
sugov_tunables_free
,
};
/********************** cpufreq governor interface *********************/
...
...
@@ -639,12 +647,10 @@ static struct sugov_tunables *sugov_tunables_alloc(struct sugov_policy *sg_polic
return
tunables
;
}
static
void
sugov_
tunables_free
(
struct
sugov_tunables
*
tunables
)
static
void
sugov_
clear_global_tunables
(
void
)
{
if
(
!
have_governor_per_policy
())
global_tunables
=
NULL
;
kfree
(
tunables
);
}
static
int
sugov_init
(
struct
cpufreq_policy
*
policy
)
...
...
@@ -707,7 +713,7 @@ static int sugov_init(struct cpufreq_policy *policy)
fail:
kobject_put
(
&
tunables
->
attr_set
.
kobj
);
policy
->
governor_data
=
NULL
;
sugov_
tunables_free
(
tunables
);
sugov_
clear_global_tunables
(
);
stop_kthread:
sugov_kthread_stop
(
sg_policy
);
...
...
@@ -734,7 +740,7 @@ static void sugov_exit(struct cpufreq_policy *policy)
count
=
gov_attr_set_put
(
&
tunables
->
attr_set
,
&
sg_policy
->
tunables_hook
);
policy
->
governor_data
=
NULL
;
if
(
!
count
)
sugov_
tunables_free
(
tunables
);
sugov_
clear_global_tunables
(
);
mutex_unlock
(
&
global_tunables_lock
);
...
...
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