Lines Matching refs:pvec

52 	struct pagevec pvec;  member
193 static void pagevec_lru_move_fn(struct pagevec *pvec, in pagevec_lru_move_fn() argument
200 for (i = 0; i < pagevec_count(pvec); i++) { in pagevec_lru_move_fn()
201 struct page *page = pvec->pages[i]; in pagevec_lru_move_fn()
215 release_pages(pvec->pages, pvec->nr); in pagevec_lru_move_fn()
216 pagevec_reinit(pvec); in pagevec_lru_move_fn()
232 static bool pagevec_add_and_need_flush(struct pagevec *pvec, struct page *page) in pagevec_add_and_need_flush() argument
236 if (!pagevec_add(pvec, page) || PageCompound(page) || in pagevec_add_and_need_flush()
254 struct pagevec *pvec; in folio_rotate_reclaimable() local
259 pvec = this_cpu_ptr(&lru_rotate.pvec); in folio_rotate_reclaimable()
260 if (pagevec_add_and_need_flush(pvec, &folio->page)) in folio_rotate_reclaimable()
261 pagevec_lru_move_fn(pvec, pagevec_move_tail_fn); in folio_rotate_reclaimable()
336 struct pagevec *pvec = &per_cpu(lru_pvecs.activate_page, cpu); in activate_page_drain() local
338 if (pagevec_count(pvec)) in activate_page_drain()
339 pagevec_lru_move_fn(pvec, __activate_page); in activate_page_drain()
351 struct pagevec *pvec; in folio_activate() local
355 pvec = this_cpu_ptr(&lru_pvecs.activate_page); in folio_activate()
356 if (pagevec_add_and_need_flush(pvec, &folio->page)) in folio_activate()
357 pagevec_lru_move_fn(pvec, __activate_page); in folio_activate()
382 struct pagevec *pvec; in __lru_cache_activate_folio() local
386 pvec = this_cpu_ptr(&lru_pvecs.lru_add); in __lru_cache_activate_folio()
398 for (i = pagevec_count(pvec) - 1; i >= 0; i--) { in __lru_cache_activate_folio()
399 struct page *pagevec_page = pvec->pages[i]; in __lru_cache_activate_folio()
460 struct pagevec *pvec; in folio_add_lru() local
467 pvec = this_cpu_ptr(&lru_pvecs.lru_add); in folio_add_lru()
468 if (pagevec_add_and_need_flush(pvec, &folio->page)) in folio_add_lru()
469 __pagevec_lru_add(pvec); in folio_add_lru()
610 struct pagevec *pvec = &per_cpu(lru_pvecs.lru_add, cpu); in lru_add_drain_cpu() local
612 if (pagevec_count(pvec)) in lru_add_drain_cpu()
613 __pagevec_lru_add(pvec); in lru_add_drain_cpu()
615 pvec = &per_cpu(lru_rotate.pvec, cpu); in lru_add_drain_cpu()
617 if (data_race(pagevec_count(pvec))) { in lru_add_drain_cpu()
622 pagevec_lru_move_fn(pvec, pagevec_move_tail_fn); in lru_add_drain_cpu()
626 pvec = &per_cpu(lru_pvecs.lru_deactivate_file, cpu); in lru_add_drain_cpu()
627 if (pagevec_count(pvec)) in lru_add_drain_cpu()
628 pagevec_lru_move_fn(pvec, lru_deactivate_file_fn); in lru_add_drain_cpu()
630 pvec = &per_cpu(lru_pvecs.lru_deactivate, cpu); in lru_add_drain_cpu()
631 if (pagevec_count(pvec)) in lru_add_drain_cpu()
632 pagevec_lru_move_fn(pvec, lru_deactivate_fn); in lru_add_drain_cpu()
634 pvec = &per_cpu(lru_pvecs.lru_lazyfree, cpu); in lru_add_drain_cpu()
635 if (pagevec_count(pvec)) in lru_add_drain_cpu()
636 pagevec_lru_move_fn(pvec, lru_lazyfree_fn); in lru_add_drain_cpu()
659 struct pagevec *pvec; in deactivate_file_page() local
662 pvec = this_cpu_ptr(&lru_pvecs.lru_deactivate_file); in deactivate_file_page()
664 if (pagevec_add_and_need_flush(pvec, page)) in deactivate_file_page()
665 pagevec_lru_move_fn(pvec, lru_deactivate_file_fn); in deactivate_file_page()
681 struct pagevec *pvec; in deactivate_page() local
684 pvec = this_cpu_ptr(&lru_pvecs.lru_deactivate); in deactivate_page()
686 if (pagevec_add_and_need_flush(pvec, page)) in deactivate_page()
687 pagevec_lru_move_fn(pvec, lru_deactivate_fn); in deactivate_page()
703 struct pagevec *pvec; in mark_page_lazyfree() local
706 pvec = this_cpu_ptr(&lru_pvecs.lru_lazyfree); in mark_page_lazyfree()
708 if (pagevec_add_and_need_flush(pvec, page)) in mark_page_lazyfree()
709 pagevec_lru_move_fn(pvec, lru_lazyfree_fn); in mark_page_lazyfree()
836 data_race(pagevec_count(&per_cpu(lru_rotate.pvec, cpu))) || in __lru_add_drain_all()
994 void __pagevec_release(struct pagevec *pvec) in __pagevec_release() argument
996 if (!pvec->percpu_pvec_drained) { in __pagevec_release()
998 pvec->percpu_pvec_drained = true; in __pagevec_release()
1000 release_pages(pvec->pages, pagevec_count(pvec)); in __pagevec_release()
1001 pagevec_reinit(pvec); in __pagevec_release()
1061 void __pagevec_lru_add(struct pagevec *pvec) in __pagevec_lru_add() argument
1067 for (i = 0; i < pagevec_count(pvec); i++) { in __pagevec_lru_add()
1068 struct folio *folio = page_folio(pvec->pages[i]); in __pagevec_lru_add()
1075 release_pages(pvec->pages, pvec->nr); in __pagevec_lru_add()
1076 pagevec_reinit(pvec); in __pagevec_lru_add()
1088 void pagevec_remove_exceptionals(struct pagevec *pvec) in pagevec_remove_exceptionals() argument
1092 for (i = 0, j = 0; i < pagevec_count(pvec); i++) { in pagevec_remove_exceptionals()
1093 struct page *page = pvec->pages[i]; in pagevec_remove_exceptionals()
1095 pvec->pages[j++] = page; in pagevec_remove_exceptionals()
1097 pvec->nr = j; in pagevec_remove_exceptionals()
1120 unsigned pagevec_lookup_range(struct pagevec *pvec, in pagevec_lookup_range() argument
1123 pvec->nr = find_get_pages_range(mapping, start, end, PAGEVEC_SIZE, in pagevec_lookup_range()
1124 pvec->pages); in pagevec_lookup_range()
1125 return pagevec_count(pvec); in pagevec_lookup_range()
1129 unsigned pagevec_lookup_range_tag(struct pagevec *pvec, in pagevec_lookup_range_tag() argument
1133 pvec->nr = find_get_pages_range_tag(mapping, index, end, tag, in pagevec_lookup_range_tag()
1134 PAGEVEC_SIZE, pvec->pages); in pagevec_lookup_range_tag()
1135 return pagevec_count(pvec); in pagevec_lookup_range_tag()