mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
cgroup: Fixes for v6.17-rc2
- Fix NULL de-ref in css_rstat_exit() which could happen after allocation failure. - Fix a cpuset partition handling bug and a couple other misc issues. - Doc spelling fix. -----BEGIN PGP SIGNATURE----- iIQEABYKACwWIQTfIjM1kS57o3GsC/uxYfJx3gVYGQUCaKd9WQ4cdGpAa2VybmVs Lm9yZwAKCRCxYfJx3gVYGd3pAQCkqjlcHyKBOr8AXCcNmisyj0PvSFJwmcCWf3Mu 7gsJ0wEAjxqs+otIPHzjhQlRBMN1vhwn5/B/xVqKO57pCHtrGQY= =zj8n -----END PGP SIGNATURE----- Merge tag 'cgroup-for-6.17-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup fixes from Tejun Heo: - Fix NULL de-ref in css_rstat_exit() which could happen after allocation failure - Fix a cpuset partition handling bug and a couple other misc issues - Doc spelling fix * tag 'cgroup-for-6.17-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: docs: cgroup: fixed spelling mistakes in documentation cgroup: avoid null de-ref in css_rstat_exit() cgroup/cpuset: Remove the unnecessary css_get/put() in cpuset_partition_write() cgroup/cpuset: Fix a partition error with CPU hotplug cgroup/cpuset: Use static_branch_enable_cpuslocked() on cpusets_insane_config_key
This commit is contained in:
commit
3957a57201
|
|
@ -435,8 +435,8 @@ both cgroups.
|
|||
Controlling Controllers
|
||||
-----------------------
|
||||
|
||||
Availablity
|
||||
~~~~~~~~~~~
|
||||
Availability
|
||||
~~~~~~~~~~~~
|
||||
|
||||
A controller is available in a cgroup when it is supported by the kernel (i.e.,
|
||||
compiled in, not disabled and not attached to a v1 hierarchy) and listed in the
|
||||
|
|
|
|||
|
|
@ -280,7 +280,7 @@ static inline void check_insane_mems_config(nodemask_t *nodes)
|
|||
{
|
||||
if (!cpusets_insane_config() &&
|
||||
movable_only_nodes(nodes)) {
|
||||
static_branch_enable(&cpusets_insane_config_key);
|
||||
static_branch_enable_cpuslocked(&cpusets_insane_config_key);
|
||||
pr_info("Unsupported (movable nodes only) cpuset configuration detected (nmask=%*pbl)!\n"
|
||||
"Cpuset allocations might fail even with a lot of memory available.\n",
|
||||
nodemask_pr_args(nodes));
|
||||
|
|
@ -1843,7 +1843,7 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
|
|||
if (is_partition_valid(cs))
|
||||
adding = cpumask_and(tmp->addmask,
|
||||
xcpus, parent->effective_xcpus);
|
||||
} else if (is_partition_invalid(cs) &&
|
||||
} else if (is_partition_invalid(cs) && !cpumask_empty(xcpus) &&
|
||||
cpumask_subset(xcpus, parent->effective_xcpus)) {
|
||||
struct cgroup_subsys_state *css;
|
||||
struct cpuset *child;
|
||||
|
|
@ -3358,14 +3358,12 @@ static ssize_t cpuset_partition_write(struct kernfs_open_file *of, char *buf,
|
|||
else
|
||||
return -EINVAL;
|
||||
|
||||
css_get(&cs->css);
|
||||
cpus_read_lock();
|
||||
mutex_lock(&cpuset_mutex);
|
||||
if (is_cpuset_online(cs))
|
||||
retval = update_prstate(cs, val);
|
||||
mutex_unlock(&cpuset_mutex);
|
||||
cpus_read_unlock();
|
||||
css_put(&cs->css);
|
||||
return retval ?: nbytes;
|
||||
}
|
||||
|
||||
|
|
@ -3870,9 +3868,10 @@ static void cpuset_hotplug_update_tasks(struct cpuset *cs, struct tmpmasks *tmp)
|
|||
partcmd = partcmd_invalidate;
|
||||
/*
|
||||
* On the other hand, an invalid partition root may be transitioned
|
||||
* back to a regular one.
|
||||
* back to a regular one with a non-empty effective xcpus.
|
||||
*/
|
||||
else if (is_partition_valid(parent) && is_partition_invalid(cs))
|
||||
else if (is_partition_valid(parent) && is_partition_invalid(cs) &&
|
||||
!cpumask_empty(cs->effective_xcpus))
|
||||
partcmd = partcmd_update;
|
||||
|
||||
if (partcmd >= 0) {
|
||||
|
|
|
|||
|
|
@ -479,6 +479,9 @@ void css_rstat_exit(struct cgroup_subsys_state *css)
|
|||
if (!css_uses_rstat(css))
|
||||
return;
|
||||
|
||||
if (!css->rstat_cpu)
|
||||
return;
|
||||
|
||||
css_rstat_flush(css);
|
||||
|
||||
/* sanity check */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user