Lines Matching defs:tier
2102 * Reclaiming directly from top tier nodes is not often desired
2104 * should be reclaimed from lower tier nodes and demoted from
2105 * top tier nodes.
2107 * However, disabling reclaim from top tier nodes entirely
2108 * would cause ooms in edge scenarios where lower tier memory
2111 * from top tier nodes in proactive reclaim though as that is
3641 * The P term is refaulted/(evicted+protected) from a tier in the generation
3646 * The setpoint (SP) is always the first tier of one type; the process variable
3647 * (PV) is either any tier of the other type or any other tier of the same
3663 static void read_ctrl_pos(struct lruvec *lruvec, int type, int tier, int gain,
3669 pos->refaulted = lrugen->avg_refaulted[type][tier] +
3670 atomic_long_read(&lrugen->refaulted[hist][type][tier]);
3671 pos->total = lrugen->avg_total[type][tier] +
3672 atomic_long_read(&lrugen->evicted[hist][type][tier]);
3673 if (tier)
3674 pos->total += lrugen->protected[hist][type][tier - 1];
3680 int hist, tier;
3692 for (tier = 0; tier < MAX_NR_TIERS; tier++) {
3696 sum = lrugen->avg_refaulted[type][tier] +
3697 atomic_long_read(&lrugen->refaulted[hist][type][tier]);
3698 WRITE_ONCE(lrugen->avg_refaulted[type][tier], sum / 2);
3700 sum = lrugen->avg_total[type][tier] +
3701 atomic_long_read(&lrugen->evicted[hist][type][tier]);
3702 if (tier)
3703 sum += lrugen->protected[hist][type][tier - 1];
3704 WRITE_ONCE(lrugen->avg_total[type][tier], sum / 2);
3708 atomic_long_set(&lrugen->refaulted[hist][type][tier], 0);
3709 atomic_long_set(&lrugen->evicted[hist][type][tier], 0);
3710 if (tier)
3711 WRITE_ONCE(lrugen->protected[hist][type][tier - 1], 0);
4869 int tier = lru_tier_from_refs(refs);
4900 if (tier > tier_idx || refs == BIT(LRU_REFS_WIDTH)) {
4906 WRITE_ONCE(lrugen->protected[hist][type][tier - 1],
4907 lrugen->protected[hist][type][tier - 1] + delta);
4964 int type, int tier, struct list_head *list)
5000 if (sort_folio(lruvec, folio, sc, tier))
5041 int tier;
5046 * This value is chosen because any other tier would have at least twice
5047 * as many refaults as the first tier.
5050 for (tier = 1; tier < MAX_NR_TIERS; tier++) {
5051 read_ctrl_pos(lruvec, type, tier, 2, &pv);
5056 return tier - 1;
5061 int type, tier;
5066 * Compare the first tier of anon with that of file to determine which
5068 * with the first tier of the other type to determine the last tier (of
5076 for (tier = 1; tier < MAX_NR_TIERS; tier++) {
5077 read_ctrl_pos(lruvec, type, tier, gain[type], &pv);
5082 *tier_idx = tier - 1;
5093 int tier = -1;
5110 type = get_type_to_scan(lruvec, swappiness, &tier);
5113 if (tier < 0)
5114 tier = get_tier_idx(lruvec, type);
5116 scanned = scan_folios(lruvec, sc, type, tier, list);
5121 tier = -1;
5876 int type, tier;
5880 for (tier = 0; tier < MAX_NR_TIERS; tier++) {
5881 seq_printf(m, " %10d", tier);
5888 n[0] = READ_ONCE(lrugen->avg_refaulted[type][tier]);
5889 n[1] = READ_ONCE(lrugen->avg_total[type][tier]);
5892 n[0] = atomic_long_read(&lrugen->refaulted[hist][type][tier]);
5893 n[1] = atomic_long_read(&lrugen->evicted[hist][type][tier]);
5894 if (tier)
5895 n[2] = READ_ONCE(lrugen->protected[hist][type][tier - 1]);