From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B9E191B4257 for ; Sat, 7 Mar 2026 02:14:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772849654; cv=none; b=gEFxySTqTQvvttFhADTKcKie+qKsl7pDR023xJ4HnNzfkNSPQvPPe7/raK3wSQxMMyKaAHCoPUsNqrbMQEI88qHb+5mgL97N5mHmkB9oSdNCZh5HIrW1qb3nm/McKUeNXkq01nh4rumYbpbkNxQn437e5qP8QYQt/BEwkSMKzzA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772849654; c=relaxed/simple; bh=Y395lIQ0hqDNqGEN3fx1A+kJN5RvFSfuHVtZgsHZG5M=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=qaxBMppx+rCRZZKxf0Z+19jX03Ro0L5LcTIfQnRtH/J/R+UOaHoveNsuIVtlCQmX/MFd+jJ3PCfEAT1ePGOEmDxcrRKXGe7KhGX/ewa4UMNIhWXDfNvmbsFZQgoxLO89MXIZBcMYPx+ra1b6yoesJRBheOshG5CBT5mWBgIpT0Y= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=UFTIvws6; arc=none smtp.client-ip=209.85.216.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="UFTIvws6" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-3598c05c806so6158651a91.0 for ; Fri, 06 Mar 2026 18:14:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1772849653; x=1773454453; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=5mnZtdvwdg33I7WPQAij4vbG2jYvg3cJFZqosGMJQS0=; b=UFTIvws6GecO4dOZJGcxp07lVisgl5urt6Op9957xYHVXSkGJm0j+rErn5y+oyWv8S qyMTSxPYAh7vbQd9OispcdqwRrFpXassJXA71+x5kwctZcQ11HMi7dL0UEQ/r3meEvHk upvdgL49saUZL0sbsOmx9lMTL5XnMR0+qHQRoyFMsBcspD6DQTFEyzIBexcwKy8v0JyB 4NclfqZlW/yjXNw3PgdRGuQOK4135zNaHqsmkgWVtISQs2q/pFJE9/h3Jso3KbrsA0AW iag5gYuPp/JOLbChx1xyEmSY+96PTxCbT4UAvgzGOGNOEkGI/F2GmMqMf9dRyoI01Z90 UFDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772849653; x=1773454453; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=5mnZtdvwdg33I7WPQAij4vbG2jYvg3cJFZqosGMJQS0=; b=O6AJbjY1K7czOBckRkE/7EGodFNg73Czs97zfCc6E766wwxXA78UcwEt/y+BCHjIKv PCMpG3L2BAmf5zOZhhIMm07//n5s/S5ynsnDCNsITcqAqL2QvZ/OVhohS2HOPrxAouA+ czceeXBrOa5trodrVWdjvvSIp1xLyuS0DbLB5AXrcMC9QPff6W17tQtPzq5kYP0AiTZJ hyt+U9l8wD70K+8RcdEus9XxGL9OAUUUd8j+f6oLDRYkaPaeZWoqiTuK70B71vFzC41O FpNRyYBtL0whVHyGICaxgCt+KY4wnioq/ZYkEOJ+eZR0Phe1AIdsQfP6veVjcY8SgF5F 845w== X-Forwarded-Encrypted: i=1; AJvYcCWOPq7LbhyFk2g8UQIIa5aCm7sjddwVVBG/r3WBFMsAMuVyWKX8uSnyx7qt6rwBaQzklc2LWEBsgVCH1cI=@vger.kernel.org X-Gm-Message-State: AOJu0Yyq4OfXbQenvU26BN8jwOVuJ4k3XqcItRG8/hKyw14WkzvtWCL1 fEH2sl2gO5p5bC8fbbTYfQOvE/HIJRE2gHKcFHifCpFU9gj7aK7TP5XvcohEQG520py4QHgZykQ fQrmXJw== X-Received: from pjso17.prod.google.com ([2002:a17:90a:c091:b0:359:8375:fab9]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:4e86:b0:359:97d3:5c5b with SMTP id 98e67ed59e1d1-359be2ef302mr3189152a91.20.1772849652958; Fri, 06 Mar 2026 18:14:12 -0800 (PST) Date: Fri, 6 Mar 2026 18:14:11 -0800 In-Reply-To: <20260129063653.3553076-8-shivansh.dhiman@amd.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20260129063653.3553076-1-shivansh.dhiman@amd.com> <20260129063653.3553076-8-shivansh.dhiman@amd.com> Message-ID: Subject: Re: [PATCH 7/7] KVM: SVM: Enable save/restore of FRED MSRs From: Sean Christopherson To: Shivansh Dhiman Cc: pbonzini@redhat.com, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com, xin@zytor.com, nikunj.dadhania@amd.com, santosh.shukla@amd.com Content-Type: text/plain; charset="us-ascii" On Thu, Jan 29, 2026, Shivansh Dhiman wrote: > Set the FRED_VIRT_ENABLE bit (bit 4) in the VIRT_EXT field of VMCB to enable > FRED Virtualization for the guest. This enables automatic save/restore of > FRED MSRs. Also toggle this bit when setting CPUIDs, to support booting of > secure guests. > > Signed-off-by: Shivansh Dhiman > --- > arch/x86/kvm/svm/svm.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c > index 954df4eae90e..24579c149937 100644 > --- a/arch/x86/kvm/svm/svm.c > +++ b/arch/x86/kvm/svm/svm.c > @@ -1144,6 +1144,9 @@ static void init_vmcb(struct kvm_vcpu *vcpu, bool init_event) > save->fred_ssp3 = 0; > save->fred_config = 0; > > + if (guest_cpu_cap_has(vcpu, X86_FEATURE_FRED)) > + svm->vmcb->control.virt_ext |= FRED_VIRT_ENABLE_MASK; This is completely unnecessary, no? CPUID is empty at vCPU creation and so FRED _can't_ be enabled before going through svm_vcpu_after_set_cpuid(). > init_sys_seg(&save->ldtr, SEG_TYPE_LDT); > init_sys_seg(&save->tr, SEG_TYPE_BUSY_TSS16); > > @@ -4529,6 +4532,9 @@ static void svm_vcpu_after_set_cpuid(struct kvm_vcpu *vcpu) > if (guest_cpuid_is_intel_compatible(vcpu)) > guest_cpu_cap_clear(vcpu, X86_FEATURE_V_VMSAVE_VMLOAD); > > + if (guest_cpu_cap_has(vcpu, X86_FEATURE_FRED)) > + svm->vmcb->control.virt_ext |= FRED_VIRT_ENABLE_MASK; The flag needs to be cleared if FRED isn't supported, because KVM's wonderful ABI allows userspace to modify CPUID however many times it wants before running the vCPU. > + > if (sev_guest(vcpu->kvm)) > sev_vcpu_after_set_cpuid(svm); > } > -- > 2.43.0 >