X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=mm%2Fworkingset.c;h=2559a1f2fc1cfa70352e75b3963ff762e2629d03;hb=b2ce691b452f2731bd7d30c5b05333bf2ae97a0d;hp=da58a26d0d4d76e5bdba8a36041830f755fdab71;hpb=c39cbc5b604c7282f210c4a3a743c9f026ed8002;p=platform%2Fkernel%2Flinux-starfive.git diff --git a/mm/workingset.c b/mm/workingset.c index da58a26..2559a1f 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -313,10 +313,10 @@ static void lru_gen_refault(struct folio *folio, void *shadow) * 1. For pages accessed through page tables, hotter pages pushed out * hot pages which refaulted immediately. * 2. For pages accessed multiple times through file descriptors, - * numbers of accesses might have been out of the range. + * they would have been protected by sort_folio(). */ - if (lru_gen_in_fault() || refs == BIT(LRU_REFS_WIDTH)) { - folio_set_workingset(folio); + if (lru_gen_in_fault() || refs >= BIT(LRU_REFS_WIDTH) - 1) { + set_mask_bits(&folio->flags, 0, LRU_REFS_MASK | BIT(PG_workingset)); mod_lruvec_state(lruvec, WORKINGSET_RESTORE_BASE + type, delta); } unlock: