diff mbox series

x86: kvm Require const tsc for RT

Message ID Yh5eJSG19S2sjZfy@linutronix.de (mailing list archive)
State New, archived
Headers show
Series x86: kvm Require const tsc for RT | expand

Commit Message

Sebastian Andrzej Siewior March 1, 2022, 5:55 p.m. UTC
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(+)

Comments

Paolo Bonzini March 1, 2022, 5:57 p.m. UTC | #1
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
Sebastian Andrzej Siewior March 14, 2022, 9:28 a.m. UTC | #2
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
>
Paolo Bonzini March 15, 2022, 9:07 p.m. UTC | #3
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 mbox series

Patch

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();