From: Sean Christopherson <seanjc@google.com>
To: Kai Huang <kai.huang@intel.com>
Cc: "pbonzini@redhat.com" <pbonzini@redhat.com>,
"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"guoke@uniontech.com" <guoke@uniontech.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"haiwenyao@uniontech.com" <haiwenyao@uniontech.com>
Subject: Re: [PATCH v2 5/8] KVM: x86: Use MTRR macros to define possible MTRR MSR ranges
Date: Fri, 12 May 2023 09:35:40 -0700 [thread overview]
Message-ID: <ZF5qnQQYa6OAI0Hy@google.com> (raw)
In-Reply-To: <ecbcfb6ca243cf587eb6e61c6e852b4f474a36d7.camel@intel.com>
On Fri, May 12, 2023, Kai Huang wrote:
> On Thu, 2023-05-11 at 16:33 -0700, Sean Christopherson wrote:
> > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> > index e7f78fe79b32..8b356c9d8a81 100644
> > --- a/arch/x86/kvm/x86.c
> > +++ b/arch/x86/kvm/x86.c
> > @@ -3700,8 +3700,9 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> > return 1;
> > }
> > break;
> > - case 0x200 ... MSR_IA32_MC0_CTL2 - 1:
> > - case MSR_IA32_MCx_CTL2(KVM_MAX_MCE_BANKS) ... 0x2ff:
> > + case MSR_IA32_CR_PAT:
> > + case MTRRphysBase_MSR(0) ... MSR_MTRRfix4K_F8000:
> > + case MSR_MTRRdefType:
> > return kvm_mtrr_set_msr(vcpu, msr, data);
> > case MSR_IA32_APICBASE:
> > return kvm_set_apic_base(vcpu, msr_info);
> > @@ -4108,9 +4109,10 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> > msr_info->data = kvm_scale_tsc(rdtsc(), ratio) + offset;
> > break;
> > }
> > + case MSR_IA32_CR_PAT:
> > case MSR_MTRRcap:
>
> ... Should we put MSR_IA32_CR_PAT after MSR_MTRRcap so it can be symmetric to
> kvm_set_msr_common()?
>
> Looks there's no reason to put it before MSR_MTRRcap.
No, it's above MTRRcap for two reasons:
1. When PAT is moved out of mtrr.c, PAT doesn't get bunded with the other MTRRs
and so would just need to be hoisted back up. The end code looks like:
case MSR_IA32_CR_PAT:
msr_info->data = vcpu->arch.pat;
break;
case MSR_MTRRcap:
case MTRRphysBase_MSR(0) ... MSR_MTRRfix4K_F8000:
case MSR_MTRRdefType:
return kvm_mtrr_get_msr(vcpu, msr_info->index, &msr_info->data);
2. There is no MSR_MTRRcap case statement in kvm_set_msr_common() because it's
a read-only MSR, i.e. the two can't be symmetric :-)
> > - case 0x200 ... MSR_IA32_MC0_CTL2 - 1:
> > - case MSR_IA32_MCx_CTL2(KVM_MAX_MCE_BANKS) ... 0x2ff:
> > + case MTRRphysBase_MSR(0) ... MSR_MTRRfix4K_F8000:
> > + case MSR_MTRRdefType:
> > return kvm_mtrr_get_msr(vcpu, msr_info->index, &msr_info->data);
> > case 0xcd: /* fsb frequency */
> > msr_info->data = 3;
> > --
> > 2.40.1.606.ga4b1b128d6-goog
> >
>
next prev parent reply other threads:[~2023-05-12 16:36 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-11 23:33 [PATCH v2 0/8] KVM: x86: Clean up MSR PAT handling Sean Christopherson
2023-05-11 23:33 ` [PATCH v2 1/8] KVM: VMX: Open code writing vCPU's PAT in VMX's MSR handler Sean Christopherson
2023-05-12 10:18 ` Huang, Kai
2023-05-11 23:33 ` [PATCH v2 2/8] KVM: SVM: Use kvm_pat_valid() directly instead of kvm_mtrr_valid() Sean Christopherson
2023-05-11 23:33 ` [PATCH v2 3/8] KVM: x86: Add helper to query if variable MTRR MSR is base (versus mask) Sean Christopherson
2023-05-11 23:33 ` [PATCH v2 4/8] KVM: x86: Add helper to get variable MTRR range from MSR index Sean Christopherson
2023-05-12 10:21 ` Huang, Kai
2023-05-11 23:33 ` [PATCH v2 5/8] KVM: x86: Use MTRR macros to define possible MTRR MSR ranges Sean Christopherson
2023-05-12 10:35 ` Huang, Kai
2023-05-12 16:35 ` Sean Christopherson [this message]
2023-05-15 0:37 ` Huang, Kai
2023-05-15 17:49 ` Sean Christopherson
2023-05-15 22:21 ` Huang, Kai
2023-05-11 23:33 ` [PATCH v2 6/8] KVM: x86: Move PAT MSR handling out of mtrr.c Sean Christopherson
2023-05-12 10:40 ` Huang, Kai
2023-05-11 23:33 ` [PATCH v2 7/8] KVM: x86: Make kvm_mtrr_valid() static now that there are no external users Sean Christopherson
2023-05-12 10:46 ` Huang, Kai
2023-05-11 23:33 ` [PATCH v2 8/8] KVM: x86: Move common handling of PAT MSR writes to kvm_set_msr_common() Sean Christopherson
2023-05-12 10:48 ` Huang, Kai
2023-06-02 1:21 ` [PATCH v2 0/8] KVM: x86: Clean up MSR PAT handling Sean Christopherson
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=ZF5qnQQYa6OAI0Hy@google.com \
--to=seanjc@google.com \
--cc=guoke@uniontech.com \
--cc=haiwenyao@uniontech.com \
--cc=kai.huang@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.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.