All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Kicinski <kuba@kernel.org>
To: kernel test robot <lkp@intel.com>
Cc: Eric Dumazet <edumazet@google.com>,
	kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Brian Vazquez <brianvv@google.com>,
	linux-riscv@lists.infradead.org
Subject: Re: net/core/dev.c:10290:18: sparse: sparse: cast removes address space '__percpu' of expression
Date: Mon, 28 Mar 2022 10:17:11 -0700	[thread overview]
Message-ID: <20220328101711.111e1dd5@kernel.org> (raw)
In-Reply-To: <202203281436.hsNgYWWu-lkp@intel.com>

CC: riscv, is there something special about cmpxchg() on that arch?
We don't see it on x86, and I don't see anything special in the code
for riscv, at least on 5.17.

On Mon, 28 Mar 2022 14:28:34 +0800 kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   ae085d7f9365de7da27ab5c0d16b12d51ea7fca9
> commit: 625788b5844511cf4c30cffa7fa0bc3a69cebc82 net: add per-cpu storage and net->core_stats
> date:   2 weeks ago
> config: riscv-randconfig-s032-20220328 (https://download.01.org/0day-ci/archive/20220328/202203281436.hsNgYWWu-lkp@intel.com/config)
> compiler: riscv64-linux-gcc (GCC) 11.2.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-dirty
>         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=625788b5844511cf4c30cffa7fa0bc3a69cebc82
>         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>         git fetch --no-tags linus master
>         git checkout 625788b5844511cf4c30cffa7fa0bc3a69cebc82
>         # save the config file to linux build tree
>         mkdir build_dir
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=riscv SHELL=/bin/bash net/core/
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> 
> sparse warnings: (new ones prefixed by >>)
>    net/core/dev.c:3254:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
>    net/core/dev.c:3254:23: sparse:     expected restricted __wsum [usertype] csum
>    net/core/dev.c:3254:23: sparse:     got unsigned int
>    net/core/dev.c:3254:23: sparse: sparse: cast from restricted __wsum
> >> net/core/dev.c:10290:18: sparse: sparse: cast removes address space '__percpu' of expression  
>    net/core/dev.c:3759:17: sparse: sparse: context imbalance in '__dev_queue_xmit' - different lock contexts for basic block
>    net/core/dev.c:4961:17: sparse: sparse: context imbalance in 'net_tx_action' - different lock contexts for basic block
> 
> vim +/__percpu +10290 net/core/dev.c
> 
>  10282	
>  10283	struct net_device_core_stats *netdev_core_stats_alloc(struct net_device *dev)
>  10284	{
>  10285		struct net_device_core_stats __percpu *p;
>  10286	
>  10287		p = alloc_percpu_gfp(struct net_device_core_stats,
>  10288				     GFP_ATOMIC | __GFP_NOWARN);
>  10289	
>  10290		if (p && cmpxchg(&dev->core_stats, NULL, p))
>  10291			free_percpu(p);
>  10292	
>  10293		/* This READ_ONCE() pairs with the cmpxchg() above */
>  10294		p = READ_ONCE(dev->core_stats);
>  10295		if (!p)
>  10296			return NULL;
>  10297	
>  10298		return this_cpu_ptr(p);
>  10299	}
>  10300	EXPORT_SYMBOL(netdev_core_stats_alloc);
>  10301	
> 


WARNING: multiple messages have this Message-ID (diff)
From: Jakub Kicinski <kuba@kernel.org>
To: kernel test robot <lkp@intel.com>
Cc: Eric Dumazet <edumazet@google.com>,
	kbuild-all@lists.01.org, linux-kernel@vger.kernel.org,
	Brian Vazquez <brianvv@google.com>,
	linux-riscv@lists.infradead.org
Subject: Re: net/core/dev.c:10290:18: sparse: sparse: cast removes address space '__percpu' of expression
Date: Mon, 28 Mar 2022 10:17:11 -0700	[thread overview]
Message-ID: <20220328101711.111e1dd5@kernel.org> (raw)
In-Reply-To: <202203281436.hsNgYWWu-lkp@intel.com>

CC: riscv, is there something special about cmpxchg() on that arch?
We don't see it on x86, and I don't see anything special in the code
for riscv, at least on 5.17.

On Mon, 28 Mar 2022 14:28:34 +0800 kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   ae085d7f9365de7da27ab5c0d16b12d51ea7fca9
> commit: 625788b5844511cf4c30cffa7fa0bc3a69cebc82 net: add per-cpu storage and net->core_stats
> date:   2 weeks ago
> config: riscv-randconfig-s032-20220328 (https://download.01.org/0day-ci/archive/20220328/202203281436.hsNgYWWu-lkp@intel.com/config)
> compiler: riscv64-linux-gcc (GCC) 11.2.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-dirty
>         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=625788b5844511cf4c30cffa7fa0bc3a69cebc82
>         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>         git fetch --no-tags linus master
>         git checkout 625788b5844511cf4c30cffa7fa0bc3a69cebc82
>         # save the config file to linux build tree
>         mkdir build_dir
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=riscv SHELL=/bin/bash net/core/
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> 
> sparse warnings: (new ones prefixed by >>)
>    net/core/dev.c:3254:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
>    net/core/dev.c:3254:23: sparse:     expected restricted __wsum [usertype] csum
>    net/core/dev.c:3254:23: sparse:     got unsigned int
>    net/core/dev.c:3254:23: sparse: sparse: cast from restricted __wsum
> >> net/core/dev.c:10290:18: sparse: sparse: cast removes address space '__percpu' of expression  
>    net/core/dev.c:3759:17: sparse: sparse: context imbalance in '__dev_queue_xmit' - different lock contexts for basic block
>    net/core/dev.c:4961:17: sparse: sparse: context imbalance in 'net_tx_action' - different lock contexts for basic block
> 
> vim +/__percpu +10290 net/core/dev.c
> 
>  10282	
>  10283	struct net_device_core_stats *netdev_core_stats_alloc(struct net_device *dev)
>  10284	{
>  10285		struct net_device_core_stats __percpu *p;
>  10286	
>  10287		p = alloc_percpu_gfp(struct net_device_core_stats,
>  10288				     GFP_ATOMIC | __GFP_NOWARN);
>  10289	
>  10290		if (p && cmpxchg(&dev->core_stats, NULL, p))
>  10291			free_percpu(p);
>  10292	
>  10293		/* This READ_ONCE() pairs with the cmpxchg() above */
>  10294		p = READ_ONCE(dev->core_stats);
>  10295		if (!p)
>  10296			return NULL;
>  10297	
>  10298		return this_cpu_ptr(p);
>  10299	}
>  10300	EXPORT_SYMBOL(netdev_core_stats_alloc);
>  10301	
> 


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Jakub Kicinski <kuba@kernel.org>
To: kbuild-all@lists.01.org
Subject: Re: net/core/dev.c:10290:18: sparse: sparse: cast removes address space '__percpu' of expression
Date: Mon, 28 Mar 2022 10:17:11 -0700	[thread overview]
Message-ID: <20220328101711.111e1dd5@kernel.org> (raw)
In-Reply-To: <202203281436.hsNgYWWu-lkp@intel.com>

[-- Attachment #1: Type: text/plain, Size: 3134 bytes --]

CC: riscv, is there something special about cmpxchg() on that arch?
We don't see it on x86, and I don't see anything special in the code
for riscv, at least on 5.17.

On Mon, 28 Mar 2022 14:28:34 +0800 kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   ae085d7f9365de7da27ab5c0d16b12d51ea7fca9
> commit: 625788b5844511cf4c30cffa7fa0bc3a69cebc82 net: add per-cpu storage and net->core_stats
> date:   2 weeks ago
> config: riscv-randconfig-s032-20220328 (https://download.01.org/0day-ci/archive/20220328/202203281436.hsNgYWWu-lkp(a)intel.com/config)
> compiler: riscv64-linux-gcc (GCC) 11.2.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-dirty
>         # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=625788b5844511cf4c30cffa7fa0bc3a69cebc82
>         git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>         git fetch --no-tags linus master
>         git checkout 625788b5844511cf4c30cffa7fa0bc3a69cebc82
>         # save the config file to linux build tree
>         mkdir build_dir
>         COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=riscv SHELL=/bin/bash net/core/
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> 
> 
> sparse warnings: (new ones prefixed by >>)
>    net/core/dev.c:3254:23: sparse: sparse: incorrect type in argument 4 (different base types) @@     expected restricted __wsum [usertype] csum @@     got unsigned int @@
>    net/core/dev.c:3254:23: sparse:     expected restricted __wsum [usertype] csum
>    net/core/dev.c:3254:23: sparse:     got unsigned int
>    net/core/dev.c:3254:23: sparse: sparse: cast from restricted __wsum
> >> net/core/dev.c:10290:18: sparse: sparse: cast removes address space '__percpu' of expression  
>    net/core/dev.c:3759:17: sparse: sparse: context imbalance in '__dev_queue_xmit' - different lock contexts for basic block
>    net/core/dev.c:4961:17: sparse: sparse: context imbalance in 'net_tx_action' - different lock contexts for basic block
> 
> vim +/__percpu +10290 net/core/dev.c
> 
>  10282	
>  10283	struct net_device_core_stats *netdev_core_stats_alloc(struct net_device *dev)
>  10284	{
>  10285		struct net_device_core_stats __percpu *p;
>  10286	
>  10287		p = alloc_percpu_gfp(struct net_device_core_stats,
>  10288				     GFP_ATOMIC | __GFP_NOWARN);
>  10289	
>  10290		if (p && cmpxchg(&dev->core_stats, NULL, p))
>  10291			free_percpu(p);
>  10292	
>  10293		/* This READ_ONCE() pairs with the cmpxchg() above */
>  10294		p = READ_ONCE(dev->core_stats);
>  10295		if (!p)
>  10296			return NULL;
>  10297	
>  10298		return this_cpu_ptr(p);
>  10299	}
>  10300	EXPORT_SYMBOL(netdev_core_stats_alloc);
>  10301	
> 

  reply	other threads:[~2022-03-28 17:17 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-28  6:28 net/core/dev.c:10290:18: sparse: sparse: cast removes address space '__percpu' of expression kernel test robot
2022-03-28 17:17 ` Jakub Kicinski [this message]
2022-03-28 17:17   ` Jakub Kicinski
2022-03-28 17:17   ` Jakub Kicinski
2022-06-05  0:46 kernel test robot
2022-07-13 15:48 kernel test robot
2023-12-19 13:29 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=20220328101711.111e1dd5@kernel.org \
    --to=kuba@kernel.org \
    --cc=brianvv@google.com \
    --cc=edumazet@google.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=lkp@intel.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.