aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorChristoph Lameter <clameter@sgi.com>2006-06-23 05:03:38 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-06-23 10:42:51 -0400
commit04e62a29bf157ce1edd168f2b71b533c80d13628 (patch)
tree7f0d5a58eeef2c2e08da86dc7141a1ccd050a37d /include/linux
parent442c9137de8d769053e81d325709dca72f0b5e44 (diff)
[PATCH] More page migration: use migration entries for file pages
This implements the use of migration entries to preserve ptes of file backed pages during migration. Processes can therefore be migrated back and forth without loosing their connection to pagecache pages. Note that we implement the migration entries only for linear mappings. Nonlinear mappings still require the unmapping of the ptes for migration. And another writepage() ugliness shows up. writepage() can drop the page lock. Therefore we have to remove migration ptes before calling writepages() in order to avoid having migration entries point to unlocked pages. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/swap.h15
1 files changed, 0 insertions, 15 deletions
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 7cee73ef4f15..1cf234e8df55 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -186,20 +186,6 @@ extern unsigned long shrink_all_memory(unsigned long nr_pages);
186extern int vm_swappiness; 186extern int vm_swappiness;
187extern int remove_mapping(struct address_space *mapping, struct page *page); 187extern int remove_mapping(struct address_space *mapping, struct page *page);
188 188
189/* possible outcome of pageout() */
190typedef enum {
191 /* failed to write page out, page is locked */
192 PAGE_KEEP,
193 /* move page to the active list, page is locked */
194 PAGE_ACTIVATE,
195 /* page has been sent to the disk successfully, page is unlocked */
196 PAGE_SUCCESS,
197 /* page is clean and locked */
198 PAGE_CLEAN,
199} pageout_t;
200
201extern pageout_t pageout(struct page *page, struct address_space *mapping);
202
203#ifdef CONFIG_NUMA 189#ifdef CONFIG_NUMA
204extern int zone_reclaim_mode; 190extern int zone_reclaim_mode;
205extern int zone_reclaim_interval; 191extern int zone_reclaim_interval;
@@ -259,7 +245,6 @@ extern int remove_exclusive_swap_page(struct page *);
259struct backing_dev_info; 245struct backing_dev_info;
260 246
261extern spinlock_t swap_lock; 247extern spinlock_t swap_lock;
262extern int remove_vma_swap(struct vm_area_struct *vma, struct page *page);
263 248
264/* linux/mm/thrash.c */ 249/* linux/mm/thrash.c */
265extern struct mm_struct * swap_token_mm; 250extern struct mm_struct * swap_token_mm;