mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:04:43 +01: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
1 changed files with 5 additions and 3 deletions
|
|
@ -362,18 +362,20 @@ static void kthread_fetch_affinity(struct kthread *kthread, struct cpumask *cpum
|
|||
{
|
||||
const struct cpumask *pref;
|
||||
|
||||
guard(rcu)();
|
||||
|
||||
if (kthread->preferred_affinity) {
|
||||
pref = kthread->preferred_affinity;
|
||||
} else {
|
||||
if (kthread->node == NUMA_NO_NODE)
|
||||
pref = housekeeping_cpumask(HK_TYPE_KTHREAD);
|
||||
pref = housekeeping_cpumask(HK_TYPE_DOMAIN);
|
||||
else
|
||||
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))
|
||||
cpumask_copy(cpumask, housekeeping_cpumask(HK_TYPE_KTHREAD));
|
||||
cpumask_copy(cpumask, housekeeping_cpumask(HK_TYPE_DOMAIN));
|
||||
}
|
||||
|
||||
static void kthread_affine_node(void)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue