The patch titled Subject: mm/damon/paddr: use a separate function for 'DAMOS_PAGEOUT' handling has been added to the -mm mm-unstable branch. Its filename is mm-damon-paddr-use-a-separate-function-for-damos_pageout-handling.patch This patch will shortly appear at https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/mm-damon-paddr-use-a-separate-function-for-damos_pageout-handling.patch This patch will later appear in the mm-unstable branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next via the mm-everything branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm and is updated there every 2-3 working days ------------------------------------------------------ From: SeongJae Park <sj@xxxxxxxxxx> Subject: mm/damon/paddr: use a separate function for 'DAMOS_PAGEOUT' handling Date: Mon, 13 Jun 2022 19:22:55 +0000 This commit moves code for 'DAMOS_PAGEOUT' handling of the physical address space monitoring operations set to a separate function so that its caller, 'damon_pa_apply_scheme()', can be more easily extended for additional DAMOS actions later. Link: https://lkml.kernel.org/r/20220613192301.8817-4-sj@xxxxxxxxxx Signed-off-by: SeongJae Park <sj@xxxxxxxxxx> Cc: Jonathan Corbet <corbet@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/damon/paddr.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) --- a/mm/damon/paddr.c~mm-damon-paddr-use-a-separate-function-for-damos_pageout-handling +++ a/mm/damon/paddr.c @@ -204,16 +204,11 @@ static unsigned int damon_pa_check_acces return max_nr_accesses; } -static unsigned long damon_pa_apply_scheme(struct damon_ctx *ctx, - struct damon_target *t, struct damon_region *r, - struct damos *scheme) +static unsigned long damon_pa_pageout(struct damon_region *r) { unsigned long addr, applied; LIST_HEAD(page_list); - if (scheme->action != DAMOS_PAGEOUT) - return 0; - for (addr = r->ar.start; addr < r->ar.end; addr += PAGE_SIZE) { struct page *page = damon_get_page(PHYS_PFN(addr)); @@ -238,6 +233,19 @@ static unsigned long damon_pa_apply_sche return applied * PAGE_SIZE; } +static unsigned long damon_pa_apply_scheme(struct damon_ctx *ctx, + struct damon_target *t, struct damon_region *r, + struct damos *scheme) +{ + switch (scheme->action) { + case DAMOS_PAGEOUT: + return damon_pa_pageout(r); + default: + break; + } + return 0; +} + static int damon_pa_scheme_score(struct damon_ctx *context, struct damon_target *t, struct damon_region *r, struct damos *scheme) _ Patches currently in -mm which might be from sj@xxxxxxxxxx are mm-damon-reclaim-schedule-damon_reclaim_timer-only-after-system_wq-is-initialized.patch docs-admin-guide-damon-reclaim-remove-a-paragraph-that-been-obsolete-due-to-online-tuning-support.patch mm-damon-dbgfssysfs-move-target_has_pid-from-dbgfs-to-damonh.patch mm-damon-reclaim-deduplicate-commit_inputs-handling.patch mm-damon-sysfs-deduplicate-inputs-applying.patch mm-damon-reclaim-make-enabled-checking-timer-simpler.patch mm-damon-reclaim-add-damon_reclaim_-prefix-to-enabled_store.patch mm-damon-dbgfs-add-and-use-mappings-between-schemes-action-inputs-and-damos_action-values.patch mm-damon-paddr-use-a-separate-function-for-damos_pageout-handling.patch mm-damon-schemes-add-lru_prio-damos-action.patch docs-admin-guide-damon-sysfs-document-lru_prio-scheme-action.patch mm-damon-schemes-add-lru_deprio-action.patch docs-admin-guide-damon-sysfs-document-lru_deprio-scheme-action.patch mm-damon-introduce-damon-based-lru-lists-sorting.patch docs-admin-guide-damon-add-a-document-for-damon_lru_sort.patch