On Tue, Jul 25, 2017 at 06:33:18PM +0200, Peter Zijlstra wrote:
> On Mon, Jul 24, 2017 at 02:58:16PM -0700, Paul E. McKenney wrote:
> > The sys_membarrier() system call has proven too slow for some use
> > cases, which has prompted users to instead rely on TLB shootdown.
> > Although TLB shootdown is much faster, it has the slight disadvantage
> > of not working at all on arm and arm64.  This commit therefore adds
> > an expedited option to the sys_membarrier() system call.
> 
> > @@ -64,6 +65,10 @@ SYSCALL_DEFINE2(membarrier, int, cmd, int, flags)
> >             if (num_online_cpus() > 1)
> >                     synchronize_sched();
> >             return 0;
> > +   case MEMBARRIER_CMD_SHARED_EXPEDITED:
> > +           if (num_online_cpus() > 1)
> > +                   synchronize_sched_expedited();
> > +           return 0;
> 
> So you now give unprivileged userspace the means to IPI the entire
> machine?
> 
> So what do we do when someone goes and does:
> 
>       for (;;)
>               sys_membarrier(MEMBARRIER_CMD_SHARED_EXPEDITED, 0);
> 
> on us?

The same thing that happens when they call munmap().

                                                        Thanx, Paul

Reply via email to