Thread (4 messages) 4 messages, 3 authors, 2006-02-06

Re: [VM PATCH] rotate_reclaimable_page fails frequently

From: Andrew Morton <hidden>
Date: 2006-02-06 04:51:29
Also in: lkml

Rik van Riel [off-list ref] wrote:
On Sun, 5 Feb 2006, Shantanu Goel wrote:

 > It seems rotate_reclaimable_page fails most of the
 > time due the page not being on the LRU when kswapd
 > calls writepage().

 The question is, why is the page not yet back on the
 LRU by the time the data write completes ?
Could be they're ext3 pages which were written out by kjournald.  Such
pages are marked dirty but have clean buffers.  ext3_writepage() will
discover that the page is actually clean and will mark it thus without
performing any I/O.

In which case this code in shrink_list():

				/*
				 * A synchronous write - probably a ramdisk.  Go
				 * ahead and try to reclaim the page.
				 */
				if (TestSetPageLocked(page))
					goto keep;
				if (PageDirty(page) || PageWriteback(page))
					goto keep_locked;
				mapping = page_mapping(page);
			case PAGE_CLEAN:
				; /* try to free the page below */

should just go and reclaim the page immediately.

Shantanu, I suggest you add some instrumentation there too, see if it's
working.  (That'll be non-trivial.  Just because we hit PAGE_CLEAN: here
doesn't necessarily mean that the page will be reclaimed).

--
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/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help