• Home
  • Raw
  • Download

Lines Matching refs:page

23 struct page *balloon_page_enqueue(struct balloon_dev_info *b_dev_info)  in balloon_page_enqueue()
26 struct page *page = alloc_page(balloon_mapping_gfp_mask() | in balloon_page_enqueue() local
28 if (!page) in balloon_page_enqueue()
36 BUG_ON(!trylock_page(page)); in balloon_page_enqueue()
38 balloon_page_insert(b_dev_info, page); in balloon_page_enqueue()
41 unlock_page(page); in balloon_page_enqueue()
42 return page; in balloon_page_enqueue()
57 struct page *balloon_page_dequeue(struct balloon_dev_info *b_dev_info) in balloon_page_dequeue()
59 struct page *page, *tmp; in balloon_page_dequeue() local
65 list_for_each_entry_safe(page, tmp, &b_dev_info->pages, lru) { in balloon_page_dequeue()
71 if (trylock_page(page)) { in balloon_page_dequeue()
73 if (!PagePrivate(page)) { in balloon_page_dequeue()
75 unlock_page(page); in balloon_page_dequeue()
79 balloon_page_delete(page); in balloon_page_dequeue()
81 unlock_page(page); in balloon_page_dequeue()
101 page = NULL; in balloon_page_dequeue()
103 return page; in balloon_page_dequeue()
109 static inline void __isolate_balloon_page(struct page *page) in __isolate_balloon_page() argument
111 struct balloon_dev_info *b_dev_info = balloon_page_device(page); in __isolate_balloon_page()
115 ClearPagePrivate(page); in __isolate_balloon_page()
116 list_del(&page->lru); in __isolate_balloon_page()
121 static inline void __putback_balloon_page(struct page *page) in __putback_balloon_page() argument
123 struct balloon_dev_info *b_dev_info = balloon_page_device(page); in __putback_balloon_page()
127 SetPagePrivate(page); in __putback_balloon_page()
128 list_add(&page->lru, &b_dev_info->pages); in __putback_balloon_page()
134 bool balloon_page_isolate(struct page *page) in balloon_page_isolate() argument
145 if (likely(get_page_unless_zero(page))) { in balloon_page_isolate()
157 if (likely(trylock_page(page))) { in balloon_page_isolate()
163 if (balloon_page_movable(page)) { in balloon_page_isolate()
164 __isolate_balloon_page(page); in balloon_page_isolate()
165 unlock_page(page); in balloon_page_isolate()
168 unlock_page(page); in balloon_page_isolate()
170 put_page(page); in balloon_page_isolate()
176 void balloon_page_putback(struct page *page) in balloon_page_putback() argument
182 lock_page(page); in balloon_page_putback()
184 if (__is_movable_balloon_page(page)) { in balloon_page_putback()
185 __putback_balloon_page(page); in balloon_page_putback()
187 put_page(page); in balloon_page_putback()
190 dump_page(page, "not movable balloon page"); in balloon_page_putback()
192 unlock_page(page); in balloon_page_putback()
196 int balloon_page_migrate(struct page *newpage, in balloon_page_migrate()
197 struct page *page, enum migrate_mode mode) in balloon_page_migrate() argument
199 struct balloon_dev_info *balloon = balloon_page_device(page); in balloon_page_migrate()
209 if (WARN_ON(!__is_movable_balloon_page(page))) { in balloon_page_migrate()
210 dump_page(page, "not movable balloon page"); in balloon_page_migrate()
216 rc = balloon->migratepage(balloon, newpage, page, mode); in balloon_page_migrate()