Re: [patch 3/6] mmu_notifier: invalidate_page callbacks

Andrea Arcangeli
2008-02-19T13:30:34Z

On Tue, Feb 19, 2008 at 07:46:10PM +1100, Nick Piggin wrote:
> On Sunday 17 February 2008 06:22, Christoph Lameter wrote:
> > On Fri, 15 Feb 2008, Andrew Morton wrote:
>
> > > > flush_cache_page(vma, address, pte_pfn(*pte));
> > > > entry = ptep_clear_flush(vma, address, pte);
> > > > + mmu_notifier(invalidate_page, mm, address);
> > >
> > > I just don't see how ths can be done if the callee has another thread in
> > > the middle of establishing IO against this region of memory.
> > > ->invalidate_page() _has_ to be able to block. Confused.
> >
> > The page lock is held and that holds off I/O?
>
> I think the actual answer is that "it doesn't matter".

Agreed. The PG_lock itself taken when invalidate_page is called, is
used to serialized the VM against the VM, not the VM against I/O.