Re: [PATCH v7 08/12] mm/demotion: Add pg_data_t member to track node memory tier details

From: kernel test robot
Date: Wed Jun 22 2022 - 18:54:29 EST


Hi "Aneesh,

I love your patch! Perhaps something to improve:

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

url: https://github.com/intel-lab-lkp/linux/commits/Aneesh-Kumar-K-V/mm-demotion-Memory-tiers-and-demotion/20220622-163031
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20220623/202206230603.yUtYS0xk-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.4-31-g4880bd19-dirty
# https://github.com/intel-lab-lkp/linux/commit/97a1874c652abe1500768e5cab39b2d3dcdfb046
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Aneesh-Kumar-K-V/mm-demotion-Memory-tiers-and-demotion/20220622-163031
git checkout 97a1874c652abe1500768e5cab39b2d3dcdfb046
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash

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


sparse warnings: (new ones prefixed by >>)
>> mm/memory-tiers.c:182:16: sparse: sparse: incompatible types in comparison expression (different address spaces):
>> mm/memory-tiers.c:182:16: sparse: struct memory_tier [noderef] __rcu *
>> mm/memory-tiers.c:182:16: sparse: struct memory_tier *
mm/memory-tiers.c:214:27: sparse: sparse: incompatible types in comparison expression (different address spaces):
mm/memory-tiers.c:214:27: sparse: struct memory_tier [noderef] __rcu *
mm/memory-tiers.c:214:27: sparse: struct memory_tier *
mm/memory-tiers.c:216:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
mm/memory-tiers.c:216:9: sparse: struct memory_tier [noderef] __rcu *
mm/memory-tiers.c:216:9: sparse: struct memory_tier *
mm/memory-tiers.c:221:9: sparse: sparse: incompatible types in comparison expression (different address spaces):
mm/memory-tiers.c:221:9: sparse: struct memory_tier [noderef] __rcu *
mm/memory-tiers.c:221:9: sparse: struct memory_tier *
mm/memory-tiers.c:361:19: sparse: sparse: incompatible types in comparison expression (different address spaces):
mm/memory-tiers.c:361:19: sparse: struct memory_tier [noderef] __rcu *
mm/memory-tiers.c:361:19: sparse: struct memory_tier *
mm/memory-tiers.c:614:17: sparse: sparse: incompatible types in comparison expression (different address spaces):
mm/memory-tiers.c:614:17: sparse: struct memory_tier [noderef] __rcu *
mm/memory-tiers.c:614:17: sparse: struct memory_tier *

vim +182 mm/memory-tiers.c

169
170 static struct memory_tier *__node_get_memory_tier(int node)
171 {
172 pg_data_t *pgdat;
173
174 pgdat = NODE_DATA(node);
175 if (!pgdat)
176 return NULL;
177 /*
178 * Since we hold memory_tier_lock, we can avoid
179 * RCU read locks when accessing the details. No
180 * parallel updates are possible here.
181 */
> 182 return rcu_dereference_check(pgdat->memtier,
183 lockdep_is_held(&memory_tier_lock));
184 }
185

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