damon.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/3] mm/damon/paddr: minor code improvement
@ 2023-03-08  8:33 Kefeng Wang
  2023-03-08  8:33 ` [PATCH v3 1/3] mm/damon/paddr: minor refactor of damon_pa_pageout() Kefeng Wang
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Kefeng Wang @ 2023-03-08  8:33 UTC (permalink / raw)
  To: SeongJae Park, Andrew Morton; +Cc: linux-mm, linux-kernel, damon, Kefeng Wang

Unify folio_put() to make code more clear, and also fix minor issue in
damon_pa_young().

v3: 
- as SJ split the bugfix from v2, and it has merged[1], only do code
  improvement
- fix a missing folio_sz update in damon_pa_young()
- add RB from SJ
- rebase on next-20230308

[1] https://lkml.kernel.org/r/20230304193949.296391-1-sj@kernel.org

v2: 
- use goto lable in damon_pa_pageout() and refact too more functions

Kefeng Wang (3):
  mm/damon/paddr: minor refactor of damon_pa_pageout()
  mm/damon/paddr: minor refactor of
    damon_pa_mark_accessed_or_deactivate()
  mm/damon/paddr: fix missing folio_sz update in damon_pa_young()

 mm/damon/paddr.c | 26 ++++++++++----------------
 1 file changed, 10 insertions(+), 16 deletions(-)

-- 
2.35.3


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v3 1/3] mm/damon/paddr: minor refactor of damon_pa_pageout()
  2023-03-08  8:33 [PATCH v3 0/3] mm/damon/paddr: minor code improvement Kefeng Wang
@ 2023-03-08  8:33 ` Kefeng Wang
  2023-03-08  8:33 ` [PATCH v3 2/3] mm/damon/paddr: minor refactor of damon_pa_mark_accessed_or_deactivate() Kefeng Wang
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Kefeng Wang @ 2023-03-08  8:33 UTC (permalink / raw)
  To: SeongJae Park, Andrew Morton; +Cc: linux-mm, linux-kernel, damon, Kefeng Wang

Omit three lines by unified folio_put(), and make code more clear.

Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 mm/damon/paddr.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
index dd9c33fbe805..0db724aec5cb 100644
--- a/mm/damon/paddr.c
+++ b/mm/damon/paddr.c
@@ -238,21 +238,18 @@ static unsigned long damon_pa_pageout(struct damon_region *r, struct damos *s)
 		if (!folio)
 			continue;
 
-		if (damos_pa_filter_out(s, folio)) {
-			folio_put(folio);
-			continue;
-		}
+		if (damos_pa_filter_out(s, folio))
+			goto put_folio;
 
 		folio_clear_referenced(folio);
 		folio_test_clear_young(folio);
-		if (!folio_isolate_lru(folio)) {
-			folio_put(folio);
-			continue;
-		}
+		if (!folio_isolate_lru(folio))
+			goto put_folio;
 		if (folio_test_unevictable(folio))
 			folio_putback_lru(folio);
 		else
 			list_add(&folio->lru, &folio_list);
+put_folio:
 		folio_put(folio);
 	}
 	applied = reclaim_pages(&folio_list);
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v3 2/3] mm/damon/paddr: minor refactor of damon_pa_mark_accessed_or_deactivate()
  2023-03-08  8:33 [PATCH v3 0/3] mm/damon/paddr: minor code improvement Kefeng Wang
  2023-03-08  8:33 ` [PATCH v3 1/3] mm/damon/paddr: minor refactor of damon_pa_pageout() Kefeng Wang
@ 2023-03-08  8:33 ` Kefeng Wang
  2023-03-08  8:33 ` [PATCH v3 3/3] mm/damon/paddr: fix missing folio_sz update in damon_pa_young() Kefeng Wang
  2023-03-08 18:17 ` [PATCH v3 0/3] mm/damon/paddr: minor code improvement SeongJae Park
  3 siblings, 0 replies; 5+ messages in thread
From: Kefeng Wang @ 2023-03-08  8:33 UTC (permalink / raw)
  To: SeongJae Park, Andrew Morton; +Cc: linux-mm, linux-kernel, damon, Kefeng Wang

Omit one line by unified folio_put(), and make code more clear.

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 mm/damon/paddr.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
index 0db724aec5cb..b22f6fbb5816 100644
--- a/mm/damon/paddr.c
+++ b/mm/damon/paddr.c
@@ -268,16 +268,15 @@ static inline unsigned long damon_pa_mark_accessed_or_deactivate(
 		if (!folio)
 			continue;
 
-		if (damos_pa_filter_out(s, folio)) {
-			folio_put(folio);
-			continue;
-		}
+		if (damos_pa_filter_out(s, folio))
+			goto put_folio;
 
 		if (mark_accessed)
 			folio_mark_accessed(folio);
 		else
 			folio_deactivate(folio);
 		applied += folio_nr_pages(folio);
+put_folio:
 		folio_put(folio);
 	}
 	return applied * PAGE_SIZE;
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH v3 3/3] mm/damon/paddr: fix missing folio_sz update in damon_pa_young()
  2023-03-08  8:33 [PATCH v3 0/3] mm/damon/paddr: minor code improvement Kefeng Wang
  2023-03-08  8:33 ` [PATCH v3 1/3] mm/damon/paddr: minor refactor of damon_pa_pageout() Kefeng Wang
  2023-03-08  8:33 ` [PATCH v3 2/3] mm/damon/paddr: minor refactor of damon_pa_mark_accessed_or_deactivate() Kefeng Wang
@ 2023-03-08  8:33 ` Kefeng Wang
  2023-03-08 18:17 ` [PATCH v3 0/3] mm/damon/paddr: minor code improvement SeongJae Park
  3 siblings, 0 replies; 5+ messages in thread
From: Kefeng Wang @ 2023-03-08  8:33 UTC (permalink / raw)
  To: SeongJae Park, Andrew Morton; +Cc: linux-mm, linux-kernel, damon, Kefeng Wang

The *folio_sz in damon_pa_young() will be used(as last_folio_sz) by
__damon_pa_check_access(), so it's need to be updated, fix missing
branch.

Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
---
 mm/damon/paddr.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c
index b22f6fbb5816..467b99166b43 100644
--- a/mm/damon/paddr.c
+++ b/mm/damon/paddr.c
@@ -134,10 +134,8 @@ static bool damon_pa_young(unsigned long paddr, unsigned long *folio_sz)
 	}
 
 	need_lock = !folio_test_anon(folio) || folio_test_ksm(folio);
-	if (need_lock && !folio_trylock(folio)) {
-		folio_put(folio);
-		return false;
-	}
+	if (need_lock && !folio_trylock(folio))
+		goto out;
 
 	rmap_walk(folio, &rwc);
 
-- 
2.35.3


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v3 0/3] mm/damon/paddr: minor code improvement
  2023-03-08  8:33 [PATCH v3 0/3] mm/damon/paddr: minor code improvement Kefeng Wang
                   ` (2 preceding siblings ...)
  2023-03-08  8:33 ` [PATCH v3 3/3] mm/damon/paddr: fix missing folio_sz update in damon_pa_young() Kefeng Wang
@ 2023-03-08 18:17 ` SeongJae Park
  3 siblings, 0 replies; 5+ messages in thread
From: SeongJae Park @ 2023-03-08 18:17 UTC (permalink / raw)
  To: Kefeng Wang; +Cc: SeongJae Park, Andrew Morton, linux-mm, linux-kernel, damon

Hi Kefeng,

On Wed, 8 Mar 2023 16:33:08 +0800 Kefeng Wang <wangkefeng.wang@huawei.com> wrote:

> Unify folio_put() to make code more clear, and also fix minor issue in
> damon_pa_young().
> 
> v3: 
> - as SJ split the bugfix from v2, and it has merged[1], only do code
>   improvement
> - fix a missing folio_sz update in damon_pa_young()
> - add RB from SJ
> - rebase on next-20230308
> 
> [1] https://lkml.kernel.org/r/20230304193949.296391-1-sj@kernel.org
> 
> v2: 
> - use goto lable in damon_pa_pageout() and refact too more functions
> 
> Kefeng Wang (3):
>   mm/damon/paddr: minor refactor of damon_pa_pageout()
>   mm/damon/paddr: minor refactor of
>     damon_pa_mark_accessed_or_deactivate()
>   mm/damon/paddr: fix missing folio_sz update in damon_pa_young()
> 
>  mm/damon/paddr.c | 26 ++++++++++----------------
>  1 file changed, 10 insertions(+), 16 deletions(-)

For the series,

Reviewed-by: SeongJae Park <sj@kernel.org>

Thank you for your efforts on this, Kefeng!


Thanks,
SJ

> 
> -- 
> 2.35.3
> 

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-03-08 18:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-08  8:33 [PATCH v3 0/3] mm/damon/paddr: minor code improvement Kefeng Wang
2023-03-08  8:33 ` [PATCH v3 1/3] mm/damon/paddr: minor refactor of damon_pa_pageout() Kefeng Wang
2023-03-08  8:33 ` [PATCH v3 2/3] mm/damon/paddr: minor refactor of damon_pa_mark_accessed_or_deactivate() Kefeng Wang
2023-03-08  8:33 ` [PATCH v3 3/3] mm/damon/paddr: fix missing folio_sz update in damon_pa_young() Kefeng Wang
2023-03-08 18:17 ` [PATCH v3 0/3] mm/damon/paddr: minor code improvement SeongJae Park

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).