CC: [email protected]
TO: Peter Zijlstra <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git 
sched/core-sched
head:   548bcc10e83f30f5e93b795518e942a5a610b34a
commit: 548bcc10e83f30f5e93b795518e942a5a610b34a [28/28] sched: prctl() and 
cgroup interaction
:::::: branch date: 5 hours ago
:::::: commit date: 5 hours ago
config: ia64-randconfig-s031-20210419 (attached as .config)
compiler: ia64-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-330-g09ec74f6-dirty
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=548bcc10e83f30f5e93b795518e942a5a610b34a
        git remote add peterz-queue 
https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
        git fetch --no-tags peterz-queue sched/core-sched
        git checkout 548bcc10e83f30f5e93b795518e942a5a610b34a
        # 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=ia64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


sparse warnings: (new ones prefixed by >>)
>> kernel/sched/core_sched.c:325:23: sparse: sparse: context imbalance in 
>> '__sched_core_update_cookie' - wrong count at exit

vim +/__sched_core_update_cookie +325 kernel/sched/core_sched.c

fb3d61a5997e1c Peter Zijlstra 2021-03-26  274  
fb3d61a5997e1c Peter Zijlstra 2021-03-26  275  /*
fb3d61a5997e1c Peter Zijlstra 2021-03-26  276   * sched_core_update_cookie - 
Common helper to update a task's core cookie. This
fb3d61a5997e1c Peter Zijlstra 2021-03-26  277   * updates the selected cookie 
field.
fb3d61a5997e1c Peter Zijlstra 2021-03-26  278   * @p: The task whose cookie 
should be updated.
fb3d61a5997e1c Peter Zijlstra 2021-03-26  279   * @cookie: The new cookie.
fb3d61a5997e1c Peter Zijlstra 2021-03-26  280   * @cookie_type: The cookie 
field to which the cookie corresponds.
fb3d61a5997e1c Peter Zijlstra 2021-03-26  281   */
548bcc10e83f30 Peter Zijlstra 2021-03-31  282  static unsigned long 
__sched_core_update_cookie(struct task_struct *p,
548bcc10e83f30 Peter Zijlstra 2021-03-31  283                                   
        void **spare_fat,
548bcc10e83f30 Peter Zijlstra 2021-03-31  284                                   
        unsigned long cookie)
fb3d61a5997e1c Peter Zijlstra 2021-03-26  285  {
fb3d61a5997e1c Peter Zijlstra 2021-03-26  286   unsigned long old_cookie;
fb3d61a5997e1c Peter Zijlstra 2021-03-26  287   struct rq_flags rf;
fb3d61a5997e1c Peter Zijlstra 2021-03-26  288   struct rq *rq;
fb3d61a5997e1c Peter Zijlstra 2021-03-26  289   bool enqueued;
fb3d61a5997e1c Peter Zijlstra 2021-03-26  290  
548bcc10e83f30 Peter Zijlstra 2021-03-31  291   
raw_spin_lock_irqsave(&p->pi_lock, rf.flags);
548bcc10e83f30 Peter Zijlstra 2021-03-31  292  
548bcc10e83f30 Peter Zijlstra 2021-03-31  293   cookie = 
__sched_core_fat_cookie(p, spare_fat, cookie);
548bcc10e83f30 Peter Zijlstra 2021-03-31  294   if (!cookie_ptr(cookie))
548bcc10e83f30 Peter Zijlstra 2021-03-31  295           cookie = 0UL;
548bcc10e83f30 Peter Zijlstra 2021-03-31  296  
548bcc10e83f30 Peter Zijlstra 2021-03-31  297   rq = __task_rq_lock(p, &rf);
fb3d61a5997e1c Peter Zijlstra 2021-03-26  298  
fb3d61a5997e1c Peter Zijlstra 2021-03-26  299   /*
fb3d61a5997e1c Peter Zijlstra 2021-03-26  300    * Since creating a cookie 
implies sched_core_get(), and we cannot set
fb3d61a5997e1c Peter Zijlstra 2021-03-26  301    * a cookie until after we've 
created it, similarly, we cannot destroy
fb3d61a5997e1c Peter Zijlstra 2021-03-26  302    * a cookie until after we've 
removed it, we must have core scheduling
fb3d61a5997e1c Peter Zijlstra 2021-03-26  303    * enabled here.
fb3d61a5997e1c Peter Zijlstra 2021-03-26  304    */
fb3d61a5997e1c Peter Zijlstra 2021-03-26  305   SCHED_WARN_ON((p->core_cookie 
|| cookie) && !sched_core_enabled(rq));
fb3d61a5997e1c Peter Zijlstra 2021-03-26  306  
fb3d61a5997e1c Peter Zijlstra 2021-03-26  307   enqueued = 
sched_core_enqueued(p);
fb3d61a5997e1c Peter Zijlstra 2021-03-26  308   if (enqueued)
fb3d61a5997e1c Peter Zijlstra 2021-03-26  309           sched_core_dequeue(rq, 
p);
fb3d61a5997e1c Peter Zijlstra 2021-03-26  310  
fb3d61a5997e1c Peter Zijlstra 2021-03-26  311   old_cookie = p->core_cookie;
fb3d61a5997e1c Peter Zijlstra 2021-03-26  312   p->core_cookie = cookie;
fb3d61a5997e1c Peter Zijlstra 2021-03-26  313  
fb3d61a5997e1c Peter Zijlstra 2021-03-26  314   if (enqueued)
fb3d61a5997e1c Peter Zijlstra 2021-03-26  315           sched_core_enqueue(rq, 
p);
fb3d61a5997e1c Peter Zijlstra 2021-03-26  316  
fb3d61a5997e1c Peter Zijlstra 2021-03-26  317   /*
fb3d61a5997e1c Peter Zijlstra 2021-03-26  318    * If task is currently running 
, it may not be compatible anymore after
fb3d61a5997e1c Peter Zijlstra 2021-03-26  319    * the cookie change, so enter 
the scheduler on its CPU to schedule it
fb3d61a5997e1c Peter Zijlstra 2021-03-26  320    * away.
fb3d61a5997e1c Peter Zijlstra 2021-03-26  321    */
fb3d61a5997e1c Peter Zijlstra 2021-03-26  322   if (task_running(rq, p))
fb3d61a5997e1c Peter Zijlstra 2021-03-26  323           resched_curr(rq);
fb3d61a5997e1c Peter Zijlstra 2021-03-26  324  
fb3d61a5997e1c Peter Zijlstra 2021-03-26 @325   task_rq_unlock(rq, p, &rf);
fb3d61a5997e1c Peter Zijlstra 2021-03-26  326  
fb3d61a5997e1c Peter Zijlstra 2021-03-26  327   return old_cookie;
fb3d61a5997e1c Peter Zijlstra 2021-03-26  328  }
fb3d61a5997e1c Peter Zijlstra 2021-03-26  329  

:::::: The code at line 325 was first introduced by commit
:::::: fb3d61a5997e1c813d47eae9bfebfc384863ab20 sched: Trivial core scheduling 
cookie management

:::::: TO: Peter Zijlstra <[email protected]>
:::::: CC: Peter Zijlstra <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to