public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Tom Lendacky <thomas.lendacky@amd.com>
To: Nikunj A Dadhania <nikunj@amd.com>,
	linux-kernel@vger.kernel.org, bp@alien8.de, x86@kernel.org,
	kvm@vger.kernel.org
Cc: mingo@redhat.com, tglx@linutronix.de,
	dave.hansen@linux.intel.com, pgonda@google.com,
	seanjc@google.com, pbonzini@redhat.com
Subject: Re: [PATCH v12 17/19] x86/kvmclock: Abort SecureTSC enabled guest when kvmclock is selected
Date: Thu, 10 Oct 2024 14:49:18 -0500	[thread overview]
Message-ID: <75780a58-5070-e111-5d77-d29093305c8b@amd.com> (raw)
In-Reply-To: <20241009092850.197575-18-nikunj@amd.com>

On 10/9/24 04:28, Nikunj A Dadhania wrote:
> SecureTSC enabled guests should use TSC as the only clock source, abort
> the guest when clock source switches to hypervisor controlled kvmclock.
> 
> Signed-off-by: Nikunj A Dadhania <nikunj@amd.com>
> ---
>  arch/x86/kernel/kvmclock.c | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
> index 5cd3717e103b..552c28cda874 100644
> --- a/arch/x86/kernel/kvmclock.c
> +++ b/arch/x86/kernel/kvmclock.c
> @@ -22,6 +22,7 @@
>  #include <asm/x86_init.h>
>  #include <asm/kvmclock.h>
>  #include <asm/timer.h>
> +#include <asm/sev.h>
>  
>  static int kvmclock __initdata = 1;
>  static int kvmclock_vsyscall __initdata = 1;
> @@ -155,6 +156,13 @@ static void enable_kvm_sc_work(struct work_struct *work)
>  {
>  	u8 flags;
>  
> +	/*
> +	 * For guest with SecureTSC enabled, TSC should be the only clock source.

s/For guest/For a guest/
s/TSC should/The TSC should/

> +	 * Abort the guest when kvmclock is selected as the clock source.
> +	 */
> +	if (cc_platform_has(CC_ATTR_GUEST_SNP_SECURE_TSC))
> +		snp_abort();

Can a message be issued here?

Also, you could use sev_es_terminate() to provide a specific Linux
reason code, e.g.:

  sev_terminate(SEV_TERM_SET_LINUX, GHCB_TERM_SECURE_TSC_KVMCLOCK);

or whatever name you want to use for this situation.

Thanks,
Tom

> +
>  	old_pv_sched_clock = static_call_query(pv_sched_clock);
>  	flags = pvclock_read_flags(&hv_clock_boot[0].pvti);
>  	kvm_sched_clock_init(flags & PVCLOCK_TSC_STABLE_BIT);

  reply	other threads:[~2024-10-10 19:49 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-09  9:28 [PATCH v12 00/19] Add Secure TSC support for SNP guests Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 01/19] virt: sev-guest: Use AES GCM crypto library Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 02/19] x86/sev: Handle failures from snp_init() Nikunj A Dadhania
2024-10-16 16:16   ` Tom Lendacky
2024-10-09  9:28 ` [PATCH v12 03/19] x86/sev: Cache the secrets page address Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 04/19] virt: sev-guest: Consolidate SNP guest messaging parameters to a struct Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 05/19] virt: sev-guest: Reduce the scope of SNP command mutex Nikunj A Dadhania
2024-10-10 18:32   ` Tom Lendacky
2024-10-09  9:28 ` [PATCH v12 06/19] virt: sev-guest: Carve out SNP message context structure Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 07/19] x86/sev: Carve out and export SNP guest messaging init routines Nikunj A Dadhania
2024-10-17  7:42   ` kernel test robot
2024-10-09  9:28 ` [PATCH v12 08/19] x86/sev: Relocate SNP guest messaging routines to common code Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 09/19] x86/cc: Add CC_ATTR_GUEST_SNP_SECURE_TSC Nikunj A Dadhania
2024-10-10 18:34   ` Tom Lendacky
2024-10-09  9:28 ` [PATCH v12 10/19] x86/sev: Add Secure TSC support for SNP guests Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 11/19] x86/sev: Change TSC MSR behavior for Secure TSC enabled guests Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 12/19] x86/sev: Prevent RDTSC/RDTSCP interception " Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 13/19] x86/sev: Mark Secure TSC as reliable clocksource Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 14/19] tsc: Use the GUEST_TSC_FREQ MSR for discovering TSC frequency Nikunj A Dadhania
2024-10-10 19:39   ` Tom Lendacky
2024-10-14  3:36     ` Nikunj A. Dadhania
2024-10-09  9:28 ` [PATCH v12 15/19] tsc: Upgrade TSC clocksource rating Nikunj A Dadhania
2024-10-09 16:16   ` Sean Christopherson
2024-10-10  6:44     ` Nikunj A. Dadhania
2024-10-09  9:28 ` [PATCH v12 16/19] x86/kvmclock: Use clock source callback to update kvm sched clock Nikunj A Dadhania
2024-10-09 15:58   ` Sean Christopherson
2024-10-10 10:14     ` Nikunj A. Dadhania
2024-10-16  8:26       ` Nikunj A. Dadhania
2024-10-09  9:28 ` [PATCH v12 17/19] x86/kvmclock: Abort SecureTSC enabled guest when kvmclock is selected Nikunj A Dadhania
2024-10-10 19:49   ` Tom Lendacky [this message]
2024-10-14  3:37     ` Nikunj A. Dadhania
2024-10-09  9:28 ` [PATCH v12 18/19] x86/cpu/amd: Do not print FW_BUG for Secure TSC Nikunj A Dadhania
2024-10-09  9:28 ` [PATCH v12 19/19] x86/sev: Allow Secure TSC feature for SNP guests Nikunj A Dadhania
2024-10-09 16:08 ` [PATCH v12 00/19] Add Secure TSC support " Dave Hansen
2024-10-10  6:28   ` Nikunj A. Dadhania

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=75780a58-5070-e111-5d77-d29093305c8b@amd.com \
    --to=thomas.lendacky@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=nikunj@amd.com \
    --cc=pbonzini@redhat.com \
    --cc=pgonda@google.com \
    --cc=seanjc@google.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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