All of lore.kernel.org
 help / color / mirror / Atom feed
* [chrome-os:chromeos-5.4 19643/20381] kernel/sched/rt.c:2146:36: sparse: sparse: context imbalance in 'pull_rt_task' - unexpected unlock
@ 2020-11-19 20:11 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-11-19 20:11 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
TO: cros-kernel-buildreports(a)googlegroups.com
TO: Guenter Roeck <groeck@google.com>

tree:   https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-5.4
head:   b125f54b0e590d1c99581ddd6d9fbb09d375217e
commit: cfd78171703824626eaffd18de9c0c0bba0698d8 [19643/20381] CHROMIUM: Merge 'v5.4.73' into chromeos-5.4
:::::: branch date: 4 hours ago
:::::: commit date: 3 weeks ago
config: ia64-randconfig-s031-20201119 (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-123-g626c4742-dirty
        git remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel
        git fetch --no-tags chrome-os chromeos-5.4
        git checkout cfd78171703824626eaffd18de9c0c0bba0698d8
        # 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=ia64 

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/rt.c: note: in included file (through arch/ia64/include/uapi/asm/unistd.h, arch/ia64/include/asm/unistd.h, include/uapi/linux/unistd.h, ...):
   ./arch/ia64/include/generated/uapi/asm/unistd_64.h:348:39: sparse: sparse: no newline at end of file
   kernel/sched/rt.c:1717:9: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct sched_domain *[assigned] sd @@     got struct sched_domain [noderef] <asn:4> *parent @@
   kernel/sched/rt.c:1717:9: sparse:     expected struct sched_domain *[assigned] sd
   kernel/sched/rt.c:1717:9: sparse:     got struct sched_domain [noderef] <asn:4> *parent
   kernel/sched/rt.c:1782:40: sparse: sparse: context imbalance in 'find_lock_lowest_rq' - unexpected unlock
   kernel/sched/rt.c: note: in included file:
   kernel/sched/sched.h:2234:17: sparse: sparse: context imbalance in 'push_rt_task' - unexpected unlock
>> kernel/sched/rt.c:2146:36: sparse: sparse: context imbalance in 'pull_rt_task' - unexpected unlock

vim +/pull_rt_task +2146 kernel/sched/rt.c

b6366f048e0caff kernel/sched/rt.c Steven Rostedt  2015-03-18  2123  
c6c4927b22a3514 kernel/sched_rt.c Rusty Russell   2008-11-25  2124  	for_each_cpu(cpu, this_rq->rd->rto_mask) {
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2125  		if (this_cpu == cpu)
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2126  			continue;
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2127  
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2128  		src_rq = cpu_rq(cpu);
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2129  
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2130  		/*
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2131  		 * Don't bother taking the src_rq->lock if the next highest
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2132  		 * task is known to be lower-priority than our current task.
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2133  		 * This may look racy, but if this value is about to go
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2134  		 * logically higher, the src_rq will push this task away.
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2135  		 * And if its going logically lower, we do not care
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2136  		 */
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2137  		if (src_rq->rt.highest_prio.next >=
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2138  		    this_rq->rt.highest_prio.curr)
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2139  			continue;
74ab8e4f6412c0b kernel/sched_rt.c Gregory Haskins 2008-12-29  2140  
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2141  		/*
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2142  		 * We can potentially drop this_rq's lock in
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2143  		 * double_lock_balance, and another CPU could
a8728944efe2341 kernel/sched_rt.c Gregory Haskins 2008-12-29  2144  		 * alter this_rq
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2145  		 */
a8728944efe2341 kernel/sched_rt.c Gregory Haskins 2008-12-29 @2146  		double_lock_balance(this_rq, src_rq);
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2147  
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2148  		/*
e23ee74777f3893 kernel/sched/rt.c Kirill Tkhai    2013-06-07  2149  		 * We can pull only a task, which is pushable
e23ee74777f3893 kernel/sched/rt.c Kirill Tkhai    2013-06-07  2150  		 * on its rq, and no others.
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2151  		 */
e23ee74777f3893 kernel/sched/rt.c Kirill Tkhai    2013-06-07  2152  		p = pick_highest_pushable_task(src_rq, this_cpu);
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2153  
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2154  		/*
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2155  		 * Do we have an RT task that preempts
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2156  		 * the to-be-scheduled task?
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2157  		 */
a8728944efe2341 kernel/sched_rt.c Gregory Haskins 2008-12-29  2158  		if (p && (p->prio < this_rq->rt.highest_prio.curr)) {
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2159  			WARN_ON(p == src_rq->curr);
da0c1e65b51a289 kernel/sched/rt.c Kirill Tkhai    2014-08-20  2160  			WARN_ON(!task_on_rq_queued(p));
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2161  
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2162  			/*
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2163  			 * There's a chance that p is higher in priority
97fb7a0a8944bd6 kernel/sched/rt.c Ingo Molnar     2018-03-03  2164  			 * than what's currently running on its CPU.
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2165  			 * This is just that p is wakeing up and hasn't
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2166  			 * had a chance to schedule. We only pull
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2167  			 * p if it is lower in priority than the
a8728944efe2341 kernel/sched_rt.c Gregory Haskins 2008-12-29  2168  			 * current task on the run queue
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2169  			 */
a8728944efe2341 kernel/sched_rt.c Gregory Haskins 2008-12-29  2170  			if (p->prio < src_rq->curr->prio)
614ee1f61f667b0 kernel/sched_rt.c Mike Galbraith  2008-01-25  2171  				goto skip;
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2172  
8046d6806247088 kernel/sched/rt.c Peter Zijlstra  2015-06-11  2173  			resched = true;
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2174  
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2175  			deactivate_task(src_rq, p, 0);
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2176  			set_task_cpu(p, this_cpu);
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2177  			activate_task(this_rq, p, 0);
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2178  			/*
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2179  			 * We continue with the search, just in
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2180  			 * case there's an even higher prio task
25985edcedea639 kernel/sched_rt.c Lucas De Marchi 2011-03-30  2181  			 * in another runqueue. (low likelihood
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2182  			 * but possible)
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2183  			 */
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2184  		}
614ee1f61f667b0 kernel/sched_rt.c Mike Galbraith  2008-01-25  2185  skip:
1b12bbc747560ea kernel/sched_rt.c Peter Zijlstra  2008-08-11  2186  		double_unlock_balance(this_rq, src_rq);
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2187  	}
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2188  
8046d6806247088 kernel/sched/rt.c Peter Zijlstra  2015-06-11  2189  	if (resched)
8046d6806247088 kernel/sched/rt.c Peter Zijlstra  2015-06-11  2190  		resched_curr(this_rq);
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2191  }
f65eda4f789168b kernel/sched_rt.c Steven Rostedt  2008-01-25  2192  

:::::: The code at line 2146 was first introduced by commit
:::::: a8728944efe23417e38bf22063f06d9d8ee21d59 sched: use highest_prio.curr for pull threshold

:::::: TO: Gregory Haskins <ghaskins@novell.com>
:::::: CC: Gregory Haskins <ghaskins@novell.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: 25001 bytes --]

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

only message in thread, other threads:[~2020-11-19 20:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-11-19 20:11 [chrome-os:chromeos-5.4 19643/20381] kernel/sched/rt.c:2146:36: sparse: sparse: context imbalance in 'pull_rt_task' - unexpected unlock 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.