• SeongJae Park's avatar
    mm/damon/paddr: implement damon_folio_young() · 180d928e
    SeongJae Park authored
    Patch series "mm/damon: add a DAMOS filter type for page granularity
    access recheck".
    
    DAMON provides its best-effort accuracy-overhead tradeoff under the
    user-defined ranges of acceptable level of the monitoring accuracy and
    overhead.  A recent discussion for tiered memory management support from
    DAMON[1] concluded that finding memory regions of specific access pattern
    with low overhead despite of low accuracy via DAMON first, and then double
    checking the access of the region again in a finer (e.g., page)
    granularity could be a useful strategy for some DAMOS schemes.
    
    Add a new type of DAMOS filter, namely 'young' for such a case.  It checks
    each page of DAMOS target region is accessed since the last check, and
    filters it out or in if 'matching' parameter is 'true' or 'false',
    respectively.
    
    Because this is a filter type that applied in page granularity, the
    support depends on DAMON operations set, similar to 'anon' and 'memcg'
    DAMOS filter types.  Implement the support on the DAMON operations set for
    the physical address space, 'paddr', since one of the expected usages[1]
    is based on the physical address space.
    
    [1] https://lore.kernel.org/r/20240227235121.153277-1-sj@kernel.org
    
    
    This patch (of 7):
    
    damon_pa_young() receives physical address, get the folio covering the
    address, and show if the folio is accessed since the last check.  A
    following commit will reuse the internal logic for checking access to a
    given folio.  To avoid duplication of the code, split the internal logic. 
    Also, change the rmap walker function's name from __damon_pa_young() to
    damon_folio_young_one(), following the change of the caller's name and the
    naming rule that more commonly used by other rmap walkers.
    
    Link: https://lkml.kernel.org/r/20240426195247.100306-1-sj@kernel.org
    Link: https://lkml.kernel.org/r/20240426195247.100306-2-sj@kernel.orgSigned-off-by: default avatarSeongJae Park <sj@kernel.org>
    Tested-by: default avatarHonggyu Kim <honggyu.kim@sk.com>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    180d928e
paddr.c 7.88 KB