Re: KVM_GET_MSR_INDEX_LIST vs KVM_GET_MSR_FEATURE_INDEX_LIST

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Sep 8, 2018 at 5:58 PM Liran Alon <liran.alon@xxxxxxxxxx> wrote:
>
>
> > On 7 Sep 2018, at 21:37, Jim Mattson <jmattson@xxxxxxxxxx> wrote:
> >
> > Are these two lists intended to be disjoint? Is it a bug that
> > IA32_ARCH_CAPABILITIES appears in both?
>
> From what I understand, the difference between these two lists is the following:
> * KVM_GET_MSR_INDEX_LIST is list of MSRs that are emulated/virtualized by KVM and
>   their value can be get/set via KVM_GET_MSRS/KVM_SET_MSRS on a *vCPU*.
> * KVM_GET_MSR_FEATURE_INDEX_LIST is a list of MSRs that are emulated/virtualized by KVM
>   and their value can be get via KVM_GET_MSRS on */dev/kvm*.
>   (But can be set via KVM_SET_MSRS on a *vCPU*).
>
> It seems that the KVM_GET_MSR_FEATURE_INDEX_LIST exists only for the purpose of
> userspace to be able to know how KVM plans to expose these MSRs values to newly created vCPUs
> based on KVM capabilities and host CPU capabilities.
>
> If the above is correct, it seems to me that the MSRs in KVM_GET_MSR_FEATURE_INDEX_LIST are actually
> suppose to be a subset of KVM_GET_MSR_INDEX_LIST. So it shouldn’t be an issue that IA32_ARCH_CAPABILITIES
> Exist in both of them.
> However, it seems that I am wrong because KVM_GET_MSR_FEATURE_INDEX_LIST is not
> a subset of KVM_GET_MSR_INDEX_LIST at all. In fact, it seems that IA32_ARCH_CAPABILITIES is the only one
> which exists in both lists…
> Also, MSR_IA32_UCODE_REV exists only in KVM_GET_MSR_FEATURE_INDEX_LIST but one can clearly see
> how it’s value can be get via KVM_GET_MSRS on a *vCPU* so it was also suppose to be part of KVM_GET_MSR_INDEX_LIST
> but it’s not…
>
> So I’m left pretty confused regarding this interface. Would like clarification as-well :)

Here's a more basic question: Should any MSR that can be read and
written by a guest appear in KVM_GET_MSR_INDEX_LIST? If not, what's
the point of this ioctl?




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux