On Thu, Sep 20, 2018 at 05:55:48PM +0800, Robert Hoo wrote:
> On Thu, 2018-09-20 at 00:13 -0300, Eduardo Habkost wrote:
> > On Sun, Sep 02, 2018 at 07:46:07PM +0800, Robert Hoo wrote:
> > > Note RSBA is specially treated -- no matter host support it or not,
> > > qemu
> > > pretends it is supported.
> > > 
> > > Signed-off-by: Robert Hoo <robert...@linux.intel.com>
> > > ---
> > >  target/i386/cpu.c | 27 ++++++++++++++++++++++++++-
> > >  target/i386/cpu.h | 12 ++++++++++++
> > >  2 files changed, 38 insertions(+), 1 deletion(-)
> > > 
> > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c
> > > index 0160e97..8ec9613 100644
> > > --- a/target/i386/cpu.c
> > > +++ b/target/i386/cpu.c
> > > @@ -1129,6 +1129,24 @@ static FeatureWordInfo
> > > feature_word_info[FEATURE_WORDS] = {
> > >              .reg = R_EDX, },
> > >          .tcg_features = ~0U,
> > >      },
> > > +    /*Below are MSR exposed features*/
> > > +    [FEATURE_WORDS_ARCH_CAPABILITIES] = {
> > > +        .type = MSR_FEATURE_WORD,
> > > +        .feat_names = {
> > > +            "rdctl-no", "ibrs-all", "rsba", NULL,
> > > +            "ssb-no", NULL, NULL, NULL,
> > > +            NULL, NULL, NULL, NULL,
> > > +            NULL, NULL, NULL, NULL,
> > > +            NULL, NULL, NULL, NULL,
> > > +            NULL, NULL, NULL, NULL,
> > > +            NULL, NULL, NULL, NULL,
> > > +            NULL, NULL, NULL, NULL,
> > > +        },
> > > +        .msr = { .index = MSR_IA32_ARCH_CAPABILITIES,
> > > +                .cpuid_dep = { FEAT_7_0_EDX,
> > > +                    CPUID_7_0_EDX_ARCH_CAPABILITIES }
> > > +                },
> > > +    },
> > 
> > One critical piece of the code seems to be missing: where exactly
> > is the MSR value being set on the VCPU before it runs?
> > 
> I don't quite understand. Isn't such feature MSR read-only, like CPUID,
> simply to enumerate features?

The MSR is read-only for the guest, yes.  But QEMU needs to call
KVM_SET_MSRS somewhere, to tell KVM what's the MSR value the
guest should see.  I don't see any code doing that.

> [...]

-- 
Eduardo

Reply via email to