Lines Matching refs:pvec
52 struct pagevec pvec; member
208 static void pagevec_lru_move_fn(struct pagevec *pvec, in pagevec_lru_move_fn() argument
217 for (i = 0; i < pagevec_count(pvec); i++) { in pagevec_lru_move_fn()
218 struct page *page = pvec->pages[i]; in pagevec_lru_move_fn()
233 release_pages(pvec->pages, pvec->nr); in pagevec_lru_move_fn()
234 pagevec_reinit(pvec); in pagevec_lru_move_fn()
254 static void pagevec_move_tail(struct pagevec *pvec) in pagevec_move_tail() argument
258 pagevec_lru_move_fn(pvec, pagevec_move_tail_fn, &pgmoved); in pagevec_move_tail()
263 static bool pagevec_add_and_need_flush(struct pagevec *pvec, struct page *page) in pagevec_add_and_need_flush() argument
267 if (!pagevec_add(pvec, page) || PageCompound(page) || in pagevec_add_and_need_flush()
283 struct pagevec *pvec; in rotate_reclaimable_page() local
288 pvec = this_cpu_ptr(&lru_rotate.pvec); in rotate_reclaimable_page()
289 if (pagevec_add_and_need_flush(pvec, page)) in rotate_reclaimable_page()
290 pagevec_move_tail(pvec); in rotate_reclaimable_page()
354 struct pagevec *pvec = &per_cpu(lru_pvecs.activate_page, cpu); in activate_page_drain() local
356 if (pagevec_count(pvec)) in activate_page_drain()
357 pagevec_lru_move_fn(pvec, __activate_page, NULL); in activate_page_drain()
369 struct pagevec *pvec; in activate_page() local
372 pvec = this_cpu_ptr(&lru_pvecs.activate_page); in activate_page()
374 if (pagevec_add_and_need_flush(pvec, page)) in activate_page()
375 pagevec_lru_move_fn(pvec, __activate_page, NULL); in activate_page()
398 struct pagevec *pvec; in __lru_cache_activate_page() local
402 pvec = this_cpu_ptr(&lru_pvecs.lru_add); in __lru_cache_activate_page()
414 for (i = pagevec_count(pvec) - 1; i >= 0; i--) { in __lru_cache_activate_page()
415 struct page *pagevec_page = pvec->pages[i]; in __lru_cache_activate_page()
479 struct pagevec *pvec; in lru_cache_add() local
486 pvec = this_cpu_ptr(&lru_pvecs.lru_add); in lru_cache_add()
487 if (pagevec_add_and_need_flush(pvec, page)) in lru_cache_add()
488 __pagevec_lru_add(pvec); in lru_cache_add()
662 struct pagevec *pvec = &per_cpu(lru_pvecs.lru_add, cpu); in lru_add_drain_cpu() local
664 if (pagevec_count(pvec)) in lru_add_drain_cpu()
665 __pagevec_lru_add(pvec); in lru_add_drain_cpu()
667 pvec = &per_cpu(lru_rotate.pvec, cpu); in lru_add_drain_cpu()
669 if (data_race(pagevec_count(pvec))) { in lru_add_drain_cpu()
674 pagevec_move_tail(pvec); in lru_add_drain_cpu()
678 pvec = &per_cpu(lru_pvecs.lru_deactivate_file, cpu); in lru_add_drain_cpu()
679 if (pagevec_count(pvec)) in lru_add_drain_cpu()
680 pagevec_lru_move_fn(pvec, lru_deactivate_file_fn, NULL); in lru_add_drain_cpu()
682 pvec = &per_cpu(lru_pvecs.lru_deactivate, cpu); in lru_add_drain_cpu()
683 if (pagevec_count(pvec)) in lru_add_drain_cpu()
684 pagevec_lru_move_fn(pvec, lru_deactivate_fn, NULL); in lru_add_drain_cpu()
686 pvec = &per_cpu(lru_pvecs.lru_lazyfree, cpu); in lru_add_drain_cpu()
687 if (pagevec_count(pvec)) in lru_add_drain_cpu()
688 pagevec_lru_move_fn(pvec, lru_lazyfree_fn, NULL); in lru_add_drain_cpu()
690 pvec = &per_cpu(lru_pvecs.lru_lazyfree_movetail, cpu); in lru_add_drain_cpu()
691 if (pagevec_count(pvec)) in lru_add_drain_cpu()
692 pagevec_lru_move_fn(pvec, lru_lazyfree_movetail_fn, NULL); in lru_add_drain_cpu()
715 struct pagevec *pvec; in deactivate_file_page() local
718 pvec = this_cpu_ptr(&lru_pvecs.lru_deactivate_file); in deactivate_file_page()
720 if (pagevec_add_and_need_flush(pvec, page)) in deactivate_file_page()
721 pagevec_lru_move_fn(pvec, lru_deactivate_file_fn, NULL); in deactivate_file_page()
737 struct pagevec *pvec; in deactivate_page() local
740 pvec = this_cpu_ptr(&lru_pvecs.lru_deactivate); in deactivate_page()
742 if (pagevec_add_and_need_flush(pvec, page)) in deactivate_page()
743 pagevec_lru_move_fn(pvec, lru_deactivate_fn, NULL); in deactivate_page()
759 struct pagevec *pvec; in mark_page_lazyfree() local
762 pvec = this_cpu_ptr(&lru_pvecs.lru_lazyfree); in mark_page_lazyfree()
764 if (pagevec_add_and_need_flush(pvec, page)) in mark_page_lazyfree()
765 pagevec_lru_move_fn(pvec, lru_lazyfree_fn, NULL); in mark_page_lazyfree()
781 struct pagevec *pvec; in mark_page_lazyfree_movetail() local
784 pvec = this_cpu_ptr(&lru_pvecs.lru_lazyfree_movetail); in mark_page_lazyfree_movetail()
786 if (pagevec_add_and_need_flush(pvec, page)) in mark_page_lazyfree_movetail()
787 pagevec_lru_move_fn(pvec, in mark_page_lazyfree_movetail()
915 data_race(pagevec_count(&per_cpu(lru_rotate.pvec, cpu))) || in __lru_add_drain_all()
1096 void __pagevec_release(struct pagevec *pvec) in __pagevec_release() argument
1098 if (!pvec->percpu_pvec_drained) { in __pagevec_release()
1100 pvec->percpu_pvec_drained = true; in __pagevec_release()
1102 release_pages(pvec->pages, pagevec_count(pvec)); in __pagevec_release()
1103 pagevec_reinit(pvec); in __pagevec_release()
1198 void __pagevec_lru_add(struct pagevec *pvec) in __pagevec_lru_add() argument
1200 pagevec_lru_move_fn(pvec, __pagevec_lru_add_fn, NULL); in __pagevec_lru_add()
1227 unsigned pagevec_lookup_entries(struct pagevec *pvec, in pagevec_lookup_entries() argument
1232 pvec->nr = find_get_entries(mapping, start, nr_entries, in pagevec_lookup_entries()
1233 pvec->pages, indices); in pagevec_lookup_entries()
1234 return pagevec_count(pvec); in pagevec_lookup_entries()
1246 void pagevec_remove_exceptionals(struct pagevec *pvec) in pagevec_remove_exceptionals() argument
1250 for (i = 0, j = 0; i < pagevec_count(pvec); i++) { in pagevec_remove_exceptionals()
1251 struct page *page = pvec->pages[i]; in pagevec_remove_exceptionals()
1253 pvec->pages[j++] = page; in pagevec_remove_exceptionals()
1255 pvec->nr = j; in pagevec_remove_exceptionals()
1278 unsigned pagevec_lookup_range(struct pagevec *pvec, in pagevec_lookup_range() argument
1281 pvec->nr = find_get_pages_range(mapping, start, end, PAGEVEC_SIZE, in pagevec_lookup_range()
1282 pvec->pages); in pagevec_lookup_range()
1283 return pagevec_count(pvec); in pagevec_lookup_range()
1287 unsigned pagevec_lookup_range_tag(struct pagevec *pvec, in pagevec_lookup_range_tag() argument
1291 pvec->nr = find_get_pages_range_tag(mapping, index, end, tag, in pagevec_lookup_range_tag()
1292 PAGEVEC_SIZE, pvec->pages); in pagevec_lookup_range_tag()
1293 return pagevec_count(pvec); in pagevec_lookup_range_tag()
1297 unsigned pagevec_lookup_range_nr_tag(struct pagevec *pvec, in pagevec_lookup_range_nr_tag() argument
1301 pvec->nr = find_get_pages_range_tag(mapping, index, end, tag, in pagevec_lookup_range_nr_tag()
1302 min_t(unsigned int, max_pages, PAGEVEC_SIZE), pvec->pages); in pagevec_lookup_range_nr_tag()
1303 return pagevec_count(pvec); in pagevec_lookup_range_nr_tag()