mm/damon/core-test: test damon_split_region_at()'s access rate copying
authorSeongJae Park <sj@kernel.org>
Sun, 19 Nov 2023 17:15:29 +0000 (17:15 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 11 Dec 2023 00:51:50 +0000 (16:51 -0800)
damon_split_region_at() should set access rate related fields of the
resulting regions same.  It may forgotten, and actually there was the
mistake before.  Test it with the unit test case for the function.

Link: https://lkml.kernel.org/r/20231119171529.66863-2-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Brendan Higgins <brendanhiggins@google.com>
Cc: David Gow <davidgow@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/core-test.h

index 649adf9..e6a01ea 100644 (file)
@@ -122,18 +122,25 @@ static void damon_test_split_at(struct kunit *test)
 {
        struct damon_ctx *c = damon_new_ctx();
        struct damon_target *t;
-       struct damon_region *r;
+       struct damon_region *r, *r_new;
 
        t = damon_new_target();
        r = damon_new_region(0, 100);
+       r->nr_accesses_bp = 420000;
+       r->nr_accesses = 42;
+       r->last_nr_accesses = 15;
        damon_add_region(r, t);
        damon_split_region_at(t, r, 25);
        KUNIT_EXPECT_EQ(test, r->ar.start, 0ul);
        KUNIT_EXPECT_EQ(test, r->ar.end, 25ul);
 
-       r = damon_next_region(r);
-       KUNIT_EXPECT_EQ(test, r->ar.start, 25ul);
-       KUNIT_EXPECT_EQ(test, r->ar.end, 100ul);
+       r_new = damon_next_region(r);
+       KUNIT_EXPECT_EQ(test, r_new->ar.start, 25ul);
+       KUNIT_EXPECT_EQ(test, r_new->ar.end, 100ul);
+
+       KUNIT_EXPECT_EQ(test, r->nr_accesses_bp, r_new->nr_accesses_bp);
+       KUNIT_EXPECT_EQ(test, r->nr_accesses, r_new->nr_accesses);
+       KUNIT_EXPECT_EQ(test, r->last_nr_accesses, r_new->last_nr_accesses);
 
        damon_free_target(t);
        damon_destroy_ctx(c);