All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vitaly Kuznetsov <vkuznets@redhat.com>
To: Sean Christopherson <seanjc@google.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
	Wanpeng Li <wanpengli@tencent.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	Reiji Watanabe <reijiw@google.com>
Subject: Re: [PATCH v2 06/10] KVM: x86: Fold fx_init() into kvm_arch_vcpu_create()
Date: Tue, 21 Sep 2021 16:52:16 +0200	[thread overview]
Message-ID: <87tuie7zhb.fsf@vitty.brq.redhat.com> (raw)
In-Reply-To: <20210921000303.400537-7-seanjc@google.com>

Sean Christopherson <seanjc@google.com> writes:

> Move the few bits of relevant fx_init() code into kvm_arch_vcpu_create(),
> dropping the superfluous check on vcpu->arch.guest_fpu that was blindly
> and wrongly added by commit ed02b213098a ("KVM: SVM: Guest FPU state
> save/restore not needed for SEV-ES guest").

I have more questions to the above mentioned commit: why is it OK to
'return 0' from kvm_vcpu_ioctl_x86_set_xsave() without writing anything
to 'guest_xsave'? Same goes to kvm_arch_vcpu_ioctl_get_fpu(). Whould't
it be better to throw an error as we can't actually get this information
for encrypted guests? It's probably too late to change this now I
suppose ...

>
> Note, KVM currently allocates and then frees FPU state for SEV-ES guests,
> rather than avoid the allocation in the first place.  While that approach
> is inarguably inefficient and unnecessary, it's a cleanup for the future.
>
> No functional change intended.
>
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> ---
>  arch/x86/kvm/x86.c | 16 ++++------------
>  1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 6fd3fe21863e..ec61b90d9b73 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -10614,17 +10614,6 @@ static int sync_regs(struct kvm_vcpu *vcpu)
>  	return 0;
>  }
>  
> -static void fx_init(struct kvm_vcpu *vcpu)
> -{
> -	if (!vcpu->arch.guest_fpu)
> -		return;
> -
> -	fpstate_init(&vcpu->arch.guest_fpu->state);
> -	if (boot_cpu_has(X86_FEATURE_XSAVES))
> -		vcpu->arch.guest_fpu->state.xsave.header.xcomp_bv =
> -			host_xcr0 | XSTATE_COMPACTION_ENABLED;
> -}
> -
>  void kvm_free_guest_fpu(struct kvm_vcpu *vcpu)
>  {
>  	if (vcpu->arch.guest_fpu) {
> @@ -10703,7 +10692,10 @@ int kvm_arch_vcpu_create(struct kvm_vcpu *vcpu)
>  		pr_err("kvm: failed to allocate vcpu's fpu\n");
>  		goto free_user_fpu;
>  	}
> -	fx_init(vcpu);
> +	fpstate_init(&vcpu->arch.guest_fpu->state);
> +	if (boot_cpu_has(X86_FEATURE_XSAVES))
> +		vcpu->arch.guest_fpu->state.xsave.header.xcomp_bv =
> +			host_xcr0 | XSTATE_COMPACTION_ENABLED;
>  
>  	vcpu->arch.maxphyaddr = cpuid_query_maxphyaddr(vcpu);
>  	vcpu->arch.reserved_gpa_bits = kvm_vcpu_reserved_gpa_bits_raw(vcpu);

Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>

-- 
Vitaly


  reply	other threads:[~2021-09-21 14:52 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-21  0:02 [PATCH v2 00/10] KVM: x86: Clean up RESET "emulation" Sean Christopherson
2021-09-21  0:02 ` [PATCH v2 01/10] KVM: x86: Mark all registers as avail/dirty at vCPU creation Sean Christopherson
2021-09-21 13:40   ` Vitaly Kuznetsov
2021-09-21  0:02 ` [PATCH v2 02/10] KVM: x86: Clear KVM's cached guest CR3 at RESET/INIT Sean Christopherson
2021-09-21 13:52   ` Vitaly Kuznetsov
2021-09-21 13:55     ` Vitaly Kuznetsov
2021-09-21 17:35   ` Paolo Bonzini
2021-09-21  0:02 ` [PATCH v2 03/10] KVM: x86: Do not mark all registers as avail/dirty during RESET/INIT Sean Christopherson
2021-09-21  0:02 ` [PATCH v2 04/10] KVM: x86: Remove defunct setting of CR0.ET for guests during vCPU create Sean Christopherson
2021-09-21 14:23   ` Vitaly Kuznetsov
2021-09-21  0:02 ` [PATCH v2 05/10] KVM: x86: Remove defunct setting of XCR0 for guest " Sean Christopherson
2021-09-21 14:37   ` Vitaly Kuznetsov
2021-09-21  0:02 ` [PATCH v2 06/10] KVM: x86: Fold fx_init() into kvm_arch_vcpu_create() Sean Christopherson
2021-09-21 14:52   ` Vitaly Kuznetsov [this message]
2021-10-06 23:04     ` Sean Christopherson
2021-09-21  0:03 ` [PATCH v2 07/10] KVM: VMX: Drop explicit zeroing of MSR guest values at vCPU creation Sean Christopherson
2021-09-21 15:02   ` Vitaly Kuznetsov
2021-09-21  0:03 ` [PATCH v2 08/10] KVM: VMX: Move RESET emulation to vmx_vcpu_reset() Sean Christopherson
2021-09-21  0:03 ` [PATCH v2 09/10] KVM: SVM: Move RESET emulation to svm_vcpu_reset() Sean Christopherson
2021-09-21  0:03 ` [PATCH v2 10/10] KVM: x86: WARN on non-zero CRs at RESET to detect improper initalization Sean Christopherson
2021-09-21 13:59   ` Vitaly Kuznetsov
2021-09-23 16:23 ` [PATCH v2 00/10] KVM: x86: Clean up RESET "emulation" Paolo Bonzini

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=87tuie7zhb.fsf@vitty.brq.redhat.com \
    --to=vkuznets@redhat.com \
    --cc=jmattson@google.com \
    --cc=joro@8bytes.org \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=reijiw@google.com \
    --cc=seanjc@google.com \
    --cc=wanpengli@tencent.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.