Skip to contentSkip to conversation

Page eviction support in vmscan.c

PATCH Joel Schopp 1 participant 1 message Oct 13, 2005 Memory management

lore
Share & tools
lore
#0 lore raw

Christoph sent this to @vger.kernel.org instead of @kvack.org. I assume he'll resend the original to this list. Sorry if this messes up threading.

Quoted 4 lines

This patch adds functions that allow the eviction of pages to swap space. Page eviction may be useful to migrate pages, suspend programs or for ummapping single pages (useful for faulty pages or pages with soft ECC failures)

I'm curious what use motivated you to write it. I think for migration it would usually make more sense to let the swapper free up LRU memory and then do a memory to memory migration. But I'm not really a migration expert

Quoted 2 lines

swapout_pages does its best to swapout the pages and does multiple passes over the list. However, swapout_pages may not be able to evict all pages for a variety of reasons.

Have you thought about using this in combination with the fragmentation avoidance patches Mel has been posting? __GFP_USER flag that adds would go a long way toward determining what can and can't be swapped out. We use that for migration with great success. I'd assume the criteria for swapout and migration are pretty similar.

Quoted 3 lines

/*
+ * Swapout evicts the pages on the list to swap space.
+ * This is essentially a dumbed down version of shrink_list

Have you thought about reusing code from shrink list without duplicating it? That is a whole lot of duplicated code to maintain twice.

Review

Quoted 12 lines
(quoted diff) +12 -0
+		if (PageDirty(page)) {
+			/* Page is dirty, try to write it out here */
+			switch(pageout(page, mapping)) {
+			case PAGE_KEEP:
+			case PAGE_ACTIVATE:
+				goto retry_later_locked;
+			case PAGE_SUCCESS:
+				goto retry_later;
+			case PAGE_CLEAN:
+				; /* try to free the page below */
+			}
+                }

Tabs vs spaces?

Review

Quoted 5 lines
(quoted diff) +5 -0
+
+		list_del(&page->lru);
+                unlock_page(page);
+		put_page(page);
+                continue;

Tabs vs spaces?

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>