All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [luto:x86/membarrier 4/8] kernel/sched/core.c:4226:51: error: macro "switch_mm" requires 3 arguments, but only 1 given
@ 2021-06-17  3:53 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-06-17  3:53 UTC (permalink / raw
  To: kbuild-all

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git x86/membarrier
head:   df3b012fb56f54e581492d7ec053e36d4eacfabc
commit: 77bac12bb7899853f4a19463b7e7ab1a7652666e [4/8] membarrier: Make the post-switch-mm barrier explicit
config: alpha-randconfig-s031-20210617 (attached as .config)
compiler: alpha-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/luto/linux.git/commit/?id=77bac12bb7899853f4a19463b7e7ab1a7652666e
        git remote add luto https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git
        git fetch --no-tags luto x86/membarrier
        git checkout 77bac12bb7899853f4a19463b7e7ab1a7652666e
        # 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=alpha 

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

All errors (new ones prefixed by >>):

   kernel/sched/core.c: In function 'ttwu_stat':
   kernel/sched/core.c:2916:13: warning: variable 'rq' set but not used [-Wunused-but-set-variable]
    2916 |  struct rq *rq;
         |             ^~
   kernel/sched/core.c: In function 'finish_task_switch':
   kernel/sched/core.c:4225:5: error: 'If' undeclared (first use in this function)
    4225 |   * If an architecture needs to take a specific action for
         |     ^~
   kernel/sched/core.c:4225:5: note: each undeclared identifier is reported only once for each function it appears in
   kernel/sched/core.c:4225:7: error: expected ';' before 'an'
    4225 |   * If an architecture needs to take a specific action for
         |       ^~~
         |       ;
>> kernel/sched/core.c:4226:51: error: macro "switch_mm" requires 3 arguments, but only 1 given
    4226 |   * SYNC_CORE, it can do so in switch_mm_irqs_off().
         |                                                   ^
   In file included from include/linux/mmu_context.h:5,
                    from kernel/sched/sched.h:55,
                    from kernel/sched/core.c:13:
   arch/alpha/include/asm/mmu_context.h:225: note: macro "switch_mm" defined here
     225 | #  define switch_mm(a,b,c) ev5_switch_mm((a),(b),(c))
         | 
   kernel/sched/core.c:4174:20: warning: unused variable 'mm' [-Wunused-variable]
    4174 |  struct mm_struct *mm = rq->prev_mm;
         |                    ^~


vim +/switch_mm +4226 kernel/sched/core.c

4866cde064afbb kernel/sched.c      Nicholas Piggin     2005-06-25  4150  
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4151  /**
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4152   * finish_task_switch - clean up after a task-switch
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4153   * @prev: the thread we just switched away from.
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4154   *
4866cde064afbb kernel/sched.c      Nicholas Piggin     2005-06-25  4155   * finish_task_switch must be called after the context switch, paired
4866cde064afbb kernel/sched.c      Nicholas Piggin     2005-06-25  4156   * with a prepare_task_switch call before the context switch.
4866cde064afbb kernel/sched.c      Nicholas Piggin     2005-06-25  4157   * finish_task_switch will reconcile locking set up by prepare_task_switch,
4866cde064afbb kernel/sched.c      Nicholas Piggin     2005-06-25  4158   * and do any other architecture-specific cleanup actions.
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4159   *
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4160   * Note that we may have delayed dropping an mm in context_switch(). If
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4161   * so, we finish that here outside of the runqueue lock. (Doing it
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4162   * with the lock held can cause deadlocks; see schedule() for
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4163   * details.)
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov       2014-10-09  4164   *
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov       2014-10-09  4165   * The context switch have flipped the stack from under us and restored the
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov       2014-10-09  4166   * local variables which were saved when this task called schedule() in the
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov       2014-10-09  4167   * past. prev == current is still correct but we need to recalculate this_rq
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov       2014-10-09  4168   * because prev may have moved to another CPU.
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4169   */
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov       2014-10-09  4170  static struct rq *finish_task_switch(struct task_struct *prev)
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4171  	__releases(rq->lock)
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4172  {
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov       2014-10-09  4173  	struct rq *rq = this_rq();
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4174  	struct mm_struct *mm = rq->prev_mm;
55a101f8f71a3d kernel/sched.c      Oleg Nesterov       2006-09-29  4175  	long prev_state;
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4176  
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4177  	/*
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4178  	 * The previous task will have left us with a preempt_count of 2
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4179  	 * because it left us after:
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4180  	 *
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4181  	 *	schedule()
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4182  	 *	  preempt_disable();			// 1
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4183  	 *	  __schedule()
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4184  	 *	    raw_spin_lock_irq(&rq->lock)	// 2
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4185  	 *
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4186  	 * Also, see FORK_PREEMPT_COUNT.
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4187  	 */
e2bf1c4b17aff2 kernel/sched/core.c Peter Zijlstra      2015-09-29  4188  	if (WARN_ONCE(preempt_count() != 2*PREEMPT_DISABLE_OFFSET,
e2bf1c4b17aff2 kernel/sched/core.c Peter Zijlstra      2015-09-29  4189  		      "corrupted preempt_count: %s/%d/0x%x\n",
e2bf1c4b17aff2 kernel/sched/core.c Peter Zijlstra      2015-09-29  4190  		      current->comm, current->pid, preempt_count()))
e2bf1c4b17aff2 kernel/sched/core.c Peter Zijlstra      2015-09-29  4191  		preempt_count_set(FORK_PREEMPT_COUNT);
609ca066386b2e kernel/sched/core.c Peter Zijlstra      2015-09-28  4192  
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4193  	rq->prev_mm = NULL;
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4194  
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4195  	/*
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4196  	 * A task struct has one reference for the use as "current".
c394cc9fbb367f kernel/sched.c      Oleg Nesterov       2006-09-29  4197  	 * If a task dies, then it sets TASK_DEAD in tsk->state and calls
55a101f8f71a3d kernel/sched.c      Oleg Nesterov       2006-09-29  4198  	 * schedule one last time. The schedule call will never return, and
55a101f8f71a3d kernel/sched.c      Oleg Nesterov       2006-09-29  4199  	 * the scheduled task must drop that reference.
95913d97914f44 kernel/sched/core.c Peter Zijlstra      2015-09-29  4200  	 *
95913d97914f44 kernel/sched/core.c Peter Zijlstra      2015-09-29  4201  	 * We must observe prev->state before clearing prev->on_cpu (in
31cb1bc0dc9488 kernel/sched/core.c rodrigosiqueira     2017-12-15  4202  	 * finish_task), otherwise a concurrent wakeup can get prev
95913d97914f44 kernel/sched/core.c Peter Zijlstra      2015-09-29  4203  	 * running on another CPU and we could rave with its RUNNING -> DEAD
95913d97914f44 kernel/sched/core.c Peter Zijlstra      2015-09-29  4204  	 * transition, resulting in a double drop.
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4205  	 */
55a101f8f71a3d kernel/sched.c      Oleg Nesterov       2006-09-29  4206  	prev_state = prev->state;
bf9fae9f5e4ca8 kernel/sched/core.c Frederic Weisbecker 2012-09-08  4207  	vtime_task_switch(prev);
a8d757ef076f0f kernel/sched.c      Stephane Eranian    2011-08-25  4208  	perf_event_task_sched_in(prev, current);
31cb1bc0dc9488 kernel/sched/core.c rodrigosiqueira     2017-12-15  4209  	finish_task(prev);
31cb1bc0dc9488 kernel/sched/core.c rodrigosiqueira     2017-12-15  4210  	finish_lock_switch(rq);
01f23e1630d944 kernel/sched/core.c Catalin Marinas     2011-11-27  4211  	finish_arch_post_lock_switch();
0ed557aa813922 kernel/sched/core.c Mark Rutland        2018-06-14  4212  	kcov_finish_switch(current);
5fbda3ecd14a53 kernel/sched/core.c Thomas Gleixner     2020-11-18  4213  	/*
5fbda3ecd14a53 kernel/sched/core.c Thomas Gleixner     2020-11-18  4214  	 * kmap_local_sched_out() is invoked with rq::lock held and
5fbda3ecd14a53 kernel/sched/core.c Thomas Gleixner     2020-11-18  4215  	 * interrupts disabled. There is no requirement for that, but the
5fbda3ecd14a53 kernel/sched/core.c Thomas Gleixner     2020-11-18  4216  	 * sched out code does not have an interrupt enabled section.
5fbda3ecd14a53 kernel/sched/core.c Thomas Gleixner     2020-11-18  4217  	 * Restoring the maps on sched in does not require interrupts being
5fbda3ecd14a53 kernel/sched/core.c Thomas Gleixner     2020-11-18  4218  	 * disabled either.
5fbda3ecd14a53 kernel/sched/core.c Thomas Gleixner     2020-11-18  4219  	 */
5fbda3ecd14a53 kernel/sched/core.c Thomas Gleixner     2020-11-18  4220  	kmap_local_sched_in();
e8fa136262e112 kernel/sched.c      Steven Rostedt      2008-01-25  4221  
e107be36efb2a2 kernel/sched.c      Avi Kivity          2007-07-26  4222  	fire_sched_in_preempt_notifiers(current);
9f81d011fbe6ff kernel/sched/core.c Andy Lutomirski     2020-12-02  4223  
70216e18e519a5 kernel/sched/core.c Mathieu Desnoyers   2018-01-29  4224  	 *
9f81d011fbe6ff kernel/sched/core.c Andy Lutomirski     2020-12-02 @4225  	 * If an architecture needs to take a specific action for
9f81d011fbe6ff kernel/sched/core.c Andy Lutomirski     2020-12-02 @4226  	 * SYNC_CORE, it can do so in switch_mm_irqs_off().
9f81d011fbe6ff kernel/sched/core.c Andy Lutomirski     2020-12-02  4227  	if (mm)
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4228  		mmdrop(mm);
9f81d011fbe6ff kernel/sched/core.c Andy Lutomirski     2020-12-02  4229  
1cef1150ef40ec kernel/sched/core.c Peter Zijlstra      2018-06-07  4230  	if (unlikely(prev_state == TASK_DEAD)) {
e6c390f2dfd04c kernel/sched/core.c Dario Faggioli      2013-11-07  4231  		if (prev->sched_class->task_dead)
e6c390f2dfd04c kernel/sched/core.c Dario Faggioli      2013-11-07  4232  			prev->sched_class->task_dead(prev);
e6c390f2dfd04c kernel/sched/core.c Dario Faggioli      2013-11-07  4233  
c6fd91f0bdcd29 kernel/sched.c      bibo mao            2006-03-26  4234  		/*
c6fd91f0bdcd29 kernel/sched.c      bibo mao            2006-03-26  4235  		 * Remove function-return probe instances associated with this
c6fd91f0bdcd29 kernel/sched.c      bibo mao            2006-03-26  4236  		 * task and put them back on the free list.
c6fd91f0bdcd29 kernel/sched.c      bibo mao            2006-03-26  4237  		 */
c6fd91f0bdcd29 kernel/sched.c      bibo mao            2006-03-26  4238  		kprobe_flush_task(prev);
68f24b08ee892d kernel/sched/core.c Andy Lutomirski     2016-09-15  4239  
68f24b08ee892d kernel/sched/core.c Andy Lutomirski     2016-09-15  4240  		/* Task is done with its stack. */
68f24b08ee892d kernel/sched/core.c Andy Lutomirski     2016-09-15  4241  		put_task_stack(prev);
68f24b08ee892d kernel/sched/core.c Andy Lutomirski     2016-09-15  4242  
0ff7b2cfbae36e kernel/sched/core.c Eric W. Biederman   2019-09-14  4243  		put_task_struct_rcu_user(prev);
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4244  	}
99e5ada9407cc1 kernel/sched/core.c Frederic Weisbecker 2013-04-20  4245  
de734f89b67c2d kernel/sched/core.c Frederic Weisbecker 2015-06-11  4246  	tick_nohz_task_switch();
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov       2014-10-09  4247  	return rq;
c6fd91f0bdcd29 kernel/sched.c      bibo mao            2006-03-26  4248  }
^1da177e4c3f41 kernel/sched.c      Linus Torvalds      2005-04-16  4249  

:::::: The code at line 4226 was first introduced by commit
:::::: 9f81d011fbe6ff333c5a68e317d7ed7835db699d x86/mm: Handle unlazying membarrier core sync in the arch code

:::::: TO: Andy Lutomirski <luto@kernel.org>
:::::: CC: Andy Lutomirski <luto@kernel.org>

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

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

only message in thread, other threads:[~2021-06-17  3:53 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-17  3:53 [luto:x86/membarrier 4/8] kernel/sched/core.c:4226:51: error: macro "switch_mm" requires 3 arguments, but only 1 given 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.