From: Peter Zijlstra <peterz@infradead.org>
To: Mike Galbraith <efault@gmx.de>
Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>,
Thomas Gleixner <tglx@linutronix.de>,
LKML <linux-kernel@vger.kernel.org>,
linux-rt-users <linux-rt-users@vger.kernel.org>,
Steven Rostedt <rostedt@goodmis.org>
Subject: Re: [rt-patch 3/3] arm, KVM: convert vgic_irq.irq_lock to raw_spinlock_t
Date: Mon, 30 Jul 2018 11:27:28 +0200 [thread overview]
Message-ID: <20180730092728.GE2494@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <1532768853.9882.73.camel@gmx.de>
On Sat, Jul 28, 2018 at 11:07:33AM +0200, Mike Galbraith wrote:
>
> b103cc3f10c0 ("KVM: arm/arm64: Avoid timer save/restore in vcpu entry/exit")
> requires vgic_irq.irq_lock be converted to raw_spinlock_t.
>
> Problem: kvm_preempt_ops.sched_in = kvm_sched_in;
> kvm_sched_in()
> kvm_arch_vcpu_load()
> kvm_timer_vcpu_load() <- b103cc3f10c0 addition
> kvm_timer_vcpu_load_gic()
> kvm_vgic_map_is_active()
> spin_lock_irqsave(&irq->irq_lock, flags);
>
> Quoting virt/kvm/arm/vgic/vgic.c, locking order is...
>
> kvm->lock (mutex)
> its->cmd_lock (mutex)
> its->its_lock (mutex)
> vgic_cpu->ap_list_lock must be taken with IRQs disabled
> kvm->lpi_list_lock must be taken with IRQs disabled
> vgic_irq->irq_lock must be taken with IRQs disabled
>
> ...meaning vgic_dist.lpi_list_lock and vgic_cpu.ap_list_lock must be
> converted as well.
The thing missing from the Changelog is the analysis that all the work
done under these locks is indeed properly bounded and cannot cause
excessive latencies.
next prev parent reply other threads:[~2018-07-30 9:27 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-27 21:57 [ANNOUNCE] v4.16.18-rt11 Sebastian Andrzej Siewior
2018-07-28 9:07 ` candidates for @devel-rt localversion-rt++ Mike Galbraith
2018-07-28 9:13 ` [rt-patch 1/3] arm64/acpi/perf: move pmu allocation to an early CPU up hook Mike Galbraith
2018-08-02 13:45 ` [rt-patch 1/3 v2] " Mike Galbraith
2018-07-29 6:55 ` candidates for @devel-rt localversion-rt++ Mike Galbraith
2018-07-29 11:47 ` Mike Galbraith
2018-07-30 16:24 ` Mike Galbraith
2018-07-31 18:28 ` bisected - arm64 kvm unit test failures Mike Galbraith
2018-08-01 5:35 ` Marc Zyngier
2018-08-01 6:02 ` Mike Galbraith
2018-08-01 7:22 ` Marc Zyngier
2018-08-01 7:48 ` Mike Galbraith
2018-08-01 9:20 ` Mike Galbraith
2018-08-21 15:34 ` Marc Zyngier
2018-08-22 13:38 ` Mike Galbraith
2018-08-22 13:50 ` Marc Zyngier
2018-08-22 13:57 ` Mike Galbraith
[not found] ` <1532764179.9882.14.camel@gmx.de>
2018-07-28 9:07 ` [rt-patch 2/3] sched: Introduce raw_cond_resched_lock() Mike Galbraith
2018-07-28 9:07 ` [rt-patch 3/3] arm, KVM: convert vgic_irq.irq_lock to raw_spinlock_t Mike Galbraith
2018-07-30 9:27 ` Peter Zijlstra [this message]
2018-07-30 13:34 ` Mike Galbraith
2018-08-02 6:56 ` [rt-patch 4/3] arm,KVM: Move phys_timer handling to hard irq context Mike Galbraith
2018-08-02 16:31 ` Steven Rostedt
2018-08-02 16:50 ` Mike Galbraith
2018-08-02 17:43 ` Mike Galbraith
2018-08-04 12:25 ` Mike Galbraith
2018-08-05 4:52 ` Mike Galbraith
2018-08-07 14:46 ` Sebastian Andrzej Siewior
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180730092728.GE2494@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=bigeasy@linutronix.de \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome