mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
cgroup: Fixes for v7.1-rc6
One cpuset fix and a maintenance update, both low-risk:
- Fix cpuset partition CPU accounting under sibling CPU exclusion that could
produce wrong CPU assignments and trigger scheduling-domain warnings.
Includes selftests.
- Update an email address in MAINTAINERS.
-----BEGIN PGP SIGNATURE-----
iIQEABYKACwWIQTfIjM1kS57o3GsC/uxYfJx3gVYGQUCah9Z6A4cdGpAa2VybmVs
Lm9yZwAKCRCxYfJx3gVYGVX5AP4+fK552V1p4VmIyvIJoWnejnwj5iqLLQ5ibTYM
gCFESQEA2IdF+YizlhcU7kMqkER7N6natK/jRUjPTnv/9IFqcAc=
=tevl
-----END PGP SIGNATURE-----
Merge tag 'cgroup-for-7.1-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
Pull cgroup fixes from Tejun Heo:
"One cpuset fix and a maintenance update, both low-risk:
- Fix cpuset partition CPU accounting under sibling CPU exclusion
that could produce wrong CPU assignments and trigger
scheduling-domain warnings. Includes selftests.
- Update an email address in MAINTAINERS"
* tag 'cgroup-for-7.1-rc6-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
cgroup/cpuset: Change Ridong's email
cgroup/cpuset: Add test cases for sibling CPU exclusion on partition update
cgroup/cpuset: Use effective_xcpus in partcmd_update add/del mask calculation
This commit is contained in:
commit
e7524845cd
|
|
@ -6535,7 +6535,7 @@ F: include/linux/blk-cgroup.h
|
|||
|
||||
CONTROL GROUP - CPUSET
|
||||
M: Waiman Long <longman@redhat.com>
|
||||
R: Chen Ridong <chenridong@huaweicloud.com>
|
||||
R: Ridong Chen <ridong.chen@linux.dev>
|
||||
L: cgroups@vger.kernel.org
|
||||
S: Maintained
|
||||
T: git git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
|
||||
|
|
|
|||
|
|
@ -1811,9 +1811,9 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
|
|||
* Compute add/delete mask to/from effective_cpus
|
||||
*
|
||||
* For valid partition:
|
||||
* addmask = exclusive_cpus & ~newmask
|
||||
* addmask = effective_xcpus & ~newmask
|
||||
* & parent->effective_xcpus
|
||||
* delmask = newmask & ~exclusive_cpus
|
||||
* delmask = newmask & ~effective_xcpus
|
||||
* & parent->effective_xcpus
|
||||
*
|
||||
* For invalid partition:
|
||||
|
|
@ -1825,11 +1825,11 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
|
|||
deleting = cpumask_and(tmp->delmask,
|
||||
newmask, parent->effective_xcpus);
|
||||
} else {
|
||||
cpumask_andnot(tmp->addmask, xcpus, newmask);
|
||||
cpumask_andnot(tmp->addmask, cs->effective_xcpus, newmask);
|
||||
adding = cpumask_and(tmp->addmask, tmp->addmask,
|
||||
parent->effective_xcpus);
|
||||
|
||||
cpumask_andnot(tmp->delmask, newmask, xcpus);
|
||||
cpumask_andnot(tmp->delmask, newmask, cs->effective_xcpus);
|
||||
deleting = cpumask_and(tmp->delmask, tmp->delmask,
|
||||
parent->effective_xcpus);
|
||||
}
|
||||
|
|
@ -1868,7 +1868,7 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
|
|||
part_error = PERR_NOCPUS;
|
||||
deleting = false;
|
||||
adding = cpumask_and(tmp->addmask,
|
||||
xcpus, parent->effective_xcpus);
|
||||
cs->effective_xcpus, parent->effective_xcpus);
|
||||
}
|
||||
} else {
|
||||
/*
|
||||
|
|
@ -1890,7 +1890,8 @@ static int update_parent_effective_cpumask(struct cpuset *cs, int cmd,
|
|||
part_error = PERR_NOCPUS;
|
||||
if (is_partition_valid(cs))
|
||||
adding = cpumask_and(tmp->addmask,
|
||||
xcpus, parent->effective_xcpus);
|
||||
cs->effective_xcpus,
|
||||
parent->effective_xcpus);
|
||||
} else if (is_partition_invalid(cs) && !cpumask_empty(xcpus) &&
|
||||
cpumask_subset(xcpus, parent->effective_xcpus)) {
|
||||
struct cgroup_subsys_state *css;
|
||||
|
|
|
|||
|
|
@ -492,6 +492,16 @@ REMOTE_TEST_MATRIX=(
|
|||
" C1-5:P1 . C1-4:P1 C2-3 . . \
|
||||
. . . P1 . . p1:5|c11:1-4|c12:5 \
|
||||
p1:P1|c11:P1|c12:P-1"
|
||||
# Narrowing cpuset.cpus to previously sibling-excluded CPUs should
|
||||
# not return CPUs that were never actually owned.
|
||||
" C1-4:P1 . C1-2:P1 C1-3:P2 . . \
|
||||
. . . C3 . . p1:4|c11:1-2|c12:3 \
|
||||
p1:P1|c11:P1|c12:P2 3"
|
||||
# Expanding cpuset.cpus to include a previously sibling-excluded CPU
|
||||
# after the sibling has become a member should correctly request it.
|
||||
" C1-4:P1 . C1-2:P1 C1-3:P2 . . \
|
||||
. . P0 C2-3 . . p1:1,4|c11:1|c12:2-3 \
|
||||
p1:P1|c11:P0|c12:P2 2-3"
|
||||
)
|
||||
|
||||
#
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user