[PATCH] powerpc/64s/radix: reset mm_cpumask for single thread process when possible

Benjamin Herrenschmidt benh at au1.ibm.com
Wed May 9 18:31:55 AEST 2018


On Wed, 2018-05-09 at 16:56 +1000, Nicholas Piggin wrote:
> When a single-threaded process has a non-local mm_cpumask and requires
> a full PID tlbie invalidation, use that as an opportunity to reset the
> cpumask back to the current CPU we're running on.
> 
> No other thread can concurrently switch to this mm, because it must
> have had a reference on mm_users before it could use_mm. mm_users can
> be asynchronously incremented e.g., by mmget_not_zero, but those users
> must not be doing use_mm.

What do you mean ? I don't fully understand how this isn't racy with
another thread being created, switching to that mm, and then having its
bit cleared by us ? Also why not use_mm ? what prevents it ?

Cheers,
Ben.



More information about the Linuxppc-dev mailing list