Lines Matching refs:page
32 static struct page *page_idle_get_page(unsigned long pfn) in page_idle_get_page()
34 struct page *page = pfn_to_online_page(pfn); in page_idle_get_page() local
37 if (!page || !PageLRU(page) || in page_idle_get_page()
38 !get_page_unless_zero(page)) in page_idle_get_page()
41 pgdat = page_pgdat(page); in page_idle_get_page()
43 if (unlikely(!PageLRU(page))) { in page_idle_get_page()
44 put_page(page); in page_idle_get_page()
45 page = NULL; in page_idle_get_page()
48 return page; in page_idle_get_page()
51 static bool page_idle_clear_pte_refs_one(struct page *page, in page_idle_clear_pte_refs_one() argument
56 .page = page, in page_idle_clear_pte_refs_one()
81 clear_page_idle(page); in page_idle_clear_pte_refs_one()
87 set_page_young(page); in page_idle_clear_pte_refs_one()
92 static void page_idle_clear_pte_refs(struct page *page) in page_idle_clear_pte_refs() argument
104 if (!page_mapped(page) || in page_idle_clear_pte_refs()
105 !page_rmapping(page)) in page_idle_clear_pte_refs()
108 need_lock = !PageAnon(page) || PageKsm(page); in page_idle_clear_pte_refs()
109 if (need_lock && !trylock_page(page)) in page_idle_clear_pte_refs()
112 rmap_walk(page, (struct rmap_walk_control *)&rwc); in page_idle_clear_pte_refs()
115 unlock_page(page); in page_idle_clear_pte_refs()
123 struct page *page; in page_idle_bitmap_read() local
142 page = page_idle_get_page(pfn); in page_idle_bitmap_read()
143 if (page) { in page_idle_bitmap_read()
144 if (page_is_idle(page)) { in page_idle_bitmap_read()
150 page_idle_clear_pte_refs(page); in page_idle_bitmap_read()
151 if (page_is_idle(page)) in page_idle_bitmap_read()
154 put_page(page); in page_idle_bitmap_read()
168 struct page *page; in page_idle_bitmap_write() local
186 page = page_idle_get_page(pfn); in page_idle_bitmap_write()
187 if (page) { in page_idle_bitmap_write()
188 page_idle_clear_pte_refs(page); in page_idle_bitmap_write()
189 set_page_idle(page); in page_idle_bitmap_write()
190 put_page(page); in page_idle_bitmap_write()