CC: kbuild-...@lists.01.org
TO: "Paul, E., McKenney," <paul...@kernel.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   e7b08814b16b80a0bf76eeca16317f8c2ed23b8c
commit: 7e3b70e0703b48e120c3f5e65498790341120fad [4070/14131] rcu-tasks: Handle 
the running-offline idle-task special case
:::::: branch date: 3 days ago
:::::: commit date: 5 weeks ago
config: i386-randconfig-s002-20200601 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-243-gc100a7ab-dirty
        git checkout 7e3b70e0703b48e120c3f5e65498790341120fad
        # save the attached .config to linux build tree
        make W=1 C=1 ARCH=i386 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'

If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <l...@intel.com>


sparse warnings: (new ones prefixed by >>)

   kernel/rcu/tasks.h:418:6: sparse: sparse: symbol 'rcu_tasks_postscan' was 
not declared. Should it be static?
   kernel/rcu/tasks.h:715:20: sparse: sparse: symbol 'rcu_trace_lock_map' was 
not declared. Should it be static?
   kernel/rcu/tasks.h:722:10: sparse: sparse: symbol 'trc_n_readers_need_end' 
was not declared. Should it be static?
   kernel/rcu/tasks.h:723:1: sparse: sparse: symbol 'trc_wait' was not 
declared. Should it be static?
   kernel/rcu/tasks.h:743:6: sparse: sparse: symbol 
'rcu_read_unlock_trace_special' was not declared. Should it be static?
>> kernel/rcu/tasks.h:824:17: sparse: sparse: dubious: x & !y
   kernel/rcu/tasks.h:1108:6: sparse: sparse: symbol 
'synchronize_rcu_tasks_trace' was not declared. Should it be static?
   kernel/rcu/tasks.h:1121:6: sparse: sparse: symbol 'rcu_barrier_tasks_trace' 
was not declared. Should it be static?
   kernel/rcu/tasks.h:1153:6: sparse: sparse: symbol 
'show_rcu_tasks_gp_kthreads' was not declared. Should it be static?

# 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=7e3b70e0703b48e120c3f5e65498790341120fad
git remote add linux-next 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git remote update linux-next
git checkout 7e3b70e0703b48e120c3f5e65498790341120fad
vim +824 kernel/rcu/tasks.h

d5f177d35c2442 Paul E. McKenney 2020-03-09  815  
d5f177d35c2442 Paul E. McKenney 2020-03-09  816  /* Callback function for 
scheduler to check locked-down task.  */
d5f177d35c2442 Paul E. McKenney 2020-03-09  817  static bool 
trc_inspect_reader(struct task_struct *t, void *arg)
d5f177d35c2442 Paul E. McKenney 2020-03-09  818  {
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  819         int cpu = task_cpu(t);
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  820         bool in_qs = false;
7e3b70e0703b48 Paul E. McKenney 2020-03-22  821         bool ofl = 
cpu_is_offline(cpu);
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  822  
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  823         if (task_curr(t)) {
7e3b70e0703b48 Paul E. McKenney 2020-03-22 @824                 
WARN_ON_ONCE(ofl & !is_idle_task(t));
7e3b70e0703b48 Paul E. McKenney 2020-03-22  825  
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  826                 // If no chance 
of heavyweight readers, do it the hard way.
7e3b70e0703b48 Paul E. McKenney 2020-03-22  827                 if (!ofl && 
!IS_ENABLED(CONFIG_TASKS_TRACE_RCU_READ_MB))
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  828                         return 
false;
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  829  
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  830                 // If 
heavyweight readers are enabled on the remote task,
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  831                 // we can 
inspect its state despite its currently running.
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  832                 // However, we 
cannot safely change its state.
7e3b70e0703b48 Paul E. McKenney 2020-03-22  833                 if (!ofl && // 
Check for "running" idle tasks on offline CPUs.
7e3b70e0703b48 Paul E. McKenney 2020-03-22  834                     
!rcu_dynticks_zero_in_eqs(cpu, &t->trc_reader_nesting))
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  835                         return 
false; // No quiescent state, do it the hard way.
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  836                 in_qs = true;
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  837         } else {
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  838                 in_qs = 
likely(!t->trc_reader_nesting);
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  839         }
d5f177d35c2442 Paul E. McKenney 2020-03-09  840  
d5f177d35c2442 Paul E. McKenney 2020-03-09  841         // Mark as checked.  
Because this is called from the grace-period
d5f177d35c2442 Paul E. McKenney 2020-03-09  842         // kthread, also remove 
the task from the holdout list.
d5f177d35c2442 Paul E. McKenney 2020-03-09  843         t->trc_reader_checked = 
true;
d5f177d35c2442 Paul E. McKenney 2020-03-09  844         trc_del_holdout(t);
d5f177d35c2442 Paul E. McKenney 2020-03-09  845  
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  846         if (in_qs)
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  847                 return true;  
// Already in quiescent state, done!!!
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  848  
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  849         // The task is in a 
read-side critical section, so set up its
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  850         // state so that it 
will awaken the grace-period kthread upon exit
7d0c9c50c5a109 Paul E. McKenney 2020-03-19  851         // from that critical 
section.
d5f177d35c2442 Paul E. McKenney 2020-03-09  852         
atomic_inc(&trc_n_readers_need_end); // One more to wait on.
276c410448dbca Paul E. McKenney 2020-03-17  853         
WARN_ON_ONCE(t->trc_reader_special.b.need_qs);
276c410448dbca Paul E. McKenney 2020-03-17  854         
WRITE_ONCE(t->trc_reader_special.b.need_qs, true);
d5f177d35c2442 Paul E. McKenney 2020-03-09  855         return true;
d5f177d35c2442 Paul E. McKenney 2020-03-09  856  }
d5f177d35c2442 Paul E. McKenney 2020-03-09  857  

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to