Re: [PATCH] export notifier #1

Robin Holt
2008-01-23T01:21:48Z

On Tue, Jan 22, 2008 at 04:40:50PM -0800, Christoph Lameter wrote:
> On Wed, 23 Jan 2008, Benjamin Herrenschmidt wrote:
>
> > > - anon_vma/inode and pte locks are held during callbacks.
> >
> > So how does that fix the problem of sleeping then ?
>
> The locks are taken in the mmu_ops patch. This patch does not hold them
> while performing the callbacks.

Let me start by clarifying, the page is referenced prior to exporting
and that reference is not removed until after recall is complete and
memory protections are back to normal.

As Christoph pointed out, the mmu_ops callouts do not allow sleeping.
This is a problem for us as our recall path includes a message to one or
more other hosts and a wait until we receive a response. That message
sequence can take seconds or more to complete. It includes an operation
to ensure the memory is in a cross-partition clean state and then changes
memory protection. When that is complete we remove our page reference
and return.

Christoph's patch allows that long slow activity to happen prior to the
mmu_ops callout. By the time the mmu_ops callout is made, we no longer
are exporting the page so the cleanup is equivalent to the cleanup of
a page we have never used.

Thanks,
Robin Holt