• Home
  • Raw
  • Download

Lines Matching full:tier

137 	/* Always discard instead of demoting to lower tier memory */
2165 * Reclaiming directly from top tier nodes is not often desired in shrink_folio_list()
2167 * should be reclaimed from lower tier nodes and demoted from in shrink_folio_list()
2168 * top tier nodes. in shrink_folio_list()
2170 * However, disabling reclaim from top tier nodes entirely in shrink_folio_list()
2171 * would cause ooms in edge scenarios where lower tier memory in shrink_folio_list()
2174 * from top tier nodes in proactive reclaim though as that is in shrink_folio_list()
3682 * The P term is refaulted/(evicted+protected) from a tier in the generation
3687 * The setpoint (SP) is always the first tier of one type; the process variable
3688 * (PV) is either any tier of the other type or any other tier of the same
3704 static void read_ctrl_pos(struct lruvec *lruvec, int type, int tier, int gain, in read_ctrl_pos() argument
3710 pos->refaulted = lrugen->avg_refaulted[type][tier] + in read_ctrl_pos()
3711 atomic_long_read(&lrugen->refaulted[hist][type][tier]); in read_ctrl_pos()
3712 pos->total = lrugen->avg_total[type][tier] + in read_ctrl_pos()
3713 atomic_long_read(&lrugen->evicted[hist][type][tier]); in read_ctrl_pos()
3714 if (tier) in read_ctrl_pos()
3715 pos->total += lrugen->protected[hist][type][tier - 1]; in read_ctrl_pos()
3721 int hist, tier; in reset_ctrl_pos() local
3733 for (tier = 0; tier < MAX_NR_TIERS; tier++) { in reset_ctrl_pos()
3737 sum = lrugen->avg_refaulted[type][tier] + in reset_ctrl_pos()
3738 atomic_long_read(&lrugen->refaulted[hist][type][tier]); in reset_ctrl_pos()
3739 WRITE_ONCE(lrugen->avg_refaulted[type][tier], sum / 2); in reset_ctrl_pos()
3741 sum = lrugen->avg_total[type][tier] + in reset_ctrl_pos()
3742 atomic_long_read(&lrugen->evicted[hist][type][tier]); in reset_ctrl_pos()
3743 if (tier) in reset_ctrl_pos()
3744 sum += lrugen->protected[hist][type][tier - 1]; in reset_ctrl_pos()
3745 WRITE_ONCE(lrugen->avg_total[type][tier], sum / 2); in reset_ctrl_pos()
3749 atomic_long_set(&lrugen->refaulted[hist][type][tier], 0); in reset_ctrl_pos()
3750 atomic_long_set(&lrugen->evicted[hist][type][tier], 0); in reset_ctrl_pos()
3751 if (tier) in reset_ctrl_pos()
3752 WRITE_ONCE(lrugen->protected[hist][type][tier - 1], 0); in reset_ctrl_pos()
4910 int tier = lru_tier_from_refs(refs); in sort_folio() local
4941 if (tier > tier_idx || refs == BIT(LRU_REFS_WIDTH)) { in sort_folio()
4947 WRITE_ONCE(lrugen->protected[hist][type][tier - 1], in sort_folio()
4948 lrugen->protected[hist][type][tier - 1] + delta); in sort_folio()
5005 int type, int tier, struct list_head *list) in scan_folios() argument
5041 if (sort_folio(lruvec, folio, sc, tier)) in scan_folios()
5082 int tier; in get_tier_idx() local
5087 * This value is chosen because any other tier would have at least twice in get_tier_idx()
5088 * as many refaults as the first tier. in get_tier_idx()
5091 for (tier = 1; tier < MAX_NR_TIERS; tier++) { in get_tier_idx()
5092 read_ctrl_pos(lruvec, type, tier, 2, &pv); in get_tier_idx()
5097 return tier - 1; in get_tier_idx()
5102 int type, tier; in get_type_to_scan() local
5107 * Compare the first tier of anon with that of file to determine which in get_type_to_scan()
5109 * with the first tier of the other type to determine the last tier (of in get_type_to_scan()
5117 for (tier = 1; tier < MAX_NR_TIERS; tier++) { in get_type_to_scan()
5118 read_ctrl_pos(lruvec, type, tier, gain[type], &pv); in get_type_to_scan()
5123 *tier_idx = tier - 1; in get_type_to_scan()
5134 int tier = -1; in isolate_folios() local
5151 type = get_type_to_scan(lruvec, swappiness, &tier); in isolate_folios()
5154 if (tier < 0) in isolate_folios()
5155 tier = get_tier_idx(lruvec, type); in isolate_folios()
5157 scanned = scan_folios(lruvec, sc, type, tier, list); in isolate_folios()
5162 tier = -1; in isolate_folios()
5913 int type, tier; in lru_gen_seq_show_full() local
5917 for (tier = 0; tier < MAX_NR_TIERS; tier++) { in lru_gen_seq_show_full()
5918 seq_printf(m, " %10d", tier); in lru_gen_seq_show_full()
5925 n[0] = READ_ONCE(lrugen->avg_refaulted[type][tier]); in lru_gen_seq_show_full()
5926 n[1] = READ_ONCE(lrugen->avg_total[type][tier]); in lru_gen_seq_show_full()
5929 n[0] = atomic_long_read(&lrugen->refaulted[hist][type][tier]); in lru_gen_seq_show_full()
5930 n[1] = atomic_long_read(&lrugen->evicted[hist][type][tier]); in lru_gen_seq_show_full()
5931 if (tier) in lru_gen_seq_show_full()
5932 n[2] = READ_ONCE(lrugen->protected[hist][type][tier - 1]); in lru_gen_seq_show_full()