search for: isolate_movable_page

Displaying 20 results from an estimated 47 matches for "isolate_movable_page".

2016 Mar 11
1
[PATCH v1 02/19] mm/compaction: support non-lru movable page migration
...x86_64-nfsroot (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): In file included from mm/compaction.c:12:0: >> include/linux/compaction.h:87:20: error: static declaration of 'isolate_movable_page' follows non-static declaration static inline bool isolate_movable_page(struct page *page, isolate_mode_t mode) ^ In file included from mm/compaction.c:11:0: include/linux/migrate.h:36:13: note: previous declaration of 'isolate_movable_page' was here...
2016 Mar 11
1
[PATCH v1 02/19] mm/compaction: support non-lru movable page migration
...x86_64-nfsroot (attached as .config) reproduce: # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): In file included from mm/compaction.c:12:0: >> include/linux/compaction.h:87:20: error: static declaration of 'isolate_movable_page' follows non-static declaration static inline bool isolate_movable_page(struct page *page, isolate_mode_t mode) ^ In file included from mm/compaction.c:11:0: include/linux/migrate.h:36:13: note: previous declaration of 'isolate_movable_page' was here...
2016 May 16
2
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...list_head *l); > extern int migrate_page(struct address_space *, > struct page *, struct page *, enum migrate_mode); > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > unsigned long private, enum migrate_mode mode, int reason); > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > +extern void putback_movable_page(struct page *page); > > extern int migrate_prep(void); > extern int migrate_prep_local(void); given that some of Movable users can be built as modules, shouldn't at least some of those symbols be expor...
2016 May 16
2
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...list_head *l); > extern int migrate_page(struct address_space *, > struct page *, struct page *, enum migrate_mode); > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > unsigned long private, enum migrate_mode mode, int reason); > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > +extern void putback_movable_page(struct page *page); > > extern int migrate_prep(void); > extern int migrate_prep_local(void); given that some of Movable users can be built as modules, shouldn't at least some of those symbols be expor...
2016 Apr 04
1
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...dea > to separate compaction and migration part. Guess it's better to see the new functions together with its user after all, OK. > I will just resend to change the tile from "mm/compaction" to > "mm/migration". OK! >> Also I'm a bit uncomfortable how isolate_movable_page() blindly expects that >> page->mapping->a_ops->isolate_page exists for PageMovable() pages. >> What if it's a false positive on a PG_reclaim page? Can we rely on >> PG_reclaim always (and without races) implying PageLRU() so that we >> don't even attempt is...
2016 Apr 04
1
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...dea > to separate compaction and migration part. Guess it's better to see the new functions together with its user after all, OK. > I will just resend to change the tile from "mm/compaction" to > "mm/migration". OK! >> Also I'm a bit uncomfortable how isolate_movable_page() blindly expects that >> page->mapping->a_ops->isolate_page exists for PageMovable() pages. >> What if it's a false positive on a PG_reclaim page? Can we rely on >> PG_reclaim always (and without races) implying PageLRU() so that we >> don't even attempt is...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...@@ -37,6 +37,8 @@ extern int migrate_page(struct address_space *, > struct page *, struct page *, enum migrate_mode); > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > unsigned long private, enum migrate_mode mode, int reason); > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > +extern void putback_movable_page(struct page *page); > > extern int migrate_prep(void); > extern int migrate_prep_local(void); > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > index f4ed4f1b0c77..77ebf8fdbc6e...
2016 Apr 01
2
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...@@ -37,6 +37,8 @@ extern int migrate_page(struct address_space *, > struct page *, struct page *, enum migrate_mode); > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > unsigned long private, enum migrate_mode mode, int reason); > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > +extern void putback_movable_page(struct page *page); > > extern int migrate_prep(void); > extern int migrate_prep_local(void); > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > index f4ed4f1b0c77..77ebf8fdbc6e...
2016 Mar 23
1
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...page(struct address_space *, > > > struct page *, struct page *, enum migrate_mode); > > > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > > > unsigned long private, enum migrate_mode mode, int reason); > > > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > > > +extern void putback_movable_page(struct page *page); > > > > > > extern int migrate_prep(void); > > > extern int migrate_prep_local(void); > > > diff --git a/include/linux/page-flags.h b/include/linux/p...
2016 Mar 23
1
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...page(struct address_space *, > > > struct page *, struct page *, enum migrate_mode); > > > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > > > unsigned long private, enum migrate_mode mode, int reason); > > > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > > > +extern void putback_movable_page(struct page *page); > > > > > > extern int migrate_prep(void); > > > extern int migrate_prep_local(void); > > > diff --git a/include/linux/page-flags.h b/include/linux/p...
2016 May 16
1
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...list_head *l); > extern int migrate_page(struct address_space *, > struct page *, struct page *, enum migrate_mode); > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > unsigned long private, enum migrate_mode mode, int reason); > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > +extern void putback_movable_page(struct page *page); > > extern int migrate_prep(void); > extern int migrate_prep_local(void); __ClearPageMovable() is under CONFIG_MIGRATION in include/linux/migrate.h, but zsmalloc checks for CONFIG_COMPA...
2016 May 16
1
[PATCH v5 02/12] mm: migrate: support non-lru movable page migration
...list_head *l); > extern int migrate_page(struct address_space *, > struct page *, struct page *, enum migrate_mode); > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > unsigned long private, enum migrate_mode mode, int reason); > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > +extern void putback_movable_page(struct page *page); > > extern int migrate_prep(void); > extern int migrate_prep_local(void); __ClearPageMovable() is under CONFIG_MIGRATION in include/linux/migrate.h, but zsmalloc checks for CONFIG_COMPA...
2016 Mar 22
2
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...t; @@ -37,6 +37,8 @@ extern int migrate_page(struct address_space *, > struct page *, struct page *, enum migrate_mode); > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > unsigned long private, enum migrate_mode mode, int reason); > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > +extern void putback_movable_page(struct page *page); > > extern int migrate_prep(void); > extern int migrate_prep_local(void); > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > index f4ed4f1b0c77..3885064641c4...
2016 Mar 22
2
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...t; @@ -37,6 +37,8 @@ extern int migrate_page(struct address_space *, > struct page *, struct page *, enum migrate_mode); > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > unsigned long private, enum migrate_mode mode, int reason); > +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > +extern void putback_movable_page(struct page *page); > > extern int migrate_prep(void); > extern int migrate_prep_local(void); > diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > index f4ed4f1b0c77..3885064641c4...
2016 Mar 11
0
[PATCH v1 02/19] mm/compaction: support non-lru movable page migration
...f --git a/include/linux/compaction.h b/include/linux/compaction.h index 4cd4ddf64cc7..6f040ad379ce 100644 --- a/include/linux/compaction.h +++ b/include/linux/compaction.h @@ -84,6 +84,14 @@ static inline bool compaction_deferred(struct zone *zone, int order) return true; } +static inline bool isolate_movable_page(struct page *page, isolate_mode_t mode) +{ + return false; +} + +static inline void putback_movable_page(struct page *page) +{ +} #endif /* CONFIG_COMPACTION */ #if defined(CONFIG_COMPACTION) && defined(CONFIG_SYSFS) && defined(CONFIG_NUMA) diff --git a/include/linux/fs.h b/incl...
2016 Apr 04
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...@ extern int migrate_page(struct address_space *, > > struct page *, struct page *, enum migrate_mode); > > extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, > > unsigned long private, enum migrate_mode mode, int reason); > >+extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); > >+extern void putback_movable_page(struct page *page); > > > > extern int migrate_prep(void); > > extern int migrate_prep_local(void); > >diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h > >index f4...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...ny other type of page > + */ > + is_lru = PageLRU(page); > + if (!is_lru) { > + if (unlikely(balloon_page_movable(page))) { > + if (balloon_page_isolate(page)) { > + /* Successfully isolated */ > + goto isolate_success; > + } > + } [...] > +bool isolate_movable_page(struct page *page, isolate_mode_t mode) > +{ > + struct address_space *mapping; > + > + /* > + * Avoid burning cycles with pages that are yet under __free_pages(), > + * or just got freed under us. > + * > + * In case we 'win' a race for a movable page being free...
2016 May 27
2
[PATCH v6 02/12] mm: migrate: support non-lru movable page migration
...ny other type of page > + */ > + is_lru = PageLRU(page); > + if (!is_lru) { > + if (unlikely(balloon_page_movable(page))) { > + if (balloon_page_isolate(page)) { > + /* Successfully isolated */ > + goto isolate_success; > + } > + } [...] > +bool isolate_movable_page(struct page *page, isolate_mode_t mode) > +{ > + struct address_space *mapping; > + > + /* > + * Avoid burning cycles with pages that are yet under __free_pages(), > + * or just got freed under us. > + * > + * In case we 'win' a race for a movable page being free...
2016 Mar 21
0
[PATCH v2 13/18] mm/compaction: support non-lru movable page migration
...nclude/linux/migrate.h @@ -37,6 +37,8 @@ extern int migrate_page(struct address_space *, struct page *, struct page *, enum migrate_mode); extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, unsigned long private, enum migrate_mode mode, int reason); +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); +extern void putback_movable_page(struct page *page); extern int migrate_prep(void); extern int migrate_prep_local(void); diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index f4ed4f1b0c77..3885064641c4 100644 --- a/include/linux/pag...
2016 Mar 30
0
[PATCH v3 02/16] mm/compaction: support non-lru movable page migration
...nclude/linux/migrate.h @@ -37,6 +37,8 @@ extern int migrate_page(struct address_space *, struct page *, struct page *, enum migrate_mode); extern int migrate_pages(struct list_head *l, new_page_t new, free_page_t free, unsigned long private, enum migrate_mode mode, int reason); +extern bool isolate_movable_page(struct page *page, isolate_mode_t mode); +extern void putback_movable_page(struct page *page); extern int migrate_prep(void); extern int migrate_prep_local(void); diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index f4ed4f1b0c77..77ebf8fdbc6e 100644 --- a/include/linux/pag...