Message ID | Yh5eJSG19S2sjZfy@linutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | x86: kvm Require const tsc for RT | expand |
On 3/1/22 18:55, Sebastian Andrzej Siewior wrote: > From: Thomas Gleixner <tglx@linutronix.de> > Date: Sun, 6 Nov 2011 12:26:18 +0100 > > Non constant TSC is a nightmare on bare metal already, but with > virtualization it becomes a complete disaster because the workarounds > are horrible latency wise. That's also a preliminary for running RT in > a guest on top of a RT host. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > --- > arch/x86/kvm/x86.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 82a9dcd8c67fe..54d2090d04e7a 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -8826,6 +8826,12 @@ int kvm_arch_init(void *opaque) > goto out; > } > > + if (IS_ENABLED(CONFIG_PREEMPT_RT) && !boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) { > + pr_err("RT requires X86_FEATURE_CONSTANT_TSC\n"); > + r = -EOPNOTSUPP; > + goto out; > + } > + > r = -ENOMEM; > > x86_emulator_cache = kvm_alloc_emulator_cache(); Acked-by: Paolo Bonzini <pbonzini@redhat.com> Thanks, Paolo
On 2022-03-01 18:55:51 [+0100], To kvm@vger.kernel.org wrote: > From: Thomas Gleixner <tglx@linutronix.de> > Date: Sun, 6 Nov 2011 12:26:18 +0100 > > Non constant TSC is a nightmare on bare metal already, but with > virtualization it becomes a complete disaster because the workarounds > are horrible latency wise. That's also a preliminary for running RT in > a guest on top of a RT host. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> ping. > --- > arch/x86/kvm/x86.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c > index 82a9dcd8c67fe..54d2090d04e7a 100644 > --- a/arch/x86/kvm/x86.c > +++ b/arch/x86/kvm/x86.c > @@ -8826,6 +8826,12 @@ int kvm_arch_init(void *opaque) > goto out; > } > > + if (IS_ENABLED(CONFIG_PREEMPT_RT) && !boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) { > + pr_err("RT requires X86_FEATURE_CONSTANT_TSC\n"); > + r = -EOPNOTSUPP; > + goto out; > + } > + > r = -ENOMEM; > > x86_emulator_cache = kvm_alloc_emulator_cache(); > -- > 2.35.1 >
On 3/14/22 10:28, Sebastian Andrzej Siewior wrote: > On 2022-03-01 18:55:51 [+0100], To kvm@vger.kernel.org wrote: >> From: Thomas Gleixner <tglx@linutronix.de> >> Date: Sun, 6 Nov 2011 12:26:18 +0100 >> >> Non constant TSC is a nightmare on bare metal already, but with >> virtualization it becomes a complete disaster because the workarounds >> are horrible latency wise. That's also a preliminary for running RT in >> a guest on top of a RT host. >> >> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> >> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> > > ping. Queued, thanks. Paolo
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 82a9dcd8c67fe..54d2090d04e7a 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -8826,6 +8826,12 @@ int kvm_arch_init(void *opaque) goto out; } + if (IS_ENABLED(CONFIG_PREEMPT_RT) && !boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) { + pr_err("RT requires X86_FEATURE_CONSTANT_TSC\n"); + r = -EOPNOTSUPP; + goto out; + } + r = -ENOMEM; x86_emulator_cache = kvm_alloc_emulator_cache();