On Wed, Jul 26, 2017 at 10:36:46AM +0100, Will Deacon wrote: > On Tue, Jul 25, 2017 at 02:19:26PM -0700, Paul E. McKenney wrote: > > Some architectures are less precise than others in tracking which > > CPUs are running a given process due to ASIDs, though this is > > thought to be a non-problem: > > > > https://marc.info/?l=linux-arch&m=126716090413065&w=2 > > https://marc.info/?l=linux-arch&m=126716262815202&w=2 > > > > Thoughts? > > On arm64, we *never* touch mm_cpumask, so it will always be empty. The only > thing we could potentially use it for is non-broadcast TLB invalidation if > the mm was only active on a single CPU, but when I implemented that we > pretty much never hit that case. I was hoping fork()+exec() would trigger it > (e.g. scripts), but the scheduler treats both of those as rebalancing points > so the temporary ASID before the exec always has two CPUs set in its mask.
OK, so it sounds like we should ignore ->mm_cpumask except possibly for an architecture-specific optimization, and rely solely on ->mm in the absence of such optimizations, right? Thanx, Paul