On Tue, Jul 25, 2017 at 10:17:01AM -0700, Paul E. McKenney wrote: > > munmap() TLB invalidate is limited to those CPUs that actually ran > > threads of their process, while this is machine wide. > > Or those CPUs running threads of any process mapping the underlying file > or whatever.
That doesn't sound right. munmap() of a shared file only invalidates this process's map of it. Swapping a file page otoh will indeed touch the union of cpumasks over all processes mapping that page. > And in either case, this can span the whole machine. Plus > there are a number of other ways for users to do on-demand full-system > IPIs, including any number of ways to wake up large numbers of CPUs, > including from unrelated processes. Which are those? I thought we significantly reduced those with the nohz full work. Most IPI uses now first check if a CPU actually needs the IPI before sending it IIRC. > But I do plan to add another alternative that is limited to threads of > the running process. I will be carrying both versions to enable those > who have been bugging me about this to do testing. Sending IPIs to mm_cpumask() might be better than expedited, but I'm still hesitant. Just because people want it doesn't mean its a good idea. We need to weight this against the potential for abuse. People want userspace preempt disable, no matter how hard they want it, they're not getting it because its a completely crap idea.