Re: [PATCH 4.19 16/17] kthread: Extract KTHREAD_IS_PER_CPU

From: Pavel Machek
Date: Sat Feb 06 2021 - 18:25:55 EST


Hi!

> From: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
>
> [ Upstream commit ac687e6e8c26181a33270efd1a2e2241377924b0 ]
>
> There is a need to distinguish geniune per-cpu kthreads from kthreads
> that happen to have a single CPU affinity.
>
> Geniune per-cpu kthreads are kthreads that are CPU affine for
> correctness, these will obviously have PF_KTHREAD set, but must also
> have PF_NO_SETAFFINITY set, lest userspace modify their affinity and
> ruins things.
>
> However, these two things are not sufficient, PF_NO_SETAFFINITY is
> also set on other tasks that have their affinities controlled through
> other means, like for instance workqueues.
>
> Therefore another bit is needed; it turns out kthread_create_per_cpu()
> already has such a bit: KTHREAD_IS_PER_CPU, which is used to make
> kthread_park()/kthread_unpark() work correctly.
>
> Expose this flag and remove the implicit setting of it from
> kthread_create_on_cpu(); the io_uring usage of it seems dubious at
> best.

AFAIK this should not be in 4.19/5.10 as it does not fix anything w/o
5ba2ffba13a1e. Nobody calls kthread_is_per_cpu() in those kernels.

Best regards,
Pavel

--
http://www.livejournal.com/~pavelmachek

Attachment: signature.asc
Description: Digital signature