All of lore.kernel.org
 help / color / mirror / Atom feed
* [peterz-queue:sched/core-sched 21/24] kernel/sched/core_sched.c:90:23: sparse: sparse: context imbalance in 'sched_core_update_cookie' - wrong count at exit
@ 2021-04-22 21:49 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-04-22 21:49 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
TO: Peter Zijlstra <peterz@infradead.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/core-sched
head:   91ad025e6e8298578bf02fcb43e67b6b5fc4ce51
commit: 4ab9f5a371fdbaa0ece644ee83c06d551f2b7645 [21/24] sched: Trivial core scheduling cookie management
:::::: branch date: 9 hours ago
:::::: commit date: 9 hours ago
config: powerpc64-randconfig-s032-20210421 (attached as .config)
compiler: powerpc64le-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/peterz/queue.git/commit/?id=4ab9f5a371fdbaa0ece644ee83c06d551f2b7645
        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 4ab9f5a371fdbaa0ece644ee83c06d551f2b7645
        # 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=powerpc64 

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 >>)
>> kernel/sched/core_sched.c:90:23: sparse: sparse: context imbalance in 'sched_core_update_cookie' - wrong count at exit

vim +/sched_core_update_cookie +90 kernel/sched/core_sched.c

4ab9f5a371fdba Peter Zijlstra 2021-03-26  44  
4ab9f5a371fdba Peter Zijlstra 2021-03-26  45  /*
4ab9f5a371fdba Peter Zijlstra 2021-03-26  46   * sched_core_update_cookie - replace the cookie on a task
4ab9f5a371fdba Peter Zijlstra 2021-03-26  47   * @p: the task to update
4ab9f5a371fdba Peter Zijlstra 2021-03-26  48   * @cookie: the new cookie
4ab9f5a371fdba Peter Zijlstra 2021-03-26  49   *
4ab9f5a371fdba Peter Zijlstra 2021-03-26  50   * Effectively exchange the task cookie; caller is responsible for lifetimes on
4ab9f5a371fdba Peter Zijlstra 2021-03-26  51   * both ends.
4ab9f5a371fdba Peter Zijlstra 2021-03-26  52   *
4ab9f5a371fdba Peter Zijlstra 2021-03-26  53   * Returns: the old cookie
4ab9f5a371fdba Peter Zijlstra 2021-03-26  54   */
4ab9f5a371fdba Peter Zijlstra 2021-03-26  55  unsigned long sched_core_update_cookie(struct task_struct *p, unsigned long cookie)
4ab9f5a371fdba Peter Zijlstra 2021-03-26  56  {
4ab9f5a371fdba Peter Zijlstra 2021-03-26  57  	unsigned long old_cookie;
4ab9f5a371fdba Peter Zijlstra 2021-03-26  58  	struct rq_flags rf;
4ab9f5a371fdba Peter Zijlstra 2021-03-26  59  	struct rq *rq;
4ab9f5a371fdba Peter Zijlstra 2021-03-26  60  	bool enqueued;
4ab9f5a371fdba Peter Zijlstra 2021-03-26  61  
4ab9f5a371fdba Peter Zijlstra 2021-03-26  62  	rq = task_rq_lock(p, &rf);
4ab9f5a371fdba Peter Zijlstra 2021-03-26  63  
4ab9f5a371fdba Peter Zijlstra 2021-03-26  64  	/*
4ab9f5a371fdba Peter Zijlstra 2021-03-26  65  	 * Since creating a cookie implies sched_core_get(), and we cannot set
4ab9f5a371fdba Peter Zijlstra 2021-03-26  66  	 * a cookie until after we've created it, similarly, we cannot destroy
4ab9f5a371fdba Peter Zijlstra 2021-03-26  67  	 * a cookie until after we've removed it, we must have core scheduling
4ab9f5a371fdba Peter Zijlstra 2021-03-26  68  	 * enabled here.
4ab9f5a371fdba Peter Zijlstra 2021-03-26  69  	 */
4ab9f5a371fdba Peter Zijlstra 2021-03-26  70  	SCHED_WARN_ON((p->core_cookie || cookie) && !sched_core_enabled(rq));
4ab9f5a371fdba Peter Zijlstra 2021-03-26  71  
4ab9f5a371fdba Peter Zijlstra 2021-03-26  72  	enqueued = sched_core_enqueued(p);
4ab9f5a371fdba Peter Zijlstra 2021-03-26  73  	if (enqueued)
4ab9f5a371fdba Peter Zijlstra 2021-03-26  74  		sched_core_dequeue(rq, p);
4ab9f5a371fdba Peter Zijlstra 2021-03-26  75  
4ab9f5a371fdba Peter Zijlstra 2021-03-26  76  	old_cookie = p->core_cookie;
4ab9f5a371fdba Peter Zijlstra 2021-03-26  77  	p->core_cookie = cookie;
4ab9f5a371fdba Peter Zijlstra 2021-03-26  78  
4ab9f5a371fdba Peter Zijlstra 2021-03-26  79  	if (enqueued)
4ab9f5a371fdba Peter Zijlstra 2021-03-26  80  		sched_core_enqueue(rq, p);
4ab9f5a371fdba Peter Zijlstra 2021-03-26  81  
4ab9f5a371fdba Peter Zijlstra 2021-03-26  82  	/*
4ab9f5a371fdba Peter Zijlstra 2021-03-26  83  	 * If task is currently running, it may not be compatible anymore after
4ab9f5a371fdba Peter Zijlstra 2021-03-26  84  	 * the cookie change, so enter the scheduler on its CPU to schedule it
4ab9f5a371fdba Peter Zijlstra 2021-03-26  85  	 * away.
4ab9f5a371fdba Peter Zijlstra 2021-03-26  86  	 */
4ab9f5a371fdba Peter Zijlstra 2021-03-26  87  	if (task_running(rq, p))
4ab9f5a371fdba Peter Zijlstra 2021-03-26  88  		resched_curr(rq);
4ab9f5a371fdba Peter Zijlstra 2021-03-26  89  
4ab9f5a371fdba Peter Zijlstra 2021-03-26 @90  	task_rq_unlock(rq, p, &rf);
4ab9f5a371fdba Peter Zijlstra 2021-03-26  91  
4ab9f5a371fdba Peter Zijlstra 2021-03-26  92  	return old_cookie;
4ab9f5a371fdba Peter Zijlstra 2021-03-26  93  }
4ab9f5a371fdba Peter Zijlstra 2021-03-26  94  

---
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: 20911 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-04-22 21:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-22 21:49 [peterz-queue:sched/core-sched 21/24] kernel/sched/core_sched.c:90:23: sparse: sparse: context imbalance in 'sched_core_update_cookie' - wrong count at exit 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.