mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
kthread: Rely on HK_TYPE_DOMAIN for preferred affinity management
Unbound kthreads want to run neither on nohz_full CPUs nor on domain isolated CPUs. And since nohz_full implies domain isolation, checking the latter is enough to verify both. Therefore exclude kthreads from domain isolation. Signed-off-by: Frederic Weisbecker <frederic@kernel.org> Reviewed-by: Waiman Long <longman@redhat.com> Cc: Marco Crivellari <marco.crivellari@suse.com> Cc: Michal Hocko <mhocko@suse.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Tejun Heo <tj@kernel.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Waiman Long <longman@redhat.com>
This commit is contained in:
parent
92a734606e
commit
041ee6f372
|
|
@ -362,18 +362,20 @@ static void kthread_fetch_affinity(struct kthread *kthread, struct cpumask *cpum
|
||||||
{
|
{
|
||||||
const struct cpumask *pref;
|
const struct cpumask *pref;
|
||||||
|
|
||||||
|
guard(rcu)();
|
||||||
|
|
||||||
if (kthread->preferred_affinity) {
|
if (kthread->preferred_affinity) {
|
||||||
pref = kthread->preferred_affinity;
|
pref = kthread->preferred_affinity;
|
||||||
} else {
|
} else {
|
||||||
if (kthread->node == NUMA_NO_NODE)
|
if (kthread->node == NUMA_NO_NODE)
|
||||||
pref = housekeeping_cpumask(HK_TYPE_KTHREAD);
|
pref = housekeeping_cpumask(HK_TYPE_DOMAIN);
|
||||||
else
|
else
|
||||||
pref = cpumask_of_node(kthread->node);
|
pref = cpumask_of_node(kthread->node);
|
||||||
}
|
}
|
||||||
|
|
||||||
cpumask_and(cpumask, pref, housekeeping_cpumask(HK_TYPE_KTHREAD));
|
cpumask_and(cpumask, pref, housekeeping_cpumask(HK_TYPE_DOMAIN));
|
||||||
if (cpumask_empty(cpumask))
|
if (cpumask_empty(cpumask))
|
||||||
cpumask_copy(cpumask, housekeeping_cpumask(HK_TYPE_KTHREAD));
|
cpumask_copy(cpumask, housekeeping_cpumask(HK_TYPE_DOMAIN));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void kthread_affine_node(void)
|
static void kthread_affine_node(void)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user