On Wed, Aug 18, 2021 at 12:56:24PM +0200, Peter Zijlstra wrote: > On Wed, Aug 18, 2021 at 11:50:30AM +0100, Will Deacon wrote: > > On Tue, Aug 17, 2021 at 05:40:24PM +0200, Peter Zijlstra wrote: > > > On Fri, Jul 30, 2021 at 12:24:34PM +0100, Will Deacon wrote: > > > > In preparation for replaying user affinity requests using a saved mask, > > > > split sched_setaffinity() up so that the initial task lookup and > > > > security checks are only performed when the request is coming directly > > > > from userspace. > > > > > > > > Reviewed-by: Valentin Schneider <Valentin.Schneider@xxxxxxx> > > > > Signed-off-by: Will Deacon <will@xxxxxxxxxx> > > > > > > Should not sched_setaffinity() update user_cpus_ptr when it isn't NULL, > > > such that the upcoming relax_compatible_cpus_allowed_ptr() preserve the > > > full user mask? > > > > The idea is that force_compatible_cpus_allowed_ptr() and > > relax_compatible_cpus_allowed_ptr() are used as a pair, with the former > > setting ->user_cpus_ptr and the latter restoring it. An intervening call > > to sched_setaffinity() must _clear_ the saved mask, as we discussed > > before at: > > > > https://lore.kernel.org/r/YK53kDtczHIYumDC@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx > > Clearly that deserves a comment somewhere, because I keep trying to make > it more consistent than it can be :/ I'll see if I can find a spot. Agreed. The relax/force functions are already commented, so maybe alongside SCA_USER? Will