• SeongJae Park's avatar
    mm/damon/core: implement DAMOS quota goals online commit function · 3ad1dce6
    SeongJae Park authored
    Patch series "mm/damon: introduce DAMON parameters online commit function".
    
    DAMON context struct (damon_ctx) contains user requests (parameters),
    internal status, and operation results.  For flexible usages, DAMON API
    users are encouraged to manually manipulate the struct.  That works well
    for simple use cases.  However, it has turned out that it is not that
    simple at least for online parameters udpate.  It is easy to forget
    properly maintaining internal status and operation results.  Also, such
    manual manipulation for online tuning is implemented multiple times on
    DAMON API users including DAMON sysfs interface, DAMON_RECLAIM and
    DAMON_LRU_SORT.  As a result, we have multiple sources of bugs for same
    problem.  Actually we found and fixed a few bugs from online parameter
    updating of DAMON API users.
    
    Implement a function for online DAMON parameters update in core layer, and
    replace DAMON API users' manual manipulation code for the use case.  The
    core layer function could still have bugs, but this change reduces the
    source of bugs for the problem to one place.
    
    
    This patch (of 12):
    
    Implement functions for supporting online DAMOS quota goals parameters
    update.  The function receives two DAMOS quota structs.  One is the struct
    that currently being used by a kdamond and therefore to be updated.  The
    other one contains the parameters to be applied to the first one.  The
    function applies the new parameters to the destination struct while
    keeping/updating the internal status.  The function should be called from
    parameters-update safe place, like DAMON callbacks.
    
    Link: https://lkml.kernel.org/r/20240618181809.82078-1-sj@kernel.org
    Link: https://lkml.kernel.org/r/20240618181809.82078-2-sj@kernel.orgSigned-off-by: default avatarSeongJae Park <sj@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    3ad1dce6
core.c 49.5 KB