Messages in this thread | | | Date | Tue, 10 Sep 2002 18:49:25 -0700 | From | Andrew Morton <> | Subject | Re: invalidate_inode_pages in 2.5.32/3 |
| |
Daniel Phillips wrote: > > On Wednesday 11 September 2002 02:38, Andrew Morton wrote: > > Daniel Phillips wrote: > > > > > > > ... > > > We do get > > > around to walking the ptes at file close I believe. Is that not driven by > > > zap_page_range, which moves any orphaned pte dirty bits down into the struct > > > page? > > > > Nope, close will just leave all the pages pte-dirty or PageDirty in > > memory. truncate will nuke all the ptes and then the pagecache. > > > > But the normal way in which pte-dirty pages find their way to the > > backing file is: > > > > - page reclaim runs try_to_unmap or > > > > - user runs msync(). (Which will only clean that mm's ptes!) > > > > These will run set_page_dirty(), making the page visible to > > one of the many things which run writeback. > > So we just quietly drop any dirty memory mapped to a file if the user doesn't > run msync? Is that correct behaviour? It sure sounds wrong. >
If the page is truncated then yes. (indirectly: the pte dirty state gets flushed into PG_dirty which is then invalidated).
Otherwise, no. The pte dirtiness is propagated into PG_dirty when the pte is detached from the page. See try_to_unmap_one() - it is quite straightforward. - 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/
| |