Added a couple of people from the vhost thread. Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> writes: > On Wed, Dec 22, 2021 at 3:25 PM Eric W. Biederman <ebiederm@xxxxxxxxxxxx> wrote: >> >> Solve this by skipping the put_user for all kthreads. > > Ugh. > > While this fixes the problem, could we please just not mis-use that > 'set_child_tid' as that kthread pointer any more? > > It was always kind of hacky. I think a new pointer with the proper > 'struct kthread *' type would be an improvement. > > One of the "arguments" in the comment for re-using that set_child_tid > pointer was that 'fork()' used to not wrongly copy it, but your patch > literally now does that "allocate new kthread struct" at fork-time, so > that argument is actually bogus now. I agree. I think I saw in the recent vhost patches that were generalizing create_io_thread that the pf_io_worker field of struct task_struct was being generalized as well. If so I think it makes sense just to take that approach. Just build some basic infrastructure that can be used for io_workers, vhost_workers, and kthreads. Eric