[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 06/51] x86/sev: Don't override CPU frequency calibration for SNP's Secure TSC
- To: Sean Christopherson <seanjc@xxxxxxxxxx>, Jonathan Corbet <corbet@xxxxxxx>, Paolo Bonzini <pbonzini@xxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxx>, "Ingo Molnar" <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>, Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>, <x86@xxxxxxxxxx>, Kiryl Shutsemau <kas@xxxxxxxxxx>, Rick Edgecombe <rick.p.edgecombe@xxxxxxxxx>, "K. Y. Srinivasan" <kys@xxxxxxxxxxxxx>, Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>, "Wei Liu" <wei.liu@xxxxxxxxxx>, Dexuan Cui <decui@xxxxxxxxxxxxx>, Long Li <longli@xxxxxxxxxxxxx>, Ajay Kaher <ajay.kaher@xxxxxxxxxxxx>, Alexey Makhalov <alexey.makhalov@xxxxxxxxxxxx>, Jan Kiszka <jan.kiszka@xxxxxxxxxxx>, "Andy Lutomirski" <luto@xxxxxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>, John Stultz <jstultz@xxxxxxxxxx>
- From: "Nikunj A. Dadhania" <nikunj@xxxxxxx>
- Date: Wed, 8 Jul 2026 10:24:43 +0530
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=google.com smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SZ5GDmkLZWd8J5P94VDAI93X1gZGJarzQBk2DH3fIMM=; b=X1iU6hK27j3SotgDmlGq5tHaQ8cESXQ3tO5dx3gf51fPmhTKH1dP2VjVTdkJ56kHQrxtIxxgIsKV3m4pB/lveXu8ajoSMnvVr/Va+gJN0v1z7gaYqDd+g1T/mJvK08CXKiHsk7qEUfLJeSqYjKsqZhy4IiCTxv7C/oyMkYh/KZz8YnpOQYcgl6S6tAM0cx18Ef54OxRkpb/nc2wUjgCaRY5tslm/Pmjis+7LtenZXvkAGUbSzaJYQ13zxhOiV7AToitRxrWkXt+UKjTKvNRfPR8Knh4BygLZ8UJg8510CeXoxfOw5t92/7ZN79CVAasctrSmXmwS9noU84hq156zKA==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=muck2zV8SaUyK1PkyvdQ2Ely+k1o8peyyDSIPc0ZqhGLEKWZZ8/L48dCtIrZQpKgoKYVtQcQn3L7zD9yiU2PDsmLrJ4CF+35nTsz55ferSyHq9z3PsDZCwjZovjkUJ8vUZ+yDJ6LVygsrvVw5avkQ7uO3iQmFLYTUg0Y+5XlNIOBxTYRewa9qN+U7j5DTtEnqJ1L4hkXLv/d1LSnNSO2pPWQG1hWll7t67f1mFTaIm+Q50BCjtl3xMpLLqWOSHgFcfq+1lVBqnCNiOjvmSvAGsnnpb+980Iy6X7W50KKqbZ4HtH/MSISyOCoMQU6IWdWsn7aQPo8wGTj4c1re7JuJw==
- Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=selector1 header.d=amd.com header.i="@amd.com" header.h="From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck"
- Cc: Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>, "H. Peter Anvin" <hpa@xxxxxxxxx>, Vitaly Kuznetsov <vkuznets@xxxxxxxxxx>, Broadcom internal kernel review list <bcm-kernel-feedback-list@xxxxxxxxxxxx>, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>, Stephen Boyd <sboyd@xxxxxxxxxx>, <linux-doc@xxxxxxxxxxxxxxx>, <kvm@xxxxxxxxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx>, <linux-coco@xxxxxxxxxxxxxxx>, <linux-hyperv@xxxxxxxxxxxxxxx>, <virtualization@xxxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Tom Lendacky <thomas.lendacky@xxxxxxx>, David Woodhouse <dwmw@xxxxxxxxxxxx>, David Woodhouse <dwmw2@xxxxxxxxxxxxx>, Michael Kelley <mhklinux@xxxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>
- Delivery-date: Wed, 08 Jul 2026 04:55:14 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 7/2/2026 1:01 AM, Sean Christopherson wrote:
> Don't override the kernel's CPU frequency calibration routine when
> registering SNP's Secure TSC calibration routine. SNP (the architecture)
> provides zero guarantees that the CPU runs at the same frequency as the
> TSC. The justification for clobbering the CPU routine was:
>
> Since the difference between CPU base and TSC frequency does not apply
> in this case, the same callback is being used.
>
> but that's simply not true. E.g. if APERF/MPERF is exposed to the VM, then
> the CPU frequency absolutely does matter.
>
> While relying on heuristics and/or the untrusted hypervisor to provide the
> CPU frequency isn't ideal, it's at least not outright wrong.
>
> Fixes: 73bbf3b0fbba ("x86/tsc: Init the TSC for Secure TSC guests")
> Cc: Nikunj A Dadhania <nikunj@xxxxxxx>
> Cc: Tom Lendacky <thomas.lendacky@xxxxxxx>
> Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>
Reviewed-by: Nikunj A Dadhania <nikunj@xxxxxxx>
> ---
> arch/x86/coco/sev/core.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/arch/x86/coco/sev/core.c b/arch/x86/coco/sev/core.c
> index ed0ac52a765e..665de1aea0ee 100644
> --- a/arch/x86/coco/sev/core.c
> +++ b/arch/x86/coco/sev/core.c
> @@ -2046,7 +2046,6 @@ void __init snp_secure_tsc_init(void)
>
> snp_tsc_freq_khz = SNP_SCALE_TSC_FREQ(tsc_freq_mhz * 1000,
> secrets->tsc_factor);
>
> - x86_platform.calibrate_cpu = securetsc_get_tsc_khz;
> x86_platform.calibrate_tsc = securetsc_get_tsc_khz;
>
> early_memunmap(mem, PAGE_SIZE);
|