tree:
https://git.kernel.org/pub/scm/linux/kernel/git/jfern/linux.git rcu-segcb
head: fb866e723f8f64bc4f1e6d19add6a4ff285fcc02
commit: 6c20fe430956a44bc2034f58d55678fb8e8cff19 [3/7] rcu/trace: Add name of the source
for gp_seq
config: x86_64-randconfig-s021-20200618 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.2-rc1-10-gc17b1b06-dirty
git checkout 6c20fe430956a44bc2034f58d55678fb8e8cff19
# save the attached .config to linux build tree
make W=1 C=1 ARCH=x86_64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
sparse warnings: (new ones prefixed by >>)
> kernel/rcu/tree_plugin.h:792:32: sparse: sparse: incorrect type
in argument 2 (different base types) @@ expected char const *gp_seq_src @@ got
unsigned long [assigned] pscr_ret__ @@
> kernel/rcu/tree_plugin.h:792:32: sparse: expected char const *gp_seq_src
> kernel/rcu/tree_plugin.h:792:32: sparse: got unsigned long [assigned] pscr_ret__
> kernel/rcu/tree_plugin.h:792:66: sparse: sparse: incorrect type in argument 3
(different base types) @@ expected unsigned long gp_seq @@ got char const *static
___tp_str @@
> kernel/rcu/tree_plugin.h:792:66: sparse: expected unsigned long gp_seq
> kernel/rcu/tree_plugin.h:792:66: sparse: got char const *static ___tp_str
> kernel/rcu/tree_plugin.h:791:31: sparse: sparse: not enough arguments for function
trace_rcu_grace_period
kernel/rcu/tree.c:1279:13: sparse: sparse: context
imbalance in 'rcu_start_this_gp' - different lock contexts for basic block
kernel/rcu/tree.c:1733:9: sparse: sparse: context imbalance in 'rcu_gp_init' -
different lock contexts for basic block
kernel/rcu/tree.c:2495:9: sparse: sparse: context imbalance in 'force_qs_rnp' -
different lock contexts for basic block
kernel/rcu/tree.c:2549:25: sparse: sparse: context imbalance in
'rcu_force_quiescent_state' - unexpected unlock
arch/x86/include/asm/paravirt.h:765:9: sparse: sparse: context imbalance in
'kfree_call_rcu' - different lock contexts for basic block
kernel/rcu/tree_exp.h:189:9: sparse: sparse: context imbalance in
'__rcu_report_exp_rnp' - different lock contexts for basic block
vim +792 kernel/rcu/tree_plugin.h
f41d911f8c49a5 kernel/rcutree_plugin.h Paul E. McKenney 2009-08-22 779
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 780 /*
90326f0521a880 kernel/rcu/tree_plugin.h Sebastian Andrzej Siewior 2019-10-15 781 * Note
a quiescent state for PREEMPTION=n. Because we do not need to know
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 782 * how
many quiescent states passed, just if there was at least one since
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 783 * the
start of the grace period, this just sets a flag. The caller must
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 784 * have
disabled preemption.
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 785 */
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 786 static
void rcu_qs(void)
d28139c4e96713 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-06-28 787 {
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 788
RCU_LOCKDEP_WARN(preemptible(), "rcu_qs() invoked with preemption
enabled!!!");
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 789 if
(!__this_cpu_read(rcu_data.cpu_no_qs.s))
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 790
return;
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 @791
trace_rcu_grace_period(TPS("rcu_sched"),
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 @792
__this_cpu_read(rcu_data.gp_seq), TPS("cpuqs"));
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 793
__this_cpu_write(rcu_data.cpu_no_qs.b.norm, false);
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 794 if
(!__this_cpu_read(rcu_data.cpu_no_qs.b.exp))
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 795
return;
45975c7d21a1c0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-02 796
__this_cpu_write(rcu_data.cpu_no_qs.b.exp, false);
63d4c8c97948b0 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-07-03 797
rcu_report_exp_rdp(this_cpu_ptr(&rcu_data));
d28139c4e96713 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-06-28 798 }
d28139c4e96713 kernel/rcu/tree_plugin.h Paul E. McKenney 2018-06-28 799
:::::: The code at line 792 was first introduced by commit
:::::: 45975c7d21a1c0aba97e3d8007e2a7c123145748 rcu: Define RCU-sched API in terms of RCU
for Tree RCU PREEMPT builds
:::::: TO: Paul E. McKenney <paulmck(a)linux.vnet.ibm.com>
:::::: CC: Paul E. McKenney <paulmck(a)linux.vnet.ibm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org