Lines Matching refs:lruvec

84 		struct lruvec *lruvec;  in __page_cache_release()  local
87 lruvec = folio_lruvec_lock_irqsave(folio, &flags); in __page_cache_release()
88 lruvec_del_folio(lruvec, folio); in __page_cache_release()
90 unlock_page_lruvec_irqrestore(lruvec, flags); in __page_cache_release()
161 typedef void (*move_fn_t)(struct lruvec *lruvec, struct folio *folio);
163 static void lru_add_fn(struct lruvec *lruvec, struct folio *folio) in lru_add_fn() argument
199 lruvec_add_folio(lruvec, folio); in lru_add_fn()
206 struct lruvec *lruvec = NULL; in folio_batch_move_lru() local
216 lruvec = folio_lruvec_relock_irqsave(folio, lruvec, &flags); in folio_batch_move_lru()
217 move_fn(lruvec, folio); in folio_batch_move_lru()
222 if (lruvec) in folio_batch_move_lru()
223 unlock_page_lruvec_irqrestore(lruvec, flags); in folio_batch_move_lru()
237 static void lru_move_tail_fn(struct lruvec *lruvec, struct folio *folio) in lru_move_tail_fn() argument
240 lruvec_del_folio(lruvec, folio); in lru_move_tail_fn()
242 lruvec_add_folio_tail(lruvec, folio); in lru_move_tail_fn()
269 void lru_note_cost(struct lruvec *lruvec, bool file, in lru_note_cost() argument
293 spin_lock_irq(&lruvec->lru_lock); in lru_note_cost()
296 lruvec->file_cost += cost; in lru_note_cost()
298 lruvec->anon_cost += cost; in lru_note_cost()
308 lrusize = lruvec_page_state(lruvec, NR_INACTIVE_ANON) + in lru_note_cost()
309 lruvec_page_state(lruvec, NR_ACTIVE_ANON) + in lru_note_cost()
310 lruvec_page_state(lruvec, NR_INACTIVE_FILE) + in lru_note_cost()
311 lruvec_page_state(lruvec, NR_ACTIVE_FILE); in lru_note_cost()
313 if (lruvec->file_cost + lruvec->anon_cost > lrusize / 4) { in lru_note_cost()
314 lruvec->file_cost /= 2; in lru_note_cost()
315 lruvec->anon_cost /= 2; in lru_note_cost()
317 spin_unlock_irq(&lruvec->lru_lock); in lru_note_cost()
318 } while ((lruvec = parent_lruvec(lruvec))); in lru_note_cost()
327 static void folio_activate_fn(struct lruvec *lruvec, struct folio *folio) in folio_activate_fn() argument
332 lruvec_del_folio(lruvec, folio); in folio_activate_fn()
334 lruvec_add_folio(lruvec, folio); in folio_activate_fn()
338 __count_memcg_events(lruvec_memcg(lruvec), PGACTIVATE, in folio_activate_fn()
373 struct lruvec *lruvec; in folio_activate() local
376 lruvec = folio_lruvec_lock_irq(folio); in folio_activate()
377 folio_activate_fn(lruvec, folio); in folio_activate()
378 unlock_page_lruvec_irq(lruvec); in folio_activate()
561 static void lru_deactivate_file_fn(struct lruvec *lruvec, struct folio *folio) in lru_deactivate_file_fn() argument
573 lruvec_del_folio(lruvec, folio); in lru_deactivate_file_fn()
584 lruvec_add_folio(lruvec, folio); in lru_deactivate_file_fn()
591 lruvec_add_folio_tail(lruvec, folio); in lru_deactivate_file_fn()
597 __count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE, in lru_deactivate_file_fn()
602 static void lru_deactivate_fn(struct lruvec *lruvec, struct folio *folio) in lru_deactivate_fn() argument
607 lruvec_del_folio(lruvec, folio); in lru_deactivate_fn()
610 lruvec_add_folio(lruvec, folio); in lru_deactivate_fn()
613 __count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE, in lru_deactivate_fn()
618 static void lru_lazyfree_fn(struct lruvec *lruvec, struct folio *folio) in lru_lazyfree_fn() argument
624 lruvec_del_folio(lruvec, folio); in lru_lazyfree_fn()
633 lruvec_add_folio(lruvec, folio); in lru_lazyfree_fn()
636 __count_memcg_events(lruvec_memcg(lruvec), PGLAZYFREE, in lru_lazyfree_fn()
965 struct lruvec *lruvec = NULL; in release_pages() local
980 if (lruvec && ++lock_batch == SWAP_CLUSTER_MAX) { in release_pages()
981 unlock_page_lruvec_irqrestore(lruvec, flags); in release_pages()
982 lruvec = NULL; in release_pages()
989 if (lruvec) { in release_pages()
990 unlock_page_lruvec_irqrestore(lruvec, flags); in release_pages()
991 lruvec = NULL; in release_pages()
1004 if (lruvec) { in release_pages()
1005 unlock_page_lruvec_irqrestore(lruvec, flags); in release_pages()
1006 lruvec = NULL; in release_pages()
1013 struct lruvec *prev_lruvec = lruvec; in release_pages()
1015 lruvec = folio_lruvec_relock_irqsave(folio, lruvec, in release_pages()
1017 if (prev_lruvec != lruvec) in release_pages()
1020 lruvec_del_folio(lruvec, folio); in release_pages()
1038 if (lruvec) in release_pages()
1039 unlock_page_lruvec_irqrestore(lruvec, flags); in release_pages()