Commit 043eb8e1 authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by Peter Zijlstra
Browse files

kthread: Switch to cpu_possible_mask



Next patch will switch unbound kernel threads mask to
housekeeping_cpumask(), a subset of cpu_possible_mask. So in order to
ease bisection, lets first switch kthreads default affinity from
cpu_all_mask to cpu_possible_mask.

It looks safe to do so as cpu_possible_mask seem to be initialized
at setup_arch() time, way before kthreadd is created.

Suggested-by: default avatarFrederic Weisbecker <frederic@kernel.org>
Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20200527142909.23372-2-frederic@kernel.org
parent 461daba0
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -383,7 +383,7 @@ struct task_struct *__kthread_create_on_node(int (*threadfn)(void *data),
		 * The kernel thread should not inherit these properties.
		 * The kernel thread should not inherit these properties.
		 */
		 */
		sched_setscheduler_nocheck(task, SCHED_NORMAL, &param);
		sched_setscheduler_nocheck(task, SCHED_NORMAL, &param);
		set_cpus_allowed_ptr(task, cpu_all_mask);
		set_cpus_allowed_ptr(task, cpu_possible_mask);
	}
	}
	kfree(create);
	kfree(create);
	return task;
	return task;
@@ -608,7 +608,7 @@ int kthreadd(void *unused)
	/* Setup a clean context for our children to inherit. */
	/* Setup a clean context for our children to inherit. */
	set_task_comm(tsk, "kthreadd");
	set_task_comm(tsk, "kthreadd");
	ignore_signals(tsk);
	ignore_signals(tsk);
	set_cpus_allowed_ptr(tsk, cpu_all_mask);
	set_cpus_allowed_ptr(tsk, cpu_possible_mask);
	set_mems_allowed(node_states[N_MEMORY]);
	set_mems_allowed(node_states[N_MEMORY]);


	current->flags |= PF_NOFREEZE;
	current->flags |= PF_NOFREEZE;