Page eviction support in vmscan.c
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_pagesdoes its best to swapout the pages and does multiple passes over the list. However,swapout_pagesmay 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 ofshrink_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>