root/include/linux/page-isolation.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. has_isolate_pageblock
  2. is_migrate_isolate_page
  3. is_migrate_isolate
  4. has_isolate_pageblock
  5. is_migrate_isolate_page
  6. is_migrate_isolate

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef __LINUX_PAGEISOLATION_H
   3 #define __LINUX_PAGEISOLATION_H
   4 
   5 #ifdef CONFIG_MEMORY_ISOLATION
   6 static inline bool has_isolate_pageblock(struct zone *zone)
   7 {
   8         return zone->nr_isolate_pageblock;
   9 }
  10 static inline bool is_migrate_isolate_page(struct page *page)
  11 {
  12         return get_pageblock_migratetype(page) == MIGRATE_ISOLATE;
  13 }
  14 static inline bool is_migrate_isolate(int migratetype)
  15 {
  16         return migratetype == MIGRATE_ISOLATE;
  17 }
  18 #else
  19 static inline bool has_isolate_pageblock(struct zone *zone)
  20 {
  21         return false;
  22 }
  23 static inline bool is_migrate_isolate_page(struct page *page)
  24 {
  25         return false;
  26 }
  27 static inline bool is_migrate_isolate(int migratetype)
  28 {
  29         return false;
  30 }
  31 #endif
  32 
  33 #define SKIP_HWPOISON   0x1
  34 #define REPORT_FAILURE  0x2
  35 
  36 bool has_unmovable_pages(struct zone *zone, struct page *page, int count,
  37                          int migratetype, int flags);
  38 void set_pageblock_migratetype(struct page *page, int migratetype);
  39 int move_freepages_block(struct zone *zone, struct page *page,
  40                                 int migratetype, int *num_movable);
  41 
  42 /*
  43  * Changes migrate type in [start_pfn, end_pfn) to be MIGRATE_ISOLATE.
  44  */
  45 int
  46 start_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
  47                          unsigned migratetype, int flags);
  48 
  49 /*
  50  * Changes MIGRATE_ISOLATE to MIGRATE_MOVABLE.
  51  * target range is [start_pfn, end_pfn)
  52  */
  53 void
  54 undo_isolate_page_range(unsigned long start_pfn, unsigned long end_pfn,
  55                         unsigned migratetype);
  56 
  57 /*
  58  * Test all pages in [start_pfn, end_pfn) are isolated or not.
  59  */
  60 int test_pages_isolated(unsigned long start_pfn, unsigned long end_pfn,
  61                         bool skip_hwpoisoned_pages);
  62 
  63 struct page *alloc_migrate_target(struct page *page, unsigned long private);
  64 
  65 #endif

/* [<][>][^][v][top][bottom][index][help] */