From: Marc Zyngier <maz@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: "linux-rt-users@vger.kernel.org" <linux-rt-users@vger.kernel.org>,
"bigeasy@linutronix.de" <bigeasy@linutronix.de>,
Julien Grall <julien.grall@arm.com>,
anna-maria@linutronix.de,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>
Subject: Re: KVM Arm64 and Linux-RT issues
Date: Sat, 27 Jul 2019 12:13:38 +0100 [thread overview]
Message-ID: <86zhkzn319.wl-maz@kernel.org> (raw)
In-Reply-To: <alpine.DEB.2.21.1907270053360.1791@nanos.tec.linutronix.de>
Hi Thomas,
On Fri, 26 Jul 2019 23:58:38 +0100,
Thomas Gleixner <tglx@linutronix.de> wrote:
>
> On Wed, 24 Jul 2019, Marc Zyngier wrote:
> > On 23/07/2019 18:58, Julien Grall wrote:
> > It really feels like a change in hrtimer_cancel semantics. From what I
> > understand, this is used to avoid racing against the softirq, but boy it
> > breaks things.
> >
> > If this cannot be avoided, this means we can't cancel the background
> > timer (which is used to emulate the vcpu timer while it is blocked
> > waiting for an interrupt), then we must move this canceling to the point
> > where the vcpu is unblocked (instead of scheduled), which may have some
> > side effects -- I'll have a look.
> >
> > But that's not the only problem: We also have hrtimers used to emulate
> > timers while the vcpu is running, and these timers are canceled in
> > kvm_timer_vcpu_put(), which is also called from a preempt notifier.
> > Unfortunately, I don't have a reasonable solution for that (other than
> > putting this hrtimer_cancel in a workqueue and start chasing the
> > resulting races).
>
> The fix is simple. See below. We'll add that to the next RT release. That
> will take a while as I'm busy with posting RT stuff for upstream :)
Ah, thanks for that! And yes, looking forward to RT upstream, it's
just about time! ;-)
>
> Thanks,
>
> tglx
>
> 8<------------
> --- a/virt/kvm/arm/arch_timer.c
> +++ b/virt/kvm/arm/arch_timer.c
> @@ -80,7 +80,7 @@ static inline bool userspace_irqchip(str
> static void soft_timer_start(struct hrtimer *hrt, u64 ns)
> {
> hrtimer_start(hrt, ktime_add_ns(ktime_get(), ns),
> - HRTIMER_MODE_ABS);
> + HRTIMER_MODE_ABS_HARD);
> }
>
That's pretty neat, and matches the patch you already have for
x86. Feel free to add my
Acked-by: Marc Zyngier <maz@kernel.org>
Thanks,
M.
--
Jazz is not dead, it just smells funny.
_______________________________________________
kvmarm mailing list
kvmarm@lists.cs.columbia.edu
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Julien Grall <julien.grall@arm.com>,
"linux-rt-users@vger.kernel.org" <linux-rt-users@vger.kernel.org>,
<anna-maria@linutronix.de>,
"bigeasy@linutronix.de" <bigeasy@linutronix.de>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
Julien Thierry <julien.thierry@arm.com>,
James Morse <james.morse@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>
Subject: Re: KVM Arm64 and Linux-RT issues
Date: Sat, 27 Jul 2019 12:13:38 +0100 [thread overview]
Message-ID: <86zhkzn319.wl-maz@kernel.org> (raw)
In-Reply-To: <alpine.DEB.2.21.1907270053360.1791@nanos.tec.linutronix.de>
Hi Thomas,
On Fri, 26 Jul 2019 23:58:38 +0100,
Thomas Gleixner <tglx@linutronix.de> wrote:
>
> On Wed, 24 Jul 2019, Marc Zyngier wrote:
> > On 23/07/2019 18:58, Julien Grall wrote:
> > It really feels like a change in hrtimer_cancel semantics. From what I
> > understand, this is used to avoid racing against the softirq, but boy it
> > breaks things.
> >
> > If this cannot be avoided, this means we can't cancel the background
> > timer (which is used to emulate the vcpu timer while it is blocked
> > waiting for an interrupt), then we must move this canceling to the point
> > where the vcpu is unblocked (instead of scheduled), which may have some
> > side effects -- I'll have a look.
> >
> > But that's not the only problem: We also have hrtimers used to emulate
> > timers while the vcpu is running, and these timers are canceled in
> > kvm_timer_vcpu_put(), which is also called from a preempt notifier.
> > Unfortunately, I don't have a reasonable solution for that (other than
> > putting this hrtimer_cancel in a workqueue and start chasing the
> > resulting races).
>
> The fix is simple. See below. We'll add that to the next RT release. That
> will take a while as I'm busy with posting RT stuff for upstream :)
Ah, thanks for that! And yes, looking forward to RT upstream, it's
just about time! ;-)
>
> Thanks,
>
> tglx
>
> 8<------------
> --- a/virt/kvm/arm/arch_timer.c
> +++ b/virt/kvm/arm/arch_timer.c
> @@ -80,7 +80,7 @@ static inline bool userspace_irqchip(str
> static void soft_timer_start(struct hrtimer *hrt, u64 ns)
> {
> hrtimer_start(hrt, ktime_add_ns(ktime_get(), ns),
> - HRTIMER_MODE_ABS);
> + HRTIMER_MODE_ABS_HARD);
> }
>
That's pretty neat, and matches the patch you already have for
x86. Feel free to add my
Acked-by: Marc Zyngier <maz@kernel.org>
Thanks,
M.
--
Jazz is not dead, it just smells funny.
next prev parent reply other threads:[~2019-07-27 11:13 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-23 17:58 KVM Arm64 and Linux-RT issues Julien Grall
2019-07-23 17:58 ` Julien Grall
2019-07-24 8:53 ` Marc Zyngier
2019-07-24 8:53 ` Marc Zyngier
2019-07-26 22:58 ` Thomas Gleixner
2019-07-26 22:58 ` Thomas Gleixner
2019-07-27 11:13 ` Marc Zyngier [this message]
2019-07-27 11:13 ` Marc Zyngier
2019-07-27 13:37 ` Julien Grall
2019-07-27 13:37 ` Julien Grall
2019-08-13 12:58 ` bigeasy
2019-08-13 12:58 ` bigeasy
2019-08-13 15:44 ` Julien Grall
2019-08-13 15:44 ` Julien Grall
2019-08-13 16:24 ` Marc Zyngier
2019-08-13 16:24 ` Marc Zyngier
2019-08-16 15:18 ` Julien Grall
2019-08-16 15:18 ` Julien Grall
2019-08-16 15:23 ` Sebastian Andrzej Siewior
2019-08-16 15:23 ` Sebastian Andrzej Siewior
2019-08-16 16:32 ` Julien Grall
2019-08-16 16:32 ` Julien Grall
2019-08-19 7:33 ` Sebastian Andrzej Siewior
2019-08-19 7:33 ` Sebastian Andrzej Siewior
2019-08-20 14:18 ` Julien Grall
2019-08-20 14:18 ` Julien Grall
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=86zhkzn319.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=anna-maria@linutronix.de \
--cc=bigeasy@linutronix.de \
--cc=julien.grall@arm.com \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-rt-users@vger.kernel.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 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.