Re: [PATCH] mmu notifiers #v5

From: Christoph Lameter
Date: Tue Feb 05 2008 - 19:04:27 EST


On Wed, 6 Feb 2008, Andrea Arcangeli wrote:

> > You can of course setup a 2M granularity lock to get the same granularity
> > as the pte lock. That would even work for the cases where you have to page
> > pin now.
>
> If you set a 2M granularity lock, the _start callback would need to
> do:
>
> for_each_2m_lock()
> mutex_lock()
>
> so you'd run zillon of mutex_lock in a row, you're the one with the
> million of operations argument.

There is no requirement to do a linear search. No one in his right mind
would implement a performance critical operation that way.

> > The size of the mmap is relevant if you have to perform callbacks on
> > every mapped page that involved take mmu specific locks. That seems to be
> > the case with this approach.
>
> mmap should never trigger any range_start/_end callback unless it's
> overwriting an older mapping which is definitely not the interesting
> workload for those apps including kvm.

There is still at least the need for teardown on exit. And you need to
consider the boundless creativity of user land programmers. You would not
believe what I have seen....

> > Optimizing do_exit by taking a single lock to zap all external references
> > instead of 1 mio callbacks somehow leads to slowdown?
>
> It can if the application runs for more than a couple of seconds,
> i.e. not a fork flood in which you care about do_exit speed. Keep in
> mind if you had 1mio invalidate_pages callback it means you previously
> called follow_page 1 mio of times too...

That is another problem were we are also in need of solutions. I believe
we have discussed that elsewhere.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/