From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CC4A7C3DA49 for ; Thu, 25 Jul 2024 18:16:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5FB7E6B0085; Thu, 25 Jul 2024 14:16:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 584F86B0089; Thu, 25 Jul 2024 14:16:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 429146B008C; Thu, 25 Jul 2024 14:16:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 214D76B0085 for ; Thu, 25 Jul 2024 14:16:26 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id B1829C13CD for ; Thu, 25 Jul 2024 18:16:25 +0000 (UTC) X-FDA: 82379079930.24.4F8B76A Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by imf23.hostedemail.com (Postfix) with ESMTP id 3A1F514002B for ; Thu, 25 Jul 2024 18:16:21 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=E88RO2TW; spf=pass (imf23.hostedemail.com: domain of lkp@intel.com designates 192.198.163.16 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721931333; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=uuCxU7kFUwD2uct2YJhs57cIWK1y+A+0Y1KoRsNPc3U=; b=j6UobCcwPvZK3QK3O4IZUYmc0uckrUPe4ABYKtSr0/U7bU+2q4c7W7VDVR5jcF/cw+yntA WZ+PpXhMkbNfyiid9OGZlHxc2XdEN42pUQPRjJGXdqxyhpSMXStzGTZPffHNz1XX/RDqfG fMg4KuY+AOZ50J/zNiZ+p9/JPYpURqg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721931333; a=rsa-sha256; cv=none; b=ElS/WbrTLpzyqDmlsyKBNRh9+mkAFJ+7ExXCfE3ipIKaov6pRbJAGFIGJdiw4rlwVL4k9F 8LocESvn18Ghc8N/g9pKJ8n6x51O5KvDJxmm7qUF7OyOCK6pxmNlsv1/M8prlk3ZRSM1ou a6LQ20WgRtG+LUKWtDh92+NXvyOMc3c= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=E88RO2TW; spf=pass (imf23.hostedemail.com: domain of lkp@intel.com designates 192.198.163.16 as permitted sender) smtp.mailfrom=lkp@intel.com; dmarc=pass (policy=none) header.from=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1721931382; x=1753467382; h=date:from:to:cc:subject:message-id:references: mime-version:in-reply-to; bh=6jhxNOlrJsl8D5quO+IfMn76L5sqpLqYfZSQGj+KA2k=; b=E88RO2TWhPFdM8mDpAg3kQCFpdoxwuES8ZNbeSGFpUgIpWT7UlbjSHfO v1jmg7b5OVTHB3IQKbbFHfj+5q//vKOwjobQc2cwOlQswCKF3ZAdRhOle vCWtpTQlfdeaLoNDoKVd9tbXgTvFQq7SV9Jme+vB6s4agRN6CKVNiFb3L dwPwl4p34S6fO2KViL5qBKNjtl7K4i1dI9YMcmc1762sXQ4zZDZVpzYzU oQpVZBiHsmUDGtfhldPS52iaEMXNvz2WOtt8Or7AEyHwtj4aP0wcGi2fD fBBz6Z+qjoTwSvlawNvc3OZccdZ9hyucqH4ZL0h0mMkoLKv800AztkUjU w==; X-CSE-ConnectionGUID: +ewQ0Qz6St2EoIhqDYG8HA== X-CSE-MsgGUID: ePQ/RnO4SAG6eULlWRi+8A== X-IronPort-AV: E=McAfee;i="6700,10204,11144"; a="12715079" X-IronPort-AV: E=Sophos;i="6.09,236,1716274800"; d="scan'208";a="12715079" Received: from orviesa001.jf.intel.com ([10.64.159.141]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Jul 2024 11:16:20 -0700 X-CSE-ConnectionGUID: mxpGtCa4T42/9gL4rff6MA== X-CSE-MsgGUID: tUMrmPMrT3KdduO5P3+AKQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.09,236,1716274800"; d="scan'208";a="90480364" Received: from lkp-server01.sh.intel.com (HELO 68891e0c336b) ([10.239.97.150]) by orviesa001.jf.intel.com with ESMTP; 25 Jul 2024 11:16:18 -0700 Received: from kbuild by 68891e0c336b with local (Exim 4.96) (envelope-from ) id 1sX30i-000oLE-0R; Thu, 25 Jul 2024 18:16:16 +0000 Date: Fri, 26 Jul 2024 02:15:48 +0800 From: kernel test robot To: Kinsey Ho , Andrew Morton Cc: oe-kbuild-all@lists.linux.dev, Linux Memory Management List , linux-kernel@vger.kernel.org, Yosry Ahmed , Roman Gushchin , Kinsey Ho Subject: Re: [PATCH mm-unstable v1 4/4] mm: clean up mem_cgroup_iter() Message-ID: <202407260248.CBU1JMb1-lkp@intel.com> References: <20240724190214.1108049-5-kinseyho@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240724190214.1108049-5-kinseyho@google.com> X-Stat-Signature: m549wfbp9wrqxib4p8bgxf73q98ubube X-Rspamd-Queue-Id: 3A1F514002B X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1721931381-313295 X-HE-Meta: U2FsdGVkX19DbyrlCrj/8p4PqLoSMpMuh25bY21+EsJatC+woG4YCK+BOnlSGJ91qCGxIlQRsFOnY4HBkYiAFXAIjYC4WHW8YKYFAdJ9RQ8y3jQ6ph4nDoKUHJyTkZ9HezObMPwNzzKTKl4OX4rS5Ia3wg7F7Y3UYIzXyY2oA3ujbe+kfxo+a5ONXWzvFLX2uay5UUk9Z95z3xGzEs8ppZh80Iw6eHcI73Db3mbqk8cGtgWHqZOKdYnm12I0tjs18f3lRPa6QbGWypXHFtrtcuYWqZuuGwa/9H00Ct0WjqumYqcBmRr6mIjZyQxPARaEQnATPqzpJG6p90JK93phGWG50doPqHBm6mCu9b4h3XBadSvcC6J6dxyubBXZvIordyh65h9FVoXPiWTWZFBRxQSx2S4lo0TDWDShaRp2jRGDv3pu0w660y03VMjaTGKBVv6Z822IZepNe2U4FuIjXk8z94rnbAlE27YN9FqJ8zg8dQIJwh+AW/lD9nKEXnVnYnp1BV9aZkjnglcHoAwpgxMIzlPqifQohRrLSwy3+Sqk4Xa+KY9bB9LcRv5EStl02u/acO0EgGQVisLA4TyVBY/EmXNbQjAzB5kYQJSoBwTeu/GA/sSqrL2voX0Ssuu/PGixrDWKozCg5vWQrKTgmuhByOaBJWu0A2ZaOxbyMO7Pckr0m6VoHmYxaYjYv1VCBImrbvfkbCoZNDFcd0CO0teld+GveG7MEZpy1MK1vZdkgQ1YppWo/WE6HZk+xup19wyGNomO/10OlU+WjkhXpGXz9aIRwF0ZIcCMQfaFptxsQlXN5j5pxzMQkaBx0YdS9SnWJpa8d4KXookPRRgKrQuZ+X+hIuSUEdzL9qny8TucM+qOfqtlnyndi2Tx93h5wESItGxxSPe74mU/JVGPmFdLmHiwv4BR4Ok9xugw+gcwO73qoA/xC+zQTrtahtBEJJvyF6fiC9F6rOvOlFf eLkoylPT j8gSr1OPi+txmXMQibuy+CeHeGLYYEZFK1GI40Dn9e8x1aP1mtVy8bvINa20LEP8gRN5foRPX76/lEuNkTsqczsOslpWDsRW2MH48CqTjhFtGCSGpcAS+254bvtLONKX1/aa6bhgKwVP1kqFtxdS50WdSFWWlFs5N5RcPDQgZXUExEOfw5kjkXO2B0ghJr0s3fRDfYG/Ji0pCshcE2SRH1Qy25Yq0Ay5Z2gvaO5lavXNgT2VIqxZRmCP4R4bzN6nHeo4WgBWX6KEawnhjWx/3ptRQF2ZDXLFfvjSudN0ZmBk0b8ysgdLTH2CXPDmd+iQg6Fr4aTdZNWlnE4DOVGsY9yUoe2+GaFN9liGUzDXOKld6VtjpAtPkvMC2JY80DaNAMFLXm5V1tnQIB4lI664ZvYRnvs3jTLESx+TpDfp6HZkwymEFQ2vhlLALxNi4OHcj75IvV2vVdOWFdgCQfcQMCn8zyg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi Kinsey, kernel test robot noticed the following build warnings: [auto build test WARNING on akpm-mm/mm-everything] [also build test WARNING on linus/master v6.10 next-20240725] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Kinsey-Ho/mm-don-t-hold-css-refcnt-during-traversal/20240725-030750 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20240724190214.1108049-5-kinseyho%40google.com patch subject: [PATCH mm-unstable v1 4/4] mm: clean up mem_cgroup_iter() config: x86_64-randconfig-121-20240725 (https://download.01.org/0day-ci/archive/20240726/202407260248.CBU1JMb1-lkp@intel.com/config) compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240726/202407260248.CBU1JMb1-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot | Closes: https://lore.kernel.org/oe-kbuild-all/202407260248.CBU1JMb1-lkp@intel.com/ sparse warnings: (new ones prefixed by >>) mm/memcontrol.c:1049:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct mem_cgroup [noderef] __rcu *__old @@ got struct mem_cgroup *[assigned] pos @@ mm/memcontrol.c:1049:21: sparse: expected struct mem_cgroup [noderef] __rcu *__old mm/memcontrol.c:1049:21: sparse: got struct mem_cgroup *[assigned] pos >> mm/memcontrol.c:1049:21: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct mem_cgroup [noderef] __rcu *__new @@ got struct mem_cgroup *[assigned] next @@ mm/memcontrol.c:1049:21: sparse: expected struct mem_cgroup [noderef] __rcu *__new mm/memcontrol.c:1049:21: sparse: got struct mem_cgroup *[assigned] next mm/memcontrol.c:1049:57: sparse: sparse: incompatible types in comparison expression (different address spaces): mm/memcontrol.c:1049:57: sparse: struct mem_cgroup [noderef] __rcu * mm/memcontrol.c:1049:57: sparse: struct mem_cgroup * mm/memcontrol.c:1101:17: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected struct mem_cgroup [noderef] __rcu *__old @@ got struct mem_cgroup *dead_memcg @@ mm/memcontrol.c:1101:17: sparse: expected struct mem_cgroup [noderef] __rcu *__old mm/memcontrol.c:1101:17: sparse: got struct mem_cgroup *dead_memcg mm/memcontrol.c: note: in included file (through include/linux/cgroup-defs.h): include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true mm/memcontrol.c: note: in included file: include/linux/memcontrol.h:747:9: sparse: sparse: context imbalance in 'folio_lruvec_lock' - wrong count at exit include/linux/memcontrol.h:747:9: sparse: sparse: context imbalance in 'folio_lruvec_lock_irq' - wrong count at exit include/linux/memcontrol.h:747:9: sparse: sparse: context imbalance in 'folio_lruvec_lock_irqsave' - wrong count at exit mm/memcontrol.c: note: in included file (through include/linux/cgroup-defs.h): include/linux/list.h:83:21: sparse: sparse: self-comparison always evaluates to true vim +1049 mm/memcontrol.c 974 975 /** 976 * mem_cgroup_iter - iterate over memory cgroup hierarchy 977 * @root: hierarchy root 978 * @prev: previously returned memcg, NULL on first invocation 979 * @reclaim: cookie for shared reclaim walks, NULL for full walks 980 * 981 * Returns references to children of the hierarchy below @root, or 982 * @root itself, or %NULL after a full round-trip. 983 * 984 * Caller must pass the return value in @prev on subsequent 985 * invocations for reference counting, or use mem_cgroup_iter_break() 986 * to cancel a hierarchy walk before the round-trip is complete. 987 * 988 * Reclaimers can specify a node in @reclaim to divide up the memcgs 989 * in the hierarchy among all concurrent reclaimers operating on the 990 * same node. 991 */ 992 struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root, 993 struct mem_cgroup *prev, 994 struct mem_cgroup_reclaim_cookie *reclaim) 995 { 996 struct mem_cgroup_reclaim_iter *iter; 997 struct cgroup_subsys_state *css; 998 struct mem_cgroup *pos; 999 struct mem_cgroup *next = NULL; 1000 1001 if (mem_cgroup_disabled()) 1002 return NULL; 1003 1004 if (!root) 1005 root = root_mem_cgroup; 1006 1007 rcu_read_lock(); 1008 restart: 1009 if (reclaim) { 1010 int gen; 1011 int nid = reclaim->pgdat->node_id; 1012 1013 iter = &root->nodeinfo[nid]->iter; 1014 gen = atomic_read(&iter->generation); 1015 1016 /* 1017 * On start, join the current reclaim iteration cycle. 1018 * Exit when a concurrent walker completes it. 1019 */ 1020 if (!prev) 1021 reclaim->generation = gen; 1022 else if (reclaim->generation != gen) 1023 goto out_unlock; 1024 1025 pos = rcu_dereference(iter->position); 1026 } else 1027 pos = prev; 1028 1029 css = pos ? &pos->css : NULL; 1030 1031 while ((css = css_next_descendant_pre(css, &root->css))) { 1032 /* 1033 * Verify the css and acquire a reference. The root 1034 * is provided by the caller, so we know it's alive 1035 * and kicking, and don't take an extra reference. 1036 */ 1037 if (css == &root->css || css_tryget(css)) 1038 break; 1039 } 1040 1041 next = mem_cgroup_from_css(css); 1042 1043 if (reclaim) { 1044 /* 1045 * The position could have already been updated by a competing 1046 * thread, so check that the value hasn't changed since we read 1047 * it to avoid reclaiming from the same cgroup twice. 1048 */ > 1049 if (cmpxchg(&iter->position, pos, next) != pos) { 1050 if (css && css != &root->css) 1051 css_put(css); 1052 goto restart; 1053 } 1054 1055 if (!next) { 1056 atomic_inc(&iter->generation); 1057 1058 /* 1059 * Reclaimers share the hierarchy walk, and a 1060 * new one might jump in right at the end of 1061 * the hierarchy - make sure they see at least 1062 * one group and restart from the beginning. 1063 */ 1064 if (!prev) 1065 goto restart; 1066 } 1067 } 1068 1069 out_unlock: 1070 rcu_read_unlock(); 1071 if (prev && prev != root) 1072 css_put(&prev->css); 1073 1074 return next; 1075 } 1076 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki