CC: kbuild-all(a)lists.01.org In-Reply-To: <20210715033704.692967-49-willy@infradead.org> References: <20210715033704.692967-49-willy@infradead.org> TO: "Matthew Wilcox (Oracle)" TO: linux-kernel(a)vger.kernel.org CC: "Matthew Wilcox (Oracle)" CC: linux-mm(a)kvack.org CC: linux-fsdevel(a)vger.kernel.org CC: Christoph Hellwig Hi "Matthew, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.14-rc1] [cannot apply to hnaz-linux-mm/master xfs-linux/for-next tip/perf/core next-20210716] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Matthew-Wilcox-Oracle/Memory-folios/20210715-133101 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 8096acd7442e613fad0354fc8dfdb2003cceea0b :::::: branch date: 3 days ago :::::: commit date: 3 days ago config: x86_64-randconfig-s021-20210715 (attached as .config) compiler: gcc-10 (Ubuntu 10.3.0-1ubuntu1~20.04) 10.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-341-g8af24329-dirty # https://github.com/0day-ci/linux/commit/a471aa5a11a078516707619cf73f7a0770124e86 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Matthew-Wilcox-Oracle/Memory-folios/20210715-133101 git checkout a471aa5a11a078516707619cf73f7a0770124e86 # save the attached .config to linux build tree 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 as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) mm/memcontrol.c:4122:21: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4122:21: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4122:21: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4124:21: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4124:21: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4124:21: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4280:9: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4280:9: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4280:9: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:4374:9: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:4374:9: sparse: struct mem_cgroup_threshold_ary [noderef] __rcu * mm/memcontrol.c:4374:9: sparse: struct mem_cgroup_threshold_ary * mm/memcontrol.c:5970:23: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:5970:23: sparse: struct task_struct [noderef] __rcu * mm/memcontrol.c:5970:23: sparse: struct task_struct * mm/memcontrol.c: note: in included file: >> include/linux/memcontrol.h:750:9: sparse: sparse: context imbalance in 'folio_lruvec_lock' - wrong count at exit >> include/linux/memcontrol.h:750:9: sparse: sparse: context imbalance in 'folio_lruvec_lock_irq' - wrong count at exit >> include/linux/memcontrol.h:750:9: sparse: sparse: context imbalance in 'folio_lruvec_lock_irqsave' - wrong count at exit mm/memcontrol.c:1972:6: sparse: sparse: context imbalance in 'folio_memcg_lock' - wrong count at exit mm/memcontrol.c:2026:17: sparse: sparse: context imbalance in '__folio_memcg_unlock' - unexpected unlock vim +/folio_lruvec_lock +750 include/linux/memcontrol.h 569b846df54ffb KAMEZAWA Hiroyuki 2009-12-15 716 55779ec759ccc3 Johannes Weiner 2016-07-28 717 /** 867e5e1de14b2b Johannes Weiner 2019-11-30 718 * mem_cgroup_lruvec - get the lru list vector for a memcg & node 55779ec759ccc3 Johannes Weiner 2016-07-28 719 * @memcg: memcg of the wanted lruvec 9a1ac2288cf16f Hui Su 2020-12-18 720 * @pgdat: pglist_data 55779ec759ccc3 Johannes Weiner 2016-07-28 721 * 867e5e1de14b2b Johannes Weiner 2019-11-30 722 * Returns the lru list vector holding pages for a given @memcg & 9a1ac2288cf16f Hui Su 2020-12-18 723 * @pgdat combination. This can be the node lruvec, if the memory 867e5e1de14b2b Johannes Weiner 2019-11-30 724 * controller is disabled. 55779ec759ccc3 Johannes Weiner 2016-07-28 725 */ 867e5e1de14b2b Johannes Weiner 2019-11-30 726 static inline struct lruvec *mem_cgroup_lruvec(struct mem_cgroup *memcg, 867e5e1de14b2b Johannes Weiner 2019-11-30 727 struct pglist_data *pgdat) 55779ec759ccc3 Johannes Weiner 2016-07-28 728 { ef8f2327996b5c Mel Gorman 2016-07-28 729 struct mem_cgroup_per_node *mz; 55779ec759ccc3 Johannes Weiner 2016-07-28 730 struct lruvec *lruvec; 55779ec759ccc3 Johannes Weiner 2016-07-28 731 55779ec759ccc3 Johannes Weiner 2016-07-28 732 if (mem_cgroup_disabled()) { 867e5e1de14b2b Johannes Weiner 2019-11-30 733 lruvec = &pgdat->__lruvec; 55779ec759ccc3 Johannes Weiner 2016-07-28 734 goto out; 55779ec759ccc3 Johannes Weiner 2016-07-28 735 } 55779ec759ccc3 Johannes Weiner 2016-07-28 736 1b05117df78e03 Johannes Weiner 2019-11-30 737 if (!memcg) 1b05117df78e03 Johannes Weiner 2019-11-30 738 memcg = root_mem_cgroup; 1b05117df78e03 Johannes Weiner 2019-11-30 739 a3747b53b1771a Johannes Weiner 2021-04-29 740 mz = memcg->nodeinfo[pgdat->node_id]; 55779ec759ccc3 Johannes Weiner 2016-07-28 741 lruvec = &mz->lruvec; 55779ec759ccc3 Johannes Weiner 2016-07-28 742 out: 55779ec759ccc3 Johannes Weiner 2016-07-28 743 /* 55779ec759ccc3 Johannes Weiner 2016-07-28 744 * Since a node can be onlined after the mem_cgroup was created, 599d0c954f91d0 Mel Gorman 2016-07-28 745 * we have to be prepared to initialize lruvec->pgdat here; 55779ec759ccc3 Johannes Weiner 2016-07-28 746 * and if offlined then reonlined, we need to reinitialize it. 55779ec759ccc3 Johannes Weiner 2016-07-28 747 */ ef8f2327996b5c Mel Gorman 2016-07-28 748 if (unlikely(lruvec->pgdat != pgdat)) ef8f2327996b5c Mel Gorman 2016-07-28 749 lruvec->pgdat = pgdat; 55779ec759ccc3 Johannes Weiner 2016-07-28 @750 return lruvec; 55779ec759ccc3 Johannes Weiner 2016-07-28 751 } 55779ec759ccc3 Johannes Weiner 2016-07-28 752 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org