Re: invalidate_inode_pages2

From: Andrea Arcangeli
Date: Tue May 18 2004 - 20:09:42 EST


On Tue, May 18, 2004 at 06:00:28PM -0700, Andrew Morton wrote:
> OK. Can we do a full pte invalidation and force a major fault?

we'd need to take the page_table_lock to do that from there, I find
safer to stay at the pagecache layer at that point inside the nfs
filesystem routines. the semantics of invalidate_inode_pages2 doesn't
require a synchronous invalidate with major fault, both O_DIRECT and nfs
cannot provide distributed shared memory anyways, all it matters is that
_future_ reads will trigger readpage again to provide inode invalidate
semantics.

> > > It's currently the case that pages which are mapped into process pagetables
> > > are always up to date, which sounds like a good invariant to have. This
> >
> > I already intentionally broke that invariant in 2.4 just to make exactly
> > this thing work safely, this is needed for correct O_DIRECT semantics
> > too.
> >
> > All it matters is that the pages are re-read after munmap+mmap.
> >
> > > changes that rule. I dunno if it'll break anything though.
> >
> > It didn't break anything in 2.4 AFIK.
>
> It might have caused some of the debug checks in fs/buffer.c to get angry
> when it's used by direct-IO. But they're gone now anyway...

sounds good then ;)
-
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/