All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: xiakaixu1987@gmail.com, sj@kernel.org, akpm@linux-foundation.org
Cc: kbuild-all@lists.01.org, damon@lists.linux.dev,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	Kaixu Xia <kaixuxia@tencent.com>
Subject: Re: [PATCH] mm/damon/core: simplify the parameter passing for region split operation
Date: Fri, 12 Aug 2022 18:47:43 +0800	[thread overview]
Message-ID: <202208121823.8YTRPB1J-lkp@intel.com> (raw)
In-Reply-To: <1660290073-26347-1-git-send-email-kaixuxia@tencent.com>

Hi,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on akpm-mm/mm-everything]

url:    https://github.com/intel-lab-lkp/linux/commits/xiakaixu1987-gmail-com/mm-damon-core-simplify-the-parameter-passing-for-region-split-operation/20220812-154316
base:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
config: i386-allyesconfig (https://download.01.org/0day-ci/archive/20220812/202208121823.8YTRPB1J-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/26b7d93b0f64c71d6d324a4a37d85641b55eaec2
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review xiakaixu1987-gmail-com/mm-damon-core-simplify-the-parameter-passing-for-region-split-operation/20220812-154316
        git checkout 26b7d93b0f64c71d6d324a4a37d85641b55eaec2
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash mm/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   In file included from mm/damon/core.c:1218:
   mm/damon/core-test.h: In function 'damon_test_split_at':
   mm/damon/core-test.h:129:31: error: passing argument 1 of 'damon_split_region_at' from incompatible pointer type [-Werror=incompatible-pointer-types]
     129 |         damon_split_region_at(c, t, r, 25);
         |                               ^
         |                               |
         |                               struct damon_ctx *
   mm/damon/core.c:930:56: note: expected 'struct damon_target *' but argument is of type 'struct damon_ctx *'
     930 | static void damon_split_region_at(struct damon_target *t,
         |                                   ~~~~~~~~~~~~~~~~~~~~~^
   In file included from mm/damon/core.c:1218:
   mm/damon/core-test.h:129:34: error: passing argument 2 of 'damon_split_region_at' from incompatible pointer type [-Werror=incompatible-pointer-types]
     129 |         damon_split_region_at(c, t, r, 25);
         |                                  ^
         |                                  |
         |                                  struct damon_target *
   mm/damon/core.c:931:56: note: expected 'struct damon_region *' but argument is of type 'struct damon_target *'
     931 |                                   struct damon_region *r, unsigned long sz_r)
         |                                   ~~~~~~~~~~~~~~~~~~~~~^
   In file included from mm/damon/core.c:1218:
>> mm/damon/core-test.h:129:37: warning: passing argument 3 of 'damon_split_region_at' makes integer from pointer without a cast [-Wint-conversion]
     129 |         damon_split_region_at(c, t, r, 25);
         |                                     ^
         |                                     |
         |                                     struct damon_region *
   mm/damon/core.c:931:73: note: expected 'long unsigned int' but argument is of type 'struct damon_region *'
     931 |                                   struct damon_region *r, unsigned long sz_r)
         |                                                           ~~~~~~~~~~~~~~^~~~
   In file included from mm/damon/core.c:1218:
   mm/damon/core-test.h:129:9: error: too many arguments to function 'damon_split_region_at'
     129 |         damon_split_region_at(c, t, r, 25);
         |         ^~~~~~~~~~~~~~~~~~~~~
   mm/damon/core.c:930:13: note: declared here
     930 | static void damon_split_region_at(struct damon_target *t,
         |             ^~~~~~~~~~~~~~~~~~~~~
   In file included from mm/damon/core.c:1218:
   mm/damon/core-test.h: In function 'damon_test_split_regions_of':
   mm/damon/core-test.h:222:32: error: passing argument 1 of 'damon_split_regions_of' from incompatible pointer type [-Werror=incompatible-pointer-types]
     222 |         damon_split_regions_of(c, t, 2);
         |                                ^
         |                                |
         |                                struct damon_ctx *
   mm/damon/core.c:948:57: note: expected 'struct damon_target *' but argument is of type 'struct damon_ctx *'
     948 | static void damon_split_regions_of(struct damon_target *t, int nr_subs)
         |                                    ~~~~~~~~~~~~~~~~~~~~~^
   In file included from mm/damon/core.c:1218:
>> mm/damon/core-test.h:222:35: warning: passing argument 2 of 'damon_split_regions_of' makes integer from pointer without a cast [-Wint-conversion]
     222 |         damon_split_regions_of(c, t, 2);
         |                                   ^
         |                                   |
         |                                   struct damon_target *
   mm/damon/core.c:948:64: note: expected 'int' but argument is of type 'struct damon_target *'
     948 | static void damon_split_regions_of(struct damon_target *t, int nr_subs)
         |                                                            ~~~~^~~~~~~
   In file included from mm/damon/core.c:1218:
   mm/damon/core-test.h:222:9: error: too many arguments to function 'damon_split_regions_of'
     222 |         damon_split_regions_of(c, t, 2);
         |         ^~~~~~~~~~~~~~~~~~~~~~
   mm/damon/core.c:948:13: note: declared here
     948 | static void damon_split_regions_of(struct damon_target *t, int nr_subs)
         |             ^~~~~~~~~~~~~~~~~~~~~~
   In file included from mm/damon/core.c:1218:
   mm/damon/core-test.h:229:32: error: passing argument 1 of 'damon_split_regions_of' from incompatible pointer type [-Werror=incompatible-pointer-types]
     229 |         damon_split_regions_of(c, t, 4);
         |                                ^
         |                                |
         |                                struct damon_ctx *
   mm/damon/core.c:948:57: note: expected 'struct damon_target *' but argument is of type 'struct damon_ctx *'
     948 | static void damon_split_regions_of(struct damon_target *t, int nr_subs)
         |                                    ~~~~~~~~~~~~~~~~~~~~~^
   In file included from mm/damon/core.c:1218:
   mm/damon/core-test.h:229:35: warning: passing argument 2 of 'damon_split_regions_of' makes integer from pointer without a cast [-Wint-conversion]
     229 |         damon_split_regions_of(c, t, 4);
         |                                   ^
         |                                   |
         |                                   struct damon_target *
   mm/damon/core.c:948:64: note: expected 'int' but argument is of type 'struct damon_target *'
     948 | static void damon_split_regions_of(struct damon_target *t, int nr_subs)
         |                                                            ~~~~^~~~~~~
   In file included from mm/damon/core.c:1218:
   mm/damon/core-test.h:229:9: error: too many arguments to function 'damon_split_regions_of'
     229 |         damon_split_regions_of(c, t, 4);
         |         ^~~~~~~~~~~~~~~~~~~~~~
   mm/damon/core.c:948:13: note: declared here
     948 | static void damon_split_regions_of(struct damon_target *t, int nr_subs)
         |             ^~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/damon_split_region_at +129 mm/damon/core-test.h

17ccae8bb5c9289 SeongJae Park 2021-09-07  119  
17ccae8bb5c9289 SeongJae Park 2021-09-07  120  static void damon_test_split_at(struct kunit *test)
17ccae8bb5c9289 SeongJae Park 2021-09-07  121  {
17ccae8bb5c9289 SeongJae Park 2021-09-07  122  	struct damon_ctx *c = damon_new_ctx();
17ccae8bb5c9289 SeongJae Park 2021-09-07  123  	struct damon_target *t;
17ccae8bb5c9289 SeongJae Park 2021-09-07  124  	struct damon_region *r;
17ccae8bb5c9289 SeongJae Park 2021-09-07  125  
1971bd630452e94 SeongJae Park 2022-03-22  126  	t = damon_new_target();
17ccae8bb5c9289 SeongJae Park 2021-09-07  127  	r = damon_new_region(0, 100);
17ccae8bb5c9289 SeongJae Park 2021-09-07  128  	damon_add_region(r, t);
17ccae8bb5c9289 SeongJae Park 2021-09-07 @129  	damon_split_region_at(c, t, r, 25);
17ccae8bb5c9289 SeongJae Park 2021-09-07  130  	KUNIT_EXPECT_EQ(test, r->ar.start, 0ul);
17ccae8bb5c9289 SeongJae Park 2021-09-07  131  	KUNIT_EXPECT_EQ(test, r->ar.end, 25ul);
17ccae8bb5c9289 SeongJae Park 2021-09-07  132  
17ccae8bb5c9289 SeongJae Park 2021-09-07  133  	r = damon_next_region(r);
17ccae8bb5c9289 SeongJae Park 2021-09-07  134  	KUNIT_EXPECT_EQ(test, r->ar.start, 25ul);
17ccae8bb5c9289 SeongJae Park 2021-09-07  135  	KUNIT_EXPECT_EQ(test, r->ar.end, 100ul);
17ccae8bb5c9289 SeongJae Park 2021-09-07  136  
17ccae8bb5c9289 SeongJae Park 2021-09-07  137  	damon_free_target(t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  138  	damon_destroy_ctx(c);
17ccae8bb5c9289 SeongJae Park 2021-09-07  139  }
17ccae8bb5c9289 SeongJae Park 2021-09-07  140  
17ccae8bb5c9289 SeongJae Park 2021-09-07  141  static void damon_test_merge_two(struct kunit *test)
17ccae8bb5c9289 SeongJae Park 2021-09-07  142  {
17ccae8bb5c9289 SeongJae Park 2021-09-07  143  	struct damon_target *t;
17ccae8bb5c9289 SeongJae Park 2021-09-07  144  	struct damon_region *r, *r2, *r3;
17ccae8bb5c9289 SeongJae Park 2021-09-07  145  	int i;
17ccae8bb5c9289 SeongJae Park 2021-09-07  146  
1971bd630452e94 SeongJae Park 2022-03-22  147  	t = damon_new_target();
17ccae8bb5c9289 SeongJae Park 2021-09-07  148  	r = damon_new_region(0, 100);
17ccae8bb5c9289 SeongJae Park 2021-09-07  149  	r->nr_accesses = 10;
17ccae8bb5c9289 SeongJae Park 2021-09-07  150  	damon_add_region(r, t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  151  	r2 = damon_new_region(100, 300);
17ccae8bb5c9289 SeongJae Park 2021-09-07  152  	r2->nr_accesses = 20;
17ccae8bb5c9289 SeongJae Park 2021-09-07  153  	damon_add_region(r2, t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  154  
17ccae8bb5c9289 SeongJae Park 2021-09-07  155  	damon_merge_two_regions(t, r, r2);
17ccae8bb5c9289 SeongJae Park 2021-09-07  156  	KUNIT_EXPECT_EQ(test, r->ar.start, 0ul);
17ccae8bb5c9289 SeongJae Park 2021-09-07  157  	KUNIT_EXPECT_EQ(test, r->ar.end, 300ul);
17ccae8bb5c9289 SeongJae Park 2021-09-07  158  	KUNIT_EXPECT_EQ(test, r->nr_accesses, 16u);
17ccae8bb5c9289 SeongJae Park 2021-09-07  159  
17ccae8bb5c9289 SeongJae Park 2021-09-07  160  	i = 0;
17ccae8bb5c9289 SeongJae Park 2021-09-07  161  	damon_for_each_region(r3, t) {
17ccae8bb5c9289 SeongJae Park 2021-09-07  162  		KUNIT_EXPECT_PTR_EQ(test, r, r3);
17ccae8bb5c9289 SeongJae Park 2021-09-07  163  		i++;
17ccae8bb5c9289 SeongJae Park 2021-09-07  164  	}
17ccae8bb5c9289 SeongJae Park 2021-09-07  165  	KUNIT_EXPECT_EQ(test, i, 1);
17ccae8bb5c9289 SeongJae Park 2021-09-07  166  
17ccae8bb5c9289 SeongJae Park 2021-09-07  167  	damon_free_target(t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  168  }
17ccae8bb5c9289 SeongJae Park 2021-09-07  169  
17ccae8bb5c9289 SeongJae Park 2021-09-07  170  static struct damon_region *__nth_region_of(struct damon_target *t, int idx)
17ccae8bb5c9289 SeongJae Park 2021-09-07  171  {
17ccae8bb5c9289 SeongJae Park 2021-09-07  172  	struct damon_region *r;
17ccae8bb5c9289 SeongJae Park 2021-09-07  173  	unsigned int i = 0;
17ccae8bb5c9289 SeongJae Park 2021-09-07  174  
17ccae8bb5c9289 SeongJae Park 2021-09-07  175  	damon_for_each_region(r, t) {
17ccae8bb5c9289 SeongJae Park 2021-09-07  176  		if (i++ == idx)
17ccae8bb5c9289 SeongJae Park 2021-09-07  177  			return r;
17ccae8bb5c9289 SeongJae Park 2021-09-07  178  	}
17ccae8bb5c9289 SeongJae Park 2021-09-07  179  
17ccae8bb5c9289 SeongJae Park 2021-09-07  180  	return NULL;
17ccae8bb5c9289 SeongJae Park 2021-09-07  181  }
17ccae8bb5c9289 SeongJae Park 2021-09-07  182  
17ccae8bb5c9289 SeongJae Park 2021-09-07  183  static void damon_test_merge_regions_of(struct kunit *test)
17ccae8bb5c9289 SeongJae Park 2021-09-07  184  {
17ccae8bb5c9289 SeongJae Park 2021-09-07  185  	struct damon_target *t;
17ccae8bb5c9289 SeongJae Park 2021-09-07  186  	struct damon_region *r;
17ccae8bb5c9289 SeongJae Park 2021-09-07  187  	unsigned long sa[] = {0, 100, 114, 122, 130, 156, 170, 184};
17ccae8bb5c9289 SeongJae Park 2021-09-07  188  	unsigned long ea[] = {100, 112, 122, 130, 156, 170, 184, 230};
17ccae8bb5c9289 SeongJae Park 2021-09-07  189  	unsigned int nrs[] = {0, 0, 10, 10, 20, 30, 1, 2};
17ccae8bb5c9289 SeongJae Park 2021-09-07  190  
17ccae8bb5c9289 SeongJae Park 2021-09-07  191  	unsigned long saddrs[] = {0, 114, 130, 156, 170};
17ccae8bb5c9289 SeongJae Park 2021-09-07  192  	unsigned long eaddrs[] = {112, 130, 156, 170, 230};
17ccae8bb5c9289 SeongJae Park 2021-09-07  193  	int i;
17ccae8bb5c9289 SeongJae Park 2021-09-07  194  
1971bd630452e94 SeongJae Park 2022-03-22  195  	t = damon_new_target();
17ccae8bb5c9289 SeongJae Park 2021-09-07  196  	for (i = 0; i < ARRAY_SIZE(sa); i++) {
17ccae8bb5c9289 SeongJae Park 2021-09-07  197  		r = damon_new_region(sa[i], ea[i]);
17ccae8bb5c9289 SeongJae Park 2021-09-07  198  		r->nr_accesses = nrs[i];
17ccae8bb5c9289 SeongJae Park 2021-09-07  199  		damon_add_region(r, t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  200  	}
17ccae8bb5c9289 SeongJae Park 2021-09-07  201  
17ccae8bb5c9289 SeongJae Park 2021-09-07  202  	damon_merge_regions_of(t, 9, 9999);
17ccae8bb5c9289 SeongJae Park 2021-09-07  203  	/* 0-112, 114-130, 130-156, 156-170 */
17ccae8bb5c9289 SeongJae Park 2021-09-07  204  	KUNIT_EXPECT_EQ(test, damon_nr_regions(t), 5u);
17ccae8bb5c9289 SeongJae Park 2021-09-07  205  	for (i = 0; i < 5; i++) {
17ccae8bb5c9289 SeongJae Park 2021-09-07  206  		r = __nth_region_of(t, i);
17ccae8bb5c9289 SeongJae Park 2021-09-07  207  		KUNIT_EXPECT_EQ(test, r->ar.start, saddrs[i]);
17ccae8bb5c9289 SeongJae Park 2021-09-07  208  		KUNIT_EXPECT_EQ(test, r->ar.end, eaddrs[i]);
17ccae8bb5c9289 SeongJae Park 2021-09-07  209  	}
17ccae8bb5c9289 SeongJae Park 2021-09-07  210  	damon_free_target(t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  211  }
17ccae8bb5c9289 SeongJae Park 2021-09-07  212  
17ccae8bb5c9289 SeongJae Park 2021-09-07  213  static void damon_test_split_regions_of(struct kunit *test)
17ccae8bb5c9289 SeongJae Park 2021-09-07  214  {
17ccae8bb5c9289 SeongJae Park 2021-09-07  215  	struct damon_ctx *c = damon_new_ctx();
17ccae8bb5c9289 SeongJae Park 2021-09-07  216  	struct damon_target *t;
17ccae8bb5c9289 SeongJae Park 2021-09-07  217  	struct damon_region *r;
17ccae8bb5c9289 SeongJae Park 2021-09-07  218  
1971bd630452e94 SeongJae Park 2022-03-22  219  	t = damon_new_target();
17ccae8bb5c9289 SeongJae Park 2021-09-07  220  	r = damon_new_region(0, 22);
17ccae8bb5c9289 SeongJae Park 2021-09-07  221  	damon_add_region(r, t);
17ccae8bb5c9289 SeongJae Park 2021-09-07 @222  	damon_split_regions_of(c, t, 2);
2e014660b3e4b7b SeongJae Park 2021-10-28  223  	KUNIT_EXPECT_LE(test, damon_nr_regions(t), 2u);
17ccae8bb5c9289 SeongJae Park 2021-09-07  224  	damon_free_target(t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  225  
1971bd630452e94 SeongJae Park 2022-03-22  226  	t = damon_new_target();
17ccae8bb5c9289 SeongJae Park 2021-09-07  227  	r = damon_new_region(0, 220);
17ccae8bb5c9289 SeongJae Park 2021-09-07  228  	damon_add_region(r, t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  229  	damon_split_regions_of(c, t, 4);
2e014660b3e4b7b SeongJae Park 2021-10-28  230  	KUNIT_EXPECT_LE(test, damon_nr_regions(t), 4u);
17ccae8bb5c9289 SeongJae Park 2021-09-07  231  	damon_free_target(t);
17ccae8bb5c9289 SeongJae Park 2021-09-07  232  	damon_destroy_ctx(c);
17ccae8bb5c9289 SeongJae Park 2021-09-07  233  }
17ccae8bb5c9289 SeongJae Park 2021-09-07  234  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

  reply	other threads:[~2022-08-12 10:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-12  7:41 [PATCH] mm/damon/core: simplify the parameter passing for region split operation xiakaixu1987
2022-08-12 10:47 ` kernel test robot [this message]
2022-08-12 12:50 ` kernel test robot
2022-08-12 15:48 ` SeongJae Park
2022-08-13 14:33   ` Kaixu Xia
2022-08-12 19:30 ` kernel test robot

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=202208121823.8YTRPB1J-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=akpm@linux-foundation.org \
    --cc=damon@lists.linux.dev \
    --cc=kaixuxia@tencent.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=sj@kernel.org \
    --cc=xiakaixu1987@gmail.com \
    /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.