On Wed, Jan 15, 2025 at 06:06:25AM -0600, Donet Tom wrote:I missed adding non memcg folios for promotion . I will add them too.
An MGLRU page cache page is eligible for promotion when:... why do you only promote folios if they belong to a memcg?
1. Memory Tiering and pagecache_promotion_enabled are enabled
2. It resides in a lower memory tier.
3. It is referenced.
4. It is part of the working set.
5. It belongs to the active list.
For MGLRU, the youngest generation and the youngest generation - 1
are treated as the active list.
Yes, there should be an else block to handle the promotion of non memcg folios.
+promo_candid:Should there be an 'else' clause here? Or should it be:
+ if (!folio_test_isolated(folio) &&
+ (sysctl_numa_balancing_mode & NUMA_BALANCING_MEMORY_TIERING) &&
+ numa_pagecache_promotion_enabled) {
+ memcg = folio_memcg(folio);
+ if (memcg) {
+ lruvec = mem_cgroup_lruvec(memcg, folio_pgdat(folio));
+ gen = folio_lru_gen(folio);
+
+ if ((gen < MAX_NR_GENS) && lru_gen_is_active(lruvec, gen))
+ promotion_candidate(folio);
+ }
lruvec = mem_cgroup_lruvec(memcg, folio_pgdat(folio));
gen = folio_lru_gen(folio);
if ((gen < MAX_NR_GENS) && lru_gen_is_active(lruvec, gen))
promotion_candidate(folio);