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 3BB5CECAAD5 for ; Wed, 7 Sep 2022 02:24:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C6E846B0072; Tue, 6 Sep 2022 22:24:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BF9B58D0002; Tue, 6 Sep 2022 22:24:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A70A86B0074; Tue, 6 Sep 2022 22:24:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 91EC36B0072 for ; Tue, 6 Sep 2022 22:24:06 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 678C840CDD for ; Wed, 7 Sep 2022 02:24:06 +0000 (UTC) X-FDA: 79883694492.02.3173AC9 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by imf23.hostedemail.com (Postfix) with ESMTP id 81C74140086 for ; Wed, 7 Sep 2022 02:24:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662517445; x=1694053445; h=date:from:to:cc:subject:message-id:mime-version; bh=DnagbFsyhSADr0RlQ8k8DZ5Dt5O4n9Ra3P/WVPI656A=; b=JAlR/W5U7Huf/d/QKI9h/iNg3j8RDQ+zbFF8Toy7ix9OwUg1ghrvV0uN d83Sl0fQsXOnVP02Z0W36QciaK2FCjunJzeOBAhdwTvTFeE/3N8TTIwHb WaWr2LOhsrtfWZMaJMtIgQAk17DLbD4G6YwVhRovvMQChYmuqKuPGiels XfgZUip8FcqY56H9namxtKpfH7Vtq37MebWP0XwPItxPxi3K25R+aDYtq 0rKcTzPVEWmTufhA0S4977jXzwXtgNRHRJS4w8kqt5rdfT2awI/mDo8CG cU3tFA5umEtUPcqdMyucHieO5pU6l6KgmWZkZasV36MF1SdHpvLhvqUiz g==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="283757493" X-IronPort-AV: E=Sophos;i="5.93,295,1654585200"; d="scan'208";a="283757493" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 19:24:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,295,1654585200"; d="scan'208";a="591504796" Received: from lkp-server02.sh.intel.com (HELO 95dfd251caa2) ([10.239.97.151]) by orsmga006.jf.intel.com with ESMTP; 06 Sep 2022 19:23:58 -0700 Received: from kbuild by 95dfd251caa2 with local (Exim 4.96) (envelope-from ) id 1oVkjN-0005yr-35; Wed, 07 Sep 2022 02:23:57 +0000 Date: Wed, 7 Sep 2022 10:23:36 +0800 From: kernel test robot To: Alexei Starovoitov Cc: kbuild-all@lists.01.org, Linux Memory Management List , Daniel Borkmann Subject: [linux-next:master 4808/5667] kernel/bpf/memalloc.c:139:48: sparse: sparse: incorrect type in initializer (different address spaces) Message-ID: <202209071020.4F92QeGY-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1662517446; a=rsa-sha256; cv=none; b=1g8qFnWTeLfT6oEb8n3Fd7/Bev/AvpfUy1W9Gx0JRmP6HVuYGJIJLopGrGsAQi9iftVq3Y ISZHfm9MuzgnpKSGv6eiVnaPIvHO4pj6ovY4qnJKRCW4QpVQCefryYq9frJ4KkL04P1vyA WGXU8wxzGu3vHLByDn/zkkypb8Cy0KA= ARC-Authentication-Results: i=1; imf23.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b="JAlR/W5U"; spf=softfail (imf23.hostedemail.com: 134.134.136.20 is neither permitted nor denied by domain of lkp@intel.com) smtp.mailfrom=lkp@intel.com; dmarc=fail reason="No valid SPF" header.from=intel.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1662517446; 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: references:dkim-signature; bh=R2AKXL87exUzUo2U/Hg7cwCTL82O9bWVsc6NljWqSLo=; b=DRKFcR1O6mGM5jXGQk7WJsZpQi/W3oNyPAq5uRWKjE7qeBq3SN1u4S596Q3tPwMHIgt4jS fXgzis/etgtCqF+4DlJg+rbDZech6R0bZHEgZK1fwp5puhiIQgfqUL5uMg1BrD6wCbGDdE V99oCKIfNwM4c8yVY8cleipExlantnE= X-Rspamd-Queue-Id: 81C74140086 X-Rspam-User: Authentication-Results: imf23.hostedemail.com; dkim=none ("invalid DKIM record") header.d=intel.com header.s=Intel header.b="JAlR/W5U"; spf=softfail (imf23.hostedemail.com: 134.134.136.20 is neither permitted nor denied by domain of lkp@intel.com) smtp.mailfrom=lkp@intel.com; dmarc=fail reason="No valid SPF" header.from=intel.com (policy=none) X-Rspamd-Server: rspam01 X-Stat-Signature: j433g7i8p6sq9khdhuptoeny5i453sts X-HE-Tag: 1662517445-774324 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: tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 840126e36e8ff272cb63158646433fa1324533d9 commit: 4ab67149f3c6e97c5c506a726f0ebdec38241679 [4808/5667] bpf: Add percpu allocation support to bpf_mem_alloc. config: csky-randconfig-s031-20220906 (https://download.01.org/0day-ci/archive/20220907/202209071020.4F92QeGY-lkp@intel.com/config) compiler: csky-linux-gcc (GCC) 12.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=4ab67149f3c6e97c5c506a726f0ebdec38241679 git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 4ab67149f3c6e97c5c506a726f0ebdec38241679 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=csky SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) >> kernel/bpf/memalloc.c:139:48: sparse: sparse: incorrect type in initializer (different address spaces) @@ expected void *pptr @@ got void [noderef] __percpu * @@ kernel/bpf/memalloc.c:139:48: sparse: expected void *pptr kernel/bpf/memalloc.c:139:48: sparse: got void [noderef] __percpu * >> kernel/bpf/memalloc.c:142:37: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __percpu *__pdata @@ got void *pptr @@ kernel/bpf/memalloc.c:142:37: sparse: expected void [noderef] __percpu *__pdata kernel/bpf/memalloc.c:142:37: sparse: got void *pptr >> kernel/bpf/memalloc.c:211:43: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void [noderef] __percpu *__pdata @@ got void * @@ kernel/bpf/memalloc.c:211:43: sparse: expected void [noderef] __percpu *__pdata kernel/bpf/memalloc.c:211:43: sparse: got void * vim +139 kernel/bpf/memalloc.c 127 128 static void *__alloc(struct bpf_mem_cache *c, int node) 129 { 130 /* Allocate, but don't deplete atomic reserves that typical 131 * GFP_ATOMIC would do. irq_work runs on this cpu and kmalloc 132 * will allocate from the current numa node which is what we 133 * want here. 134 */ 135 gfp_t flags = GFP_NOWAIT | __GFP_NOWARN | __GFP_ACCOUNT; 136 137 if (c->percpu) { 138 void **obj = kmem_cache_alloc_node(c->kmem_cache, flags, node); > 139 void *pptr = __alloc_percpu_gfp(c->unit_size, 8, flags); 140 141 if (!obj || !pptr) { > 142 free_percpu(pptr); 143 kfree(obj); 144 return NULL; 145 } 146 obj[1] = pptr; 147 return obj; 148 } 149 150 if (c->kmem_cache) 151 return kmem_cache_alloc_node(c->kmem_cache, flags, node); 152 153 return kmalloc_node(c->unit_size, flags, node); 154 } 155 156 static struct mem_cgroup *get_memcg(const struct bpf_mem_cache *c) 157 { 158 #ifdef CONFIG_MEMCG_KMEM 159 if (c->objcg) 160 return get_mem_cgroup_from_objcg(c->objcg); 161 #endif 162 163 #ifdef CONFIG_MEMCG 164 return root_mem_cgroup; 165 #else 166 return NULL; 167 #endif 168 } 169 170 /* Mostly runs from irq_work except __init phase. */ 171 static void alloc_bulk(struct bpf_mem_cache *c, int cnt, int node) 172 { 173 struct mem_cgroup *memcg = NULL, *old_memcg; 174 unsigned long flags; 175 void *obj; 176 int i; 177 178 memcg = get_memcg(c); 179 old_memcg = set_active_memcg(memcg); 180 for (i = 0; i < cnt; i++) { 181 obj = __alloc(c, node); 182 if (!obj) 183 break; 184 if (IS_ENABLED(CONFIG_PREEMPT_RT)) 185 /* In RT irq_work runs in per-cpu kthread, so disable 186 * interrupts to avoid preemption and interrupts and 187 * reduce the chance of bpf prog executing on this cpu 188 * when active counter is busy. 189 */ 190 local_irq_save(flags); 191 /* alloc_bulk runs from irq_work which will not preempt a bpf 192 * program that does unit_alloc/unit_free since IRQs are 193 * disabled there. There is no race to increment 'active' 194 * counter. It protects free_llist from corruption in case NMI 195 * bpf prog preempted this loop. 196 */ 197 WARN_ON_ONCE(local_inc_return(&c->active) != 1); 198 __llist_add(obj, &c->free_llist); 199 c->free_cnt++; 200 local_dec(&c->active); 201 if (IS_ENABLED(CONFIG_PREEMPT_RT)) 202 local_irq_restore(flags); 203 } 204 set_active_memcg(old_memcg); 205 mem_cgroup_put(memcg); 206 } 207 208 static void free_one(struct bpf_mem_cache *c, void *obj) 209 { 210 if (c->percpu) { > 211 free_percpu(((void **)obj)[1]); 212 kmem_cache_free(c->kmem_cache, obj); 213 return; 214 } 215 216 if (c->kmem_cache) 217 kmem_cache_free(c->kmem_cache, obj); 218 else 219 kfree(obj); 220 } 221 -- 0-DAY CI Kernel Test Service https://01.org/lkp