All of lore.kernel.org
 help / color / mirror / Atom feed
From: SeongJae Park <sj@kernel.org>
To: SeongJae Park <sj@kernel.org>, Andrew Morton <akpm@linux-foundation.org>
Cc: damon@lists.linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: [PATCH 2/8] mm/damon/paddr: use a separate function for 'DAMOS_PAGEOUT' handling
Date: Mon, 13 Jun 2022 19:22:55 +0000	[thread overview]
Message-ID: <20220613192301.8817-4-sj@kernel.org> (raw)
In-Reply-To: <20220613192301.8817-1-sj@kernel.org>

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.

Signed-off-by: SeongJae Park <sj@kernel.org>
---
 mm/damon/paddr.c | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
index b40ff5811bb2..7bcd48066b43 100644
--- a/mm/damon/paddr.c
+++ b/mm/damon/paddr.c
@@ -204,16 +204,11 @@ static unsigned int damon_pa_check_accesses(struct damon_ctx *ctx)
 	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_scheme(struct damon_ctx *ctx,
 	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)
-- 
2.25.1


  parent reply	other threads:[~2022-06-13 19:23 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-13 19:22 [PATCH 0/8] Extend DAMOS for Proactive LRU-lists Sorting SeongJae Park
2022-06-13 19:22 ` [PATCH 1/8] mm/damon/dbgfs: add and use mappings between 'schemes' action inputs and 'damos_action' values SeongJae Park
2022-06-13 19:22 ` [PATCH 1/8] mm/damon/dbgfs: add mappings between 'schemes' file's " SeongJae Park
2022-06-13 19:22 ` SeongJae Park [this message]
2022-06-13 19:22 ` [PATCH 3/8] mm/damon/schemes: add 'LRU_PRIO' DAMOS action SeongJae Park
2022-06-13 19:22 ` [PATCH 4/8] Docs/admin-guide/damon/sysfs: document 'LRU_PRIO' scheme action SeongJae Park
2022-06-13 19:22 ` [PATCH 5/8] mm/damon/schemes: add 'LRU_DEPRIO' action SeongJae Park
2022-06-13 19:22 ` [PATCH 6/8] Docs/admin-guide/damon/sysfs: document 'LRU_DEPRIO' scheme action SeongJae Park
2022-06-13 19:23 ` [PATCH 7/8] mm/damon: introduce DAMON-based LRU-lists Sorting SeongJae Park
2022-09-01  2:03   ` Barry Song
2022-09-01  2:21     ` Barry Song
2022-09-01 17:11       ` SeongJae Park
2022-09-01 21:40         ` Barry Song
2022-09-01 22:11           ` SeongJae Park
2022-09-02  1:18             ` Barry Song
2022-09-02  1:21             ` Barry Song
2022-06-13 19:23 ` [PATCH 8/8] Docs/admin-guide/damon: add a document for DAMON_LRU_SORT SeongJae Park

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220613192301.8817-4-sj@kernel.org \
    --to=sj@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=damon@lists.linux.dev \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.