Lines Matching refs:pvec
52 struct pagevec pvec; member
182 static void pagevec_lru_move_fn(struct pagevec *pvec, in pagevec_lru_move_fn() argument
189 for (i = 0; i < pagevec_count(pvec); i++) { in pagevec_lru_move_fn()
190 struct page *page = pvec->pages[i]; in pagevec_lru_move_fn()
203 release_pages(pvec->pages, pvec->nr); in pagevec_lru_move_fn()
204 pagevec_reinit(pvec); in pagevec_lru_move_fn()
218 static bool pagevec_add_and_need_flush(struct pagevec *pvec, struct page *page) in pagevec_add_and_need_flush() argument
222 if (!pagevec_add(pvec, page) || PageCompound(page) || in pagevec_add_and_need_flush()
240 struct pagevec *pvec; in rotate_reclaimable_page() local
245 pvec = this_cpu_ptr(&lru_rotate.pvec); in rotate_reclaimable_page()
246 if (pagevec_add_and_need_flush(pvec, page)) in rotate_reclaimable_page()
247 pagevec_lru_move_fn(pvec, pagevec_move_tail_fn); in rotate_reclaimable_page()
317 struct pagevec *pvec = &per_cpu(lru_pvecs.activate_page, cpu); in activate_page_drain() local
319 if (pagevec_count(pvec)) in activate_page_drain()
320 pagevec_lru_move_fn(pvec, __activate_page); in activate_page_drain()
332 struct pagevec *pvec; in activate_page() local
335 pvec = this_cpu_ptr(&lru_pvecs.activate_page); in activate_page()
337 if (pagevec_add_and_need_flush(pvec, page)) in activate_page()
338 pagevec_lru_move_fn(pvec, __activate_page); in activate_page()
364 struct pagevec *pvec; in __lru_cache_activate_page() local
368 pvec = this_cpu_ptr(&lru_pvecs.lru_add); in __lru_cache_activate_page()
380 for (i = pagevec_count(pvec) - 1; i >= 0; i--) { in __lru_cache_activate_page()
381 struct page *pagevec_page = pvec->pages[i]; in __lru_cache_activate_page()
444 struct pagevec *pvec; in lru_cache_add() local
451 pvec = this_cpu_ptr(&lru_pvecs.lru_add); in lru_cache_add()
452 if (pagevec_add_and_need_flush(pvec, page)) in lru_cache_add()
453 __pagevec_lru_add(pvec); in lru_cache_add()
594 struct pagevec *pvec = &per_cpu(lru_pvecs.lru_add, cpu); in lru_add_drain_cpu() local
596 if (pagevec_count(pvec)) in lru_add_drain_cpu()
597 __pagevec_lru_add(pvec); in lru_add_drain_cpu()
599 pvec = &per_cpu(lru_rotate.pvec, cpu); in lru_add_drain_cpu()
601 if (data_race(pagevec_count(pvec))) { in lru_add_drain_cpu()
606 pagevec_lru_move_fn(pvec, pagevec_move_tail_fn); in lru_add_drain_cpu()
610 pvec = &per_cpu(lru_pvecs.lru_deactivate_file, cpu); in lru_add_drain_cpu()
611 if (pagevec_count(pvec)) in lru_add_drain_cpu()
612 pagevec_lru_move_fn(pvec, lru_deactivate_file_fn); in lru_add_drain_cpu()
614 pvec = &per_cpu(lru_pvecs.lru_deactivate, cpu); in lru_add_drain_cpu()
615 if (pagevec_count(pvec)) in lru_add_drain_cpu()
616 pagevec_lru_move_fn(pvec, lru_deactivate_fn); in lru_add_drain_cpu()
618 pvec = &per_cpu(lru_pvecs.lru_lazyfree, cpu); in lru_add_drain_cpu()
619 if (pagevec_count(pvec)) in lru_add_drain_cpu()
620 pagevec_lru_move_fn(pvec, lru_lazyfree_fn); in lru_add_drain_cpu()
643 struct pagevec *pvec; in deactivate_file_page() local
646 pvec = this_cpu_ptr(&lru_pvecs.lru_deactivate_file); in deactivate_file_page()
648 if (pagevec_add_and_need_flush(pvec, page)) in deactivate_file_page()
649 pagevec_lru_move_fn(pvec, lru_deactivate_file_fn); in deactivate_file_page()
665 struct pagevec *pvec; in deactivate_page() local
668 pvec = this_cpu_ptr(&lru_pvecs.lru_deactivate); in deactivate_page()
670 if (pagevec_add_and_need_flush(pvec, page)) in deactivate_page()
671 pagevec_lru_move_fn(pvec, lru_deactivate_fn); in deactivate_page()
687 struct pagevec *pvec; in mark_page_lazyfree() local
690 pvec = this_cpu_ptr(&lru_pvecs.lru_lazyfree); in mark_page_lazyfree()
692 if (pagevec_add_and_need_flush(pvec, page)) in mark_page_lazyfree()
693 pagevec_lru_move_fn(pvec, lru_lazyfree_fn); in mark_page_lazyfree()
820 data_race(pagevec_count(&per_cpu(lru_rotate.pvec, cpu))) || in __lru_add_drain_all()
977 void __pagevec_release(struct pagevec *pvec) in __pagevec_release() argument
979 if (!pvec->percpu_pvec_drained) { in __pagevec_release()
981 pvec->percpu_pvec_drained = true; in __pagevec_release()
983 release_pages(pvec->pages, pagevec_count(pvec)); in __pagevec_release()
984 pagevec_reinit(pvec); in __pagevec_release()
1042 void __pagevec_lru_add(struct pagevec *pvec) in __pagevec_lru_add() argument
1048 for (i = 0; i < pagevec_count(pvec); i++) { in __pagevec_lru_add()
1049 struct page *page = pvec->pages[i]; in __pagevec_lru_add()
1056 release_pages(pvec->pages, pvec->nr); in __pagevec_lru_add()
1057 pagevec_reinit(pvec); in __pagevec_lru_add()
1069 void pagevec_remove_exceptionals(struct pagevec *pvec) in pagevec_remove_exceptionals() argument
1073 for (i = 0, j = 0; i < pagevec_count(pvec); i++) { in pagevec_remove_exceptionals()
1074 struct page *page = pvec->pages[i]; in pagevec_remove_exceptionals()
1076 pvec->pages[j++] = page; in pagevec_remove_exceptionals()
1078 pvec->nr = j; in pagevec_remove_exceptionals()
1101 unsigned pagevec_lookup_range(struct pagevec *pvec, in pagevec_lookup_range() argument
1104 pvec->nr = find_get_pages_range(mapping, start, end, PAGEVEC_SIZE, in pagevec_lookup_range()
1105 pvec->pages); in pagevec_lookup_range()
1106 return pagevec_count(pvec); in pagevec_lookup_range()
1110 unsigned pagevec_lookup_range_tag(struct pagevec *pvec, in pagevec_lookup_range_tag() argument
1114 pvec->nr = find_get_pages_range_tag(mapping, index, end, tag, in pagevec_lookup_range_tag()
1115 PAGEVEC_SIZE, pvec->pages); in pagevec_lookup_range_tag()
1116 return pagevec_count(pvec); in pagevec_lookup_range_tag()