[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: dirty pages path in kernel



> Andrew Morton writes:

>  > Andrew Morton wrote:

>  > >

>  > > David Chow <davidchow@shaolinmicro.com> wrote:

>  > > >

>  > > > Hi,

>  > > >

>  > > > If I do the following to an inode mapping page .

>  > > >

>  > > > 1. Generate a "struct page" from read_cache_page()

>  > > > 2. kmap() the page, do some memset() (Dirty the page)

>  > > > 3. kunmap() and page_cache_release() the page.

>  > > >

>  > >

>  > > The VFS does not know that the page has changed.

>  > >

>  > > You should do:

>  > >

>  > >         lock_page(page);

>  > >         memset()

>  > >         set_page_dirty(page);

>  > >         unlock_page(page);

>  > >

>  > > the page will be written to disk on the next kupdate cycle.

>  >

>  > Make that:

>  >

>  > 	lock_page(page);

>  > 	kaddr = kmap_atomic(page, KM_USER0);

>  > 	memset(kaddr, ...);

>  > 	flush_dcache_page(page)

>  > 	kunmap_atomic(kaddr, KM_USER0);

>  > 	set_page_dirty(page);

>

> Shouldn't mark_page_accessed() go here?

>

>  > 	unlock_page(page);

>

> Nikita.

Thanks for your help. However, do I have to deal with page ref cnts?

regards,
David


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/