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