Wincy Van wrote on 2015-01-24: > Currently, if L1 enables MSR_BITMAP, we will emulate this feature, all of L2's > msr access is intercepted by L0. Since many features like virtualize x2apic mode > has a complicated logic and it is difficult for us to emulate, we should use > hardware and merge the bitmap. > > This patch introduces nested_vmx_merge_msr_bitmap for future use. > > Signed-off-by: Wincy Van <fanwenyi0529@xxxxxxxxx> > --- > arch/x86/kvm/vmx.c | 71 > +++++++++++++++++++++++++++++++++++++++++++-------- > 1 files changed, 60 insertions(+), 11 deletions(-) > > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index c987374..36d0724 > 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -798,6 +798,7 @@ static unsigned long *vmx_msr_bitmap_legacy; > static unsigned long *vmx_msr_bitmap_longmode; static unsigned long > *vmx_msr_bitmap_legacy_x2apic; static unsigned long > *vmx_msr_bitmap_longmode_x2apic; > +static unsigned long *vmx_msr_bitmap_nested; > static unsigned long *vmx_vmread_bitmap; static unsigned long > *vmx_vmwrite_bitmap; > > @@ -5812,13 +5813,18 @@ static __init int hardware_setup(void) > (unsigned long > *)__get_free_page(GFP_KERNEL); > if (!vmx_msr_bitmap_longmode_x2apic) > goto out4; > + > + vmx_msr_bitmap_nested = (unsigned long > *)__get_free_page(GFP_KERNEL); > + if (!vmx_msr_bitmap_nested) > + goto out5; > + Since the nested virtualization is off by default. It's better to allocate the page only when nested is true. Maybe adding the following check is better: if (nested) { vmx_msr_bitmap_nested = (unsigned long *)__get_free_page(GFP_KERNEL); if (!vmx_msr_bitmap_nested) goto out5; } ...snip... > + > +/* > + * Merge L0's and L1's MSR bitmap, return false to indicate that > + * we do not use the hardware. > + */ > +static inline bool nested_vmx_merge_msr_bitmap(struct kvm_vcpu *vcpu, > + struct vmcs12 > *vmcs12) { > + return false; > +} > + The following patches have nothing to do with the MSR control. Why leave the function empty here? Best regards, Yang ��.n��������+%������w��{.n�����o�^n�r������&��z�ޗ�zf���h���~����������_��+v���)ߣ�