* [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.