Messages in this thread | | | Date | Tue, 18 May 2004 18:00:28 -0700 | From | Andrew Morton <> | Subject | Re: invalidate_inode_pages2 |
| |
Andrea Arcangeli <andrea@suse.de> wrote: > > On Tue, May 18, 2004 at 05:27:18PM -0700, Andrew Morton wrote: > > Andrea Arcangeli <andrea@suse.de> wrote: > > > > > > Something broke in invalidate_inode_pages2 between 2.4 and 2.6, this > > > causes malfunctions with mapped pages in 2.6. > > > > What is the malfunction? > > >From Olaf Kirch > > - single application on NFS client opens file and maps it. > No-one else has this file open. File contains "zappa\n", > and the test app stats it once a second and reports size and > contents. > len=6, data=7a 61 70 70 61 0a > - on the NFS server, I do "echo frobnorz > file" > - after a while, the test app on the client reports > len=10, data=7a 61 70 70 61 0a > - I ctrl-C the app and restart it. We agree that this amounts to > a munmap+mmap of the file, right? > The test app now reports > len=10, data=7a 61 70 70 61 0a 00 00 00 00
OK. Can we do a full pte invalidation and force a major fault?
> > 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...
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |