All of lore.kernel.org
 help / color / mirror / Atom feed
* arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
@ 2021-04-07 16:38 kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-04-07 16:38 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Boqun Feng <boqun.feng@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   2d743660786ec51f5c1fefd5782bbdee7b227db0
commit: 9271a40d2a1429113160ccc4c16150921600bcc1 lockdep/selftest: Add wait context selftests
date:   3 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 3 months ago
config: riscv-randconfig-s032-20210407 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.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.3-279-g6d5d9b42-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9271a40d2a1429113160ccc4c16150921600bcc1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9271a40d2a1429113160ccc4c16150921600bcc1
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=riscv 

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 >>)
   lib/locking-selftest.c:298:1: sparse: sparse: context imbalance in 'AA_spin' - wrong count at exit
   lib/locking-selftest.c:300:1: sparse: sparse: context imbalance in 'AA_wlock' - wrong count at exit
   lib/locking-selftest.c:302:1: sparse: sparse: context imbalance in 'AA_rlock' - wrong count at exit
   lib/locking-selftest.c:321:13: sparse: sparse: context imbalance in 'rlock_AA1' - wrong count at exit
   lib/locking-selftest.c:327:13: sparse: sparse: context imbalance in 'rlock_AA1B' - wrong count at exit
   lib/locking-selftest.c:347:13: sparse: sparse: context imbalance in 'rlock_AA2' - wrong count at exit
   lib/locking-selftest.c:359:13: sparse: sparse: context imbalance in 'rlock_AA3' - wrong count at exit
   lib/locking-selftest.c:722:1: sparse: sparse: context imbalance in 'double_unlock_spin' - unexpected unlock
   lib/locking-selftest.c:724:1: sparse: sparse: context imbalance in 'double_unlock_wlock' - unexpected unlock
   lib/locking-selftest.c:726:1: sparse: sparse: context imbalance in 'double_unlock_rlock' - unexpected unlock
   lib/locking-selftest.c:753:1: sparse: sparse: context imbalance in 'init_held_spin' - wrong count at exit
   lib/locking-selftest.c:755:1: sparse: sparse: context imbalance in 'init_held_wlock' - wrong count at exit
   lib/locking-selftest.c:757:1: sparse: sparse: context imbalance in 'init_held_rlock' - wrong count at exit
   lib/locking-selftest.c:2456:13: sparse: sparse: context imbalance in 'rcu_exit' - unexpected unlock
   lib/locking-selftest.c:2465:13: sparse: sparse: context imbalance in 'rcu_bh_exit' - unexpected unlock
   lib/locking-selftest.c:2474:13: sparse: sparse: context imbalance in 'rcu_sched_exit' - unexpected unlock
   lib/locking-selftest.c:2493:13: sparse: sparse: context imbalance in 'raw_spinlock_exit' - unexpected unlock
   lib/locking-selftest.c:2502:13: sparse: sparse: context imbalance in 'spinlock_exit' - unexpected unlock
   lib/locking-selftest.c: note: in included file (through include/linux/thread_info.h, include/asm-generic/preempt.h, arch/riscv/include/generated/asm/preempt.h, ...):
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_MUTEX' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_MUTEX' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_MUTEX' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_SPINLOCK' - wrong count at exit

vim +/RCU_in_HARDIRQ +31 arch/riscv/include/asm/current.h

52e7c52d2ded59 Palmer Dabbelt 2020-02-27  21  
7db91e57a0acde Palmer Dabbelt 2017-07-10  22  /*
7db91e57a0acde Palmer Dabbelt 2017-07-10  23   * This only works because "struct thread_info" is at offset 0 from "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  24   * task_struct".  This constraint seems to be necessary on other architectures
7db91e57a0acde Palmer Dabbelt 2017-07-10  25   * as well, but __switch_to enforces it.  We can't check TASK_TI here because
7db91e57a0acde Palmer Dabbelt 2017-07-10  26   * <asm/asm-offsets.h> includes this, and I can't get the definition of "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  27   * task_struct" here due to some header ordering problems.
7db91e57a0acde Palmer Dabbelt 2017-07-10  28   */
7db91e57a0acde Palmer Dabbelt 2017-07-10  29  static __always_inline struct task_struct *get_current(void)
7db91e57a0acde Palmer Dabbelt 2017-07-10  30  {
52e7c52d2ded59 Palmer Dabbelt 2020-02-27 @31  	return riscv_current_is_tp;
7db91e57a0acde Palmer Dabbelt 2017-07-10  32  }
7db91e57a0acde Palmer Dabbelt 2017-07-10  33  

:::::: The code at line 31 was first introduced by commit
:::::: 52e7c52d2ded5908e6a4f8a7248e5fa6e0d6809a RISC-V: Stop relying on GCC's register allocator's hueristics

:::::: TO: Palmer Dabbelt <palmerdabbelt@google.com>
:::::: CC: Palmer Dabbelt <palmerdabbelt@google.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34950 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
@ 2021-08-26 16:10 kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-08-26 16:10 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Boqun Feng <boqun.feng@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   73f3af7b4611d77bdaea303fb639333eb28e37d7
commit: 9271a40d2a1429113160ccc4c16150921600bcc1 lockdep/selftest: Add wait context selftests
date:   7 months ago
:::::: branch date: 20 hours ago
:::::: commit date: 7 months ago
config: riscv-randconfig-s031-20210825 (attached as .config)
compiler: riscv32-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.3-348-gf0e6938b-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9271a40d2a1429113160ccc4c16150921600bcc1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9271a40d2a1429113160ccc4c16150921600bcc1
        # save the attached .config to linux build tree
        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

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 >>)
   lib/locking-selftest.c:298:1: sparse: sparse: context imbalance in 'AA_spin' - wrong count at exit
   lib/locking-selftest.c:300:1: sparse: sparse: context imbalance in 'AA_wlock' - wrong count at exit
   lib/locking-selftest.c:302:1: sparse: sparse: context imbalance in 'AA_rlock' - wrong count at exit
   lib/locking-selftest.c:321:13: sparse: sparse: context imbalance in 'rlock_AA1' - wrong count at exit
   lib/locking-selftest.c:327:13: sparse: sparse: context imbalance in 'rlock_AA1B' - wrong count at exit
   lib/locking-selftest.c:347:13: sparse: sparse: context imbalance in 'rlock_AA2' - wrong count at exit
   lib/locking-selftest.c:359:13: sparse: sparse: context imbalance in 'rlock_AA3' - wrong count at exit
   lib/locking-selftest.c:722:1: sparse: sparse: context imbalance in 'double_unlock_spin' - unexpected unlock
   lib/locking-selftest.c:724:1: sparse: sparse: context imbalance in 'double_unlock_wlock' - unexpected unlock
   lib/locking-selftest.c:726:1: sparse: sparse: context imbalance in 'double_unlock_rlock' - unexpected unlock
   lib/locking-selftest.c:753:1: sparse: sparse: context imbalance in 'init_held_spin' - wrong count at exit
   lib/locking-selftest.c:755:1: sparse: sparse: context imbalance in 'init_held_wlock' - wrong count at exit
   lib/locking-selftest.c:757:1: sparse: sparse: context imbalance in 'init_held_rlock' - wrong count at exit
   lib/locking-selftest.c:2456:13: sparse: sparse: context imbalance in 'rcu_exit' - unexpected unlock
   lib/locking-selftest.c:2465:13: sparse: sparse: context imbalance in 'rcu_bh_exit' - unexpected unlock
   lib/locking-selftest.c:2474:13: sparse: sparse: context imbalance in 'rcu_sched_exit' - unexpected unlock
   lib/locking-selftest.c:2493:13: sparse: sparse: context imbalance in 'raw_spinlock_exit' - unexpected unlock
   lib/locking-selftest.c:2502:13: sparse: sparse: context imbalance in 'spinlock_exit' - unexpected unlock
   lib/locking-selftest.c: note: in included file (through include/linux/thread_info.h, include/asm-generic/preempt.h, arch/riscv/include/generated/asm/preempt.h, ...):
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_MUTEX' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_MUTEX' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_MUTEX' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_SPINLOCK' - wrong count at exit

vim +/RCU_in_HARDIRQ +31 arch/riscv/include/asm/current.h

52e7c52d2ded59 Palmer Dabbelt 2020-02-27  21  
7db91e57a0acde Palmer Dabbelt 2017-07-10  22  /*
7db91e57a0acde Palmer Dabbelt 2017-07-10  23   * This only works because "struct thread_info" is at offset 0 from "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  24   * task_struct".  This constraint seems to be necessary on other architectures
7db91e57a0acde Palmer Dabbelt 2017-07-10  25   * as well, but __switch_to enforces it.  We can't check TASK_TI here because
7db91e57a0acde Palmer Dabbelt 2017-07-10  26   * <asm/asm-offsets.h> includes this, and I can't get the definition of "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  27   * task_struct" here due to some header ordering problems.
7db91e57a0acde Palmer Dabbelt 2017-07-10  28   */
7db91e57a0acde Palmer Dabbelt 2017-07-10  29  static __always_inline struct task_struct *get_current(void)
7db91e57a0acde Palmer Dabbelt 2017-07-10  30  {
52e7c52d2ded59 Palmer Dabbelt 2020-02-27 @31  	return riscv_current_is_tp;
7db91e57a0acde Palmer Dabbelt 2017-07-10  32  }
7db91e57a0acde Palmer Dabbelt 2017-07-10  33  

:::::: The code at line 31 was first introduced by commit
:::::: 52e7c52d2ded5908e6a4f8a7248e5fa6e0d6809a RISC-V: Stop relying on GCC's register allocator's hueristics

:::::: TO: Palmer Dabbelt <palmerdabbelt@google.com>
:::::: CC: Palmer Dabbelt <palmerdabbelt@google.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34997 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
@ 2021-08-26 10:08 kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-08-26 10:08 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Boqun Feng <boqun.feng@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   73f3af7b4611d77bdaea303fb639333eb28e37d7
commit: 9271a40d2a1429113160ccc4c16150921600bcc1 lockdep/selftest: Add wait context selftests
date:   7 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 7 months ago
config: riscv-randconfig-s031-20210825 (attached as .config)
compiler: riscv32-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.3-348-gf0e6938b-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9271a40d2a1429113160ccc4c16150921600bcc1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9271a40d2a1429113160ccc4c16150921600bcc1
        # save the attached .config to linux build tree
        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

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 >>)
   lib/locking-selftest.c:298:1: sparse: sparse: context imbalance in 'AA_spin' - wrong count at exit
   lib/locking-selftest.c:300:1: sparse: sparse: context imbalance in 'AA_wlock' - wrong count at exit
   lib/locking-selftest.c:302:1: sparse: sparse: context imbalance in 'AA_rlock' - wrong count at exit
   lib/locking-selftest.c:321:13: sparse: sparse: context imbalance in 'rlock_AA1' - wrong count at exit
   lib/locking-selftest.c:327:13: sparse: sparse: context imbalance in 'rlock_AA1B' - wrong count at exit
   lib/locking-selftest.c:347:13: sparse: sparse: context imbalance in 'rlock_AA2' - wrong count at exit
   lib/locking-selftest.c:359:13: sparse: sparse: context imbalance in 'rlock_AA3' - wrong count at exit
   lib/locking-selftest.c:722:1: sparse: sparse: context imbalance in 'double_unlock_spin' - unexpected unlock
   lib/locking-selftest.c:724:1: sparse: sparse: context imbalance in 'double_unlock_wlock' - unexpected unlock
   lib/locking-selftest.c:726:1: sparse: sparse: context imbalance in 'double_unlock_rlock' - unexpected unlock
   lib/locking-selftest.c:753:1: sparse: sparse: context imbalance in 'init_held_spin' - wrong count at exit
   lib/locking-selftest.c:755:1: sparse: sparse: context imbalance in 'init_held_wlock' - wrong count at exit
   lib/locking-selftest.c:757:1: sparse: sparse: context imbalance in 'init_held_rlock' - wrong count at exit
   lib/locking-selftest.c:2456:13: sparse: sparse: context imbalance in 'rcu_exit' - unexpected unlock
   lib/locking-selftest.c:2465:13: sparse: sparse: context imbalance in 'rcu_bh_exit' - unexpected unlock
   lib/locking-selftest.c:2474:13: sparse: sparse: context imbalance in 'rcu_sched_exit' - unexpected unlock
   lib/locking-selftest.c:2493:13: sparse: sparse: context imbalance in 'raw_spinlock_exit' - unexpected unlock
   lib/locking-selftest.c:2502:13: sparse: sparse: context imbalance in 'spinlock_exit' - unexpected unlock
   lib/locking-selftest.c: note: in included file (through include/linux/thread_info.h, include/asm-generic/preempt.h, arch/riscv/include/generated/asm/preempt.h, ...):
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_MUTEX' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_MUTEX' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_MUTEX' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_SPINLOCK' - wrong count at exit

vim +/RCU_in_HARDIRQ +31 arch/riscv/include/asm/current.h

52e7c52d2ded59 Palmer Dabbelt 2020-02-27  21  
7db91e57a0acde Palmer Dabbelt 2017-07-10  22  /*
7db91e57a0acde Palmer Dabbelt 2017-07-10  23   * This only works because "struct thread_info" is at offset 0 from "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  24   * task_struct".  This constraint seems to be necessary on other architectures
7db91e57a0acde Palmer Dabbelt 2017-07-10  25   * as well, but __switch_to enforces it.  We can't check TASK_TI here because
7db91e57a0acde Palmer Dabbelt 2017-07-10  26   * <asm/asm-offsets.h> includes this, and I can't get the definition of "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  27   * task_struct" here due to some header ordering problems.
7db91e57a0acde Palmer Dabbelt 2017-07-10  28   */
7db91e57a0acde Palmer Dabbelt 2017-07-10  29  static __always_inline struct task_struct *get_current(void)
7db91e57a0acde Palmer Dabbelt 2017-07-10  30  {
52e7c52d2ded59 Palmer Dabbelt 2020-02-27 @31  	return riscv_current_is_tp;
7db91e57a0acde Palmer Dabbelt 2017-07-10  32  }
7db91e57a0acde Palmer Dabbelt 2017-07-10  33  

:::::: The code at line 31 was first introduced by commit
:::::: 52e7c52d2ded5908e6a4f8a7248e5fa6e0d6809a RISC-V: Stop relying on GCC's register allocator's hueristics

:::::: TO: Palmer Dabbelt <palmerdabbelt@google.com>
:::::: CC: Palmer Dabbelt <palmerdabbelt@google.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34997 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
@ 2021-08-13 16:01 kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-08-13 16:01 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Boqun Feng <boqun.feng@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f8e6dfc64f6135d1b6c5215c14cd30b9b60a0008
commit: 9271a40d2a1429113160ccc4c16150921600bcc1 lockdep/selftest: Add wait context selftests
date:   7 months ago
:::::: branch date: 14 hours ago
:::::: commit date: 7 months ago
config: riscv-randconfig-s032-20210813 (attached as .config)
compiler: riscv32-linux-gcc (GCC) 10.3.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.3-348-gf0e6938b-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9271a40d2a1429113160ccc4c16150921600bcc1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9271a40d2a1429113160ccc4c16150921600bcc1
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=riscv SHELL=/bin/bash

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 >>)
   lib/locking-selftest.c:298:1: sparse: sparse: context imbalance in 'AA_spin' - wrong count at exit
   lib/locking-selftest.c:300:1: sparse: sparse: context imbalance in 'AA_wlock' - wrong count at exit
   lib/locking-selftest.c:302:1: sparse: sparse: context imbalance in 'AA_rlock' - wrong count at exit
   lib/locking-selftest.c:321:13: sparse: sparse: context imbalance in 'rlock_AA1' - wrong count at exit
   lib/locking-selftest.c:327:13: sparse: sparse: context imbalance in 'rlock_AA1B' - wrong count at exit
   lib/locking-selftest.c:347:13: sparse: sparse: context imbalance in 'rlock_AA2' - wrong count at exit
   lib/locking-selftest.c:359:13: sparse: sparse: context imbalance in 'rlock_AA3' - wrong count at exit
   lib/locking-selftest.c:722:1: sparse: sparse: context imbalance in 'double_unlock_spin' - unexpected unlock
   lib/locking-selftest.c:724:1: sparse: sparse: context imbalance in 'double_unlock_wlock' - unexpected unlock
   lib/locking-selftest.c:726:1: sparse: sparse: context imbalance in 'double_unlock_rlock' - unexpected unlock
   lib/locking-selftest.c:753:1: sparse: sparse: context imbalance in 'init_held_spin' - wrong count at exit
   lib/locking-selftest.c:755:1: sparse: sparse: context imbalance in 'init_held_wlock' - wrong count at exit
   lib/locking-selftest.c:757:1: sparse: sparse: context imbalance in 'init_held_rlock' - wrong count at exit
   lib/locking-selftest.c:2456:13: sparse: sparse: context imbalance in 'rcu_exit' - unexpected unlock
   lib/locking-selftest.c:2465:13: sparse: sparse: context imbalance in 'rcu_bh_exit' - unexpected unlock
   lib/locking-selftest.c:2474:13: sparse: sparse: context imbalance in 'rcu_sched_exit' - unexpected unlock
   lib/locking-selftest.c:2493:13: sparse: sparse: context imbalance in 'raw_spinlock_exit' - unexpected unlock
   lib/locking-selftest.c:2502:13: sparse: sparse: context imbalance in 'spinlock_exit' - unexpected unlock
   lib/locking-selftest.c: note: in included file (through include/linux/thread_info.h, include/asm-generic/preempt.h, arch/riscv/include/generated/asm/preempt.h, ...):
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_MUTEX' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_MUTEX' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_MUTEX' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_SPINLOCK' - wrong count at exit

vim +/RCU_in_HARDIRQ +31 arch/riscv/include/asm/current.h

52e7c52d2ded59 Palmer Dabbelt 2020-02-27  21  
7db91e57a0acde Palmer Dabbelt 2017-07-10  22  /*
7db91e57a0acde Palmer Dabbelt 2017-07-10  23   * This only works because "struct thread_info" is at offset 0 from "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  24   * task_struct".  This constraint seems to be necessary on other architectures
7db91e57a0acde Palmer Dabbelt 2017-07-10  25   * as well, but __switch_to enforces it.  We can't check TASK_TI here because
7db91e57a0acde Palmer Dabbelt 2017-07-10  26   * <asm/asm-offsets.h> includes this, and I can't get the definition of "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  27   * task_struct" here due to some header ordering problems.
7db91e57a0acde Palmer Dabbelt 2017-07-10  28   */
7db91e57a0acde Palmer Dabbelt 2017-07-10  29  static __always_inline struct task_struct *get_current(void)
7db91e57a0acde Palmer Dabbelt 2017-07-10  30  {
52e7c52d2ded59 Palmer Dabbelt 2020-02-27 @31  	return riscv_current_is_tp;
7db91e57a0acde Palmer Dabbelt 2017-07-10  32  }
7db91e57a0acde Palmer Dabbelt 2017-07-10  33  

:::::: The code at line 31 was first introduced by commit
:::::: 52e7c52d2ded5908e6a4f8a7248e5fa6e0d6809a RISC-V: Stop relying on GCC's register allocator's hueristics

:::::: TO: Palmer Dabbelt <palmerdabbelt@google.com>
:::::: CC: Palmer Dabbelt <palmerdabbelt@google.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 29252 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
@ 2021-07-01  2:28 kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-07-01  2:28 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Boqun Feng <boqun.feng@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   dbe69e43372212527abf48609aba7fc39a6daa27
commit: 9271a40d2a1429113160ccc4c16150921600bcc1 lockdep/selftest: Add wait context selftests
date:   6 months ago
:::::: branch date: 4 hours ago
:::::: commit date: 6 months ago
config: riscv-randconfig-s032-20210630 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.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.3-341-g8af24329-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9271a40d2a1429113160ccc4c16150921600bcc1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9271a40d2a1429113160ccc4c16150921600bcc1
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=riscv SHELL=/bin/bash

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 >>)
   lib/locking-selftest.c:298:1: sparse: sparse: context imbalance in 'AA_spin' - wrong count at exit
   lib/locking-selftest.c:300:1: sparse: sparse: context imbalance in 'AA_wlock' - wrong count at exit
   lib/locking-selftest.c:302:1: sparse: sparse: context imbalance in 'AA_rlock' - wrong count at exit
   lib/locking-selftest.c:321:13: sparse: sparse: context imbalance in 'rlock_AA1' - wrong count at exit
   lib/locking-selftest.c:327:13: sparse: sparse: context imbalance in 'rlock_AA1B' - wrong count at exit
   lib/locking-selftest.c:347:13: sparse: sparse: context imbalance in 'rlock_AA2' - wrong count at exit
   lib/locking-selftest.c:359:13: sparse: sparse: context imbalance in 'rlock_AA3' - wrong count at exit
   lib/locking-selftest.c:722:1: sparse: sparse: context imbalance in 'double_unlock_spin' - unexpected unlock
   lib/locking-selftest.c:724:1: sparse: sparse: context imbalance in 'double_unlock_wlock' - unexpected unlock
   lib/locking-selftest.c:726:1: sparse: sparse: context imbalance in 'double_unlock_rlock' - unexpected unlock
   lib/locking-selftest.c:753:1: sparse: sparse: context imbalance in 'init_held_spin' - wrong count at exit
   lib/locking-selftest.c:755:1: sparse: sparse: context imbalance in 'init_held_wlock' - wrong count at exit
   lib/locking-selftest.c:757:1: sparse: sparse: context imbalance in 'init_held_rlock' - wrong count at exit
   lib/locking-selftest.c:2456:13: sparse: sparse: context imbalance in 'rcu_exit' - unexpected unlock
   lib/locking-selftest.c:2465:13: sparse: sparse: context imbalance in 'rcu_bh_exit' - unexpected unlock
   lib/locking-selftest.c:2474:13: sparse: sparse: context imbalance in 'rcu_sched_exit' - unexpected unlock
   lib/locking-selftest.c:2493:13: sparse: sparse: context imbalance in 'raw_spinlock_exit' - unexpected unlock
   lib/locking-selftest.c:2502:13: sparse: sparse: context imbalance in 'spinlock_exit' - unexpected unlock
   lib/locking-selftest.c: note: in included file (through include/linux/thread_info.h, include/asm-generic/preempt.h, arch/riscv/include/generated/asm/preempt.h, ...):
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_MUTEX' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_MUTEX' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_MUTEX' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_SPINLOCK' - wrong count at exit

vim +/RCU_in_HARDIRQ +31 arch/riscv/include/asm/current.h

52e7c52d2ded5908 Palmer Dabbelt 2020-02-27  21  
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  22  /*
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  23   * This only works because "struct thread_info" is at offset 0 from "struct
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  24   * task_struct".  This constraint seems to be necessary on other architectures
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  25   * as well, but __switch_to enforces it.  We can't check TASK_TI here because
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  26   * <asm/asm-offsets.h> includes this, and I can't get the definition of "struct
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  27   * task_struct" here due to some header ordering problems.
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  28   */
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  29  static __always_inline struct task_struct *get_current(void)
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  30  {
52e7c52d2ded5908 Palmer Dabbelt 2020-02-27 @31  	return riscv_current_is_tp;
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  32  }
7db91e57a0acde12 Palmer Dabbelt 2017-07-10  33  

:::::: The code at line 31 was first introduced by commit
:::::: 52e7c52d2ded5908e6a4f8a7248e5fa6e0d6809a RISC-V: Stop relying on GCC's register allocator's hueristics

:::::: TO: Palmer Dabbelt <palmerdabbelt@google.com>
:::::: CC: Palmer Dabbelt <palmerdabbelt@google.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 34494 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
@ 2021-05-01 19:27 kernel test robot
  0 siblings, 0 replies; 6+ messages in thread
From: kernel test robot @ 2021-05-01 19:27 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Boqun Feng <boqun.feng@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9f67672a817ec046f7554a885f0fe0d60e1bf99f
commit: 9271a40d2a1429113160ccc4c16150921600bcc1 lockdep/selftest: Add wait context selftests
date:   4 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 4 months ago
config: riscv-randconfig-s032-20210502 (attached as .config)
compiler: riscv64-linux-gcc (GCC) 9.3.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.3-341-g8af24329-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9271a40d2a1429113160ccc4c16150921600bcc1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 9271a40d2a1429113160ccc4c16150921600bcc1
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=riscv 

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 >>)
   lib/locking-selftest.c:298:1: sparse: sparse: context imbalance in 'AA_spin' - wrong count at exit
   lib/locking-selftest.c:300:1: sparse: sparse: context imbalance in 'AA_wlock' - wrong count at exit
   lib/locking-selftest.c:302:1: sparse: sparse: context imbalance in 'AA_rlock' - wrong count at exit
   lib/locking-selftest.c:321:13: sparse: sparse: context imbalance in 'rlock_AA1' - wrong count at exit
   lib/locking-selftest.c:327:13: sparse: sparse: context imbalance in 'rlock_AA1B' - wrong count at exit
   lib/locking-selftest.c:347:13: sparse: sparse: context imbalance in 'rlock_AA2' - wrong count at exit
   lib/locking-selftest.c:359:13: sparse: sparse: context imbalance in 'rlock_AA3' - wrong count at exit
   lib/locking-selftest.c:722:1: sparse: sparse: context imbalance in 'double_unlock_spin' - unexpected unlock
   lib/locking-selftest.c:724:1: sparse: sparse: context imbalance in 'double_unlock_wlock' - unexpected unlock
   lib/locking-selftest.c:726:1: sparse: sparse: context imbalance in 'double_unlock_rlock' - unexpected unlock
   lib/locking-selftest.c:753:1: sparse: sparse: context imbalance in 'init_held_spin' - wrong count at exit
   lib/locking-selftest.c:755:1: sparse: sparse: context imbalance in 'init_held_wlock' - wrong count at exit
   lib/locking-selftest.c:757:1: sparse: sparse: context imbalance in 'init_held_rlock' - wrong count at exit
   lib/locking-selftest.c:2456:13: sparse: sparse: context imbalance in 'rcu_exit' - unexpected unlock
   lib/locking-selftest.c:2465:13: sparse: sparse: context imbalance in 'rcu_bh_exit' - unexpected unlock
   lib/locking-selftest.c:2474:13: sparse: sparse: context imbalance in 'rcu_sched_exit' - unexpected unlock
   lib/locking-selftest.c:2493:13: sparse: sparse: context imbalance in 'raw_spinlock_exit' - unexpected unlock
   lib/locking-selftest.c:2502:13: sparse: sparse: context imbalance in 'spinlock_exit' - unexpected unlock
   lib/locking-selftest.c: note: in included file (through include/linux/thread_info.h, include/asm-generic/preempt.h, arch/riscv/include/generated/asm/preempt.h, ...):
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_NOTTHREADED_HARDIRQ' - wrong count at exit
>> arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2573:1: sparse: sparse: context imbalance in 'RCU_in_MUTEX' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2574:1: sparse: sparse: context imbalance in 'RAW_SPINLOCK_in_MUTEX' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_NOTTHREADED_HARDIRQ' - wrong count at exit
   arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'SPINLOCK_in_SOFTIRQ' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_CALLBACK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2575:1: sparse: sparse: context imbalance in 'SPINLOCK_in_MUTEX' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_BH' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RCU_SCHED' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_RAW_SPINLOCK' - wrong count at exit
   lib/locking-selftest.c:2576:1: sparse: sparse: context imbalance in 'MUTEX_in_SPINLOCK' - wrong count at exit

vim +/RCU_in_HARDIRQ +31 arch/riscv/include/asm/current.h

52e7c52d2ded59 Palmer Dabbelt 2020-02-27  21  
7db91e57a0acde Palmer Dabbelt 2017-07-10  22  /*
7db91e57a0acde Palmer Dabbelt 2017-07-10  23   * This only works because "struct thread_info" is at offset 0 from "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  24   * task_struct".  This constraint seems to be necessary on other architectures
7db91e57a0acde Palmer Dabbelt 2017-07-10  25   * as well, but __switch_to enforces it.  We can't check TASK_TI here because
7db91e57a0acde Palmer Dabbelt 2017-07-10  26   * <asm/asm-offsets.h> includes this, and I can't get the definition of "struct
7db91e57a0acde Palmer Dabbelt 2017-07-10  27   * task_struct" here due to some header ordering problems.
7db91e57a0acde Palmer Dabbelt 2017-07-10  28   */
7db91e57a0acde Palmer Dabbelt 2017-07-10  29  static __always_inline struct task_struct *get_current(void)
7db91e57a0acde Palmer Dabbelt 2017-07-10  30  {
52e7c52d2ded59 Palmer Dabbelt 2020-02-27 @31  	return riscv_current_is_tp;
7db91e57a0acde Palmer Dabbelt 2017-07-10  32  }
7db91e57a0acde Palmer Dabbelt 2017-07-10  33  

:::::: The code at line 31 was first introduced by commit
:::::: 52e7c52d2ded5908e6a4f8a7248e5fa6e0d6809a RISC-V: Stop relying on GCC's register allocator's hueristics

:::::: TO: Palmer Dabbelt <palmerdabbelt@google.com>
:::::: CC: Palmer Dabbelt <palmerdabbelt@google.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 20032 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-08-26 16:10 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-07 16:38 arch/riscv/include/asm/current.h:31:9: sparse: sparse: context imbalance in 'RCU_in_HARDIRQ' - wrong count at exit kernel test robot
2021-05-01 19:27 kernel test robot
2021-07-01  2:28 kernel test robot
2021-08-13 16:01 kernel test robot
2021-08-26 10:08 kernel test robot
2021-08-26 16:10 kernel test robot

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.