Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1736630

Re: native_smp_send_reschedule() splat from rt_mutex_lock()?

From Peter Zijlstra <peterz@infradead.org>
Newsgroups linux.kernel
Subject Re: native_smp_send_reschedule() splat from rt_mutex_lock()?
Date 2017-09-21 14:50 +0200
Message-ID <us95w-13h-5@gated-at.bofh.it> (permalink)
References <ur7yO-mI-17@gated-at.bofh.it> <urQ2S-5so-11@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On Wed, Sep 20, 2017 at 06:24:47PM +0200, Sebastian Andrzej Siewior wrote:
> On 2017-09-18 09:51:10 [-0700], Paul E. McKenney wrote:
> > Hello!
> Hi,
> 
> > [11072.586518] sched: Unexpected reschedule of offline CPU#6!
> > [11072.587578] ------------[ cut here ]------------
> > [11072.588563] WARNING: CPU: 0 PID: 59 at /home/paulmck/public_git/linux-rcu/arch/x86/kernel/smp.c:128 native_smp_send_reschedule+0x37/0x40
> > [11072.591543] Modules linked in:
> > [11072.591543] CPU: 0 PID: 59 Comm: rcub/10 Not tainted 4.14.0-rc1+ #1
> > [11072.610596] Call Trace:
> > [11072.611531]  resched_curr+0x61/0xd0
> > [11072.611531]  switched_to_rt+0x8f/0xa0
> > [11072.612647]  rt_mutex_setprio+0x25c/0x410
> > [11072.613591]  task_blocks_on_rt_mutex+0x1b3/0x1f0
> > [11072.614601]  rt_mutex_slowlock+0xa9/0x1e0
> > [11072.615567]  rt_mutex_lock+0x29/0x30
> > [11072.615567]  rcu_boost_kthread+0x127/0x3c0
> 
> > In theory, I could work around this by excluding CPU-hotplug operations
> > while doing RCU priority boosting, but in practice I am very much hoping
> > that there is a more reasonable solution out there...
> 
> so in CPUHP_TEARDOWN_CPU / take_cpu_down() / __cpu_disable() the CPU is
> marked as offline and interrupt handling is disabled. Later in
> CPUHP_AP_SCHED_STARTING / sched_cpu_dying() all tasks are migrated away.
> 
> Did this hit a random task during a CPU-hotplug operation which was not
> yet migrated away from the dying CPU? In theory a futex_unlock() of a RT
> task could also produce such a backtrace.

So this is an interrupt that got received while we were going down, and
processed after we've migrated the tasks away, right?

Should we not clear the IRQ pending masks somewhere along the line?

Other than that, there's nothing we can do to avoid this race.

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

native_smp_send_reschedule() splat from rt_mutex_lock()? "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-09-18 19:00 +0200
  Re: native_smp_send_reschedule() splat from rt_mutex_lock()? Sebastian Andrzej Siewior <bigeasy@linutronix.de> - 2017-09-20 18:30 +0200
    Re: native_smp_send_reschedule() splat from rt_mutex_lock()? "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> - 2017-09-20 21:50 +0200
    Re: native_smp_send_reschedule() splat from rt_mutex_lock()? Peter Zijlstra <peterz@infradead.org> - 2017-09-21 14:50 +0200
      Re: native_smp_send_reschedule() splat from rt_mutex_lock()? Sebastian Andrzej Siewior <bigeasy@linutronix.de> - 2017-09-21 15:30 +0200

csiph-web