CC: [email protected] CC: [email protected] TO: Peter Zijlstra <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 6e764bcd1cf72a2846c0e53d3975a09b242c04c9 commit: 6e33cad0af49336952e5541464bd02f5b5fd433e sched: Trivial core scheduling cookie management date: 4 months ago :::::: branch date: 19 hours ago :::::: commit date: 4 months ago config: ia64-randconfig-s031-20210825 (attached as .config) compiler: ia64-linux-gcc (GCC) 11.2.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-348-gf0e6938b-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6e33cad0af49336952e5541464bd02f5b5fd433e git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 6e33cad0af49336952e5541464bd02f5b5fd433e # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=ia64 SHELL=/bin/bash kernel/sched/ 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: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 6e33cad0af4933 Peter Zijlstra 2021-03-26 44 6e33cad0af4933 Peter Zijlstra 2021-03-26 45 /* 6e33cad0af4933 Peter Zijlstra 2021-03-26 46 * sched_core_update_cookie - replace the cookie on a task 6e33cad0af4933 Peter Zijlstra 2021-03-26 47 * @p: the task to update 6e33cad0af4933 Peter Zijlstra 2021-03-26 48 * @cookie: the new cookie 6e33cad0af4933 Peter Zijlstra 2021-03-26 49 * 6e33cad0af4933 Peter Zijlstra 2021-03-26 50 * Effectively exchange the task cookie; caller is responsible for lifetimes on 6e33cad0af4933 Peter Zijlstra 2021-03-26 51 * both ends. 6e33cad0af4933 Peter Zijlstra 2021-03-26 52 * 6e33cad0af4933 Peter Zijlstra 2021-03-26 53 * Returns: the old cookie 6e33cad0af4933 Peter Zijlstra 2021-03-26 54 */ 6e33cad0af4933 Peter Zijlstra 2021-03-26 55 unsigned long sched_core_update_cookie(struct task_struct *p, unsigned long cookie) 6e33cad0af4933 Peter Zijlstra 2021-03-26 56 { 6e33cad0af4933 Peter Zijlstra 2021-03-26 57 unsigned long old_cookie; 6e33cad0af4933 Peter Zijlstra 2021-03-26 58 struct rq_flags rf; 6e33cad0af4933 Peter Zijlstra 2021-03-26 59 struct rq *rq; 6e33cad0af4933 Peter Zijlstra 2021-03-26 60 bool enqueued; 6e33cad0af4933 Peter Zijlstra 2021-03-26 61 6e33cad0af4933 Peter Zijlstra 2021-03-26 62 rq = task_rq_lock(p, &rf); 6e33cad0af4933 Peter Zijlstra 2021-03-26 63 6e33cad0af4933 Peter Zijlstra 2021-03-26 64 /* 6e33cad0af4933 Peter Zijlstra 2021-03-26 65 * Since creating a cookie implies sched_core_get(), and we cannot set 6e33cad0af4933 Peter Zijlstra 2021-03-26 66 * a cookie until after we've created it, similarly, we cannot destroy 6e33cad0af4933 Peter Zijlstra 2021-03-26 67 * a cookie until after we've removed it, we must have core scheduling 6e33cad0af4933 Peter Zijlstra 2021-03-26 68 * enabled here. 6e33cad0af4933 Peter Zijlstra 2021-03-26 69 */ 6e33cad0af4933 Peter Zijlstra 2021-03-26 70 SCHED_WARN_ON((p->core_cookie || cookie) && !sched_core_enabled(rq)); 6e33cad0af4933 Peter Zijlstra 2021-03-26 71 6e33cad0af4933 Peter Zijlstra 2021-03-26 72 enqueued = sched_core_enqueued(p); 6e33cad0af4933 Peter Zijlstra 2021-03-26 73 if (enqueued) 6e33cad0af4933 Peter Zijlstra 2021-03-26 74 sched_core_dequeue(rq, p); 6e33cad0af4933 Peter Zijlstra 2021-03-26 75 6e33cad0af4933 Peter Zijlstra 2021-03-26 76 old_cookie = p->core_cookie; 6e33cad0af4933 Peter Zijlstra 2021-03-26 77 p->core_cookie = cookie; 6e33cad0af4933 Peter Zijlstra 2021-03-26 78 6e33cad0af4933 Peter Zijlstra 2021-03-26 79 if (enqueued) 6e33cad0af4933 Peter Zijlstra 2021-03-26 80 sched_core_enqueue(rq, p); 6e33cad0af4933 Peter Zijlstra 2021-03-26 81 6e33cad0af4933 Peter Zijlstra 2021-03-26 82 /* 6e33cad0af4933 Peter Zijlstra 2021-03-26 83 * If task is currently running, it may not be compatible anymore after 6e33cad0af4933 Peter Zijlstra 2021-03-26 84 * the cookie change, so enter the scheduler on its CPU to schedule it 6e33cad0af4933 Peter Zijlstra 2021-03-26 85 * away. 6e33cad0af4933 Peter Zijlstra 2021-03-26 86 */ 6e33cad0af4933 Peter Zijlstra 2021-03-26 87 if (task_running(rq, p)) 6e33cad0af4933 Peter Zijlstra 2021-03-26 88 resched_curr(rq); 6e33cad0af4933 Peter Zijlstra 2021-03-26 89 6e33cad0af4933 Peter Zijlstra 2021-03-26 @90 task_rq_unlock(rq, p, &rf); 6e33cad0af4933 Peter Zijlstra 2021-03-26 91 6e33cad0af4933 Peter Zijlstra 2021-03-26 92 return old_cookie; 6e33cad0af4933 Peter Zijlstra 2021-03-26 93 } 6e33cad0af4933 Peter Zijlstra 2021-03-26 94 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
