Re: [PATCH 4/4] KVM: VMX: Enable EPT 1GB page support

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

 



On Tue, Jan 05, 2010 at 07:02:29PM +0800, Sheng Yang wrote:
> 
> Signed-off-by: Sheng Yang <sheng@xxxxxxxxxxxxxxx>
> ---
>  arch/x86/include/asm/vmx.h |    1 +
>  arch/x86/kvm/mmu.c         |    8 +++++---
>  arch/x86/kvm/vmx.c         |   11 ++++++++++-
>  3 files changed, 16 insertions(+), 4 deletions(-)
> 
> diff --git a/arch/x86/include/asm/vmx.h b/arch/x86/include/asm/vmx.h
> index 713ed9a..43f1e9b 100644
> --- a/arch/x86/include/asm/vmx.h
> +++ b/arch/x86/include/asm/vmx.h
> @@ -364,6 +364,7 @@ enum vmcs_field {
>  #define VMX_EPTP_UC_BIT				(1ull << 8)
>  #define VMX_EPTP_WB_BIT				(1ull << 14)
>  #define VMX_EPT_2MB_PAGE_BIT			(1ull << 16)
> +#define VMX_EPT_1GB_PAGE_BIT			(1ull << 17)
>  #define VMX_EPT_EXTENT_INDIVIDUAL_BIT		(1ull << 24)
>  #define VMX_EPT_EXTENT_CONTEXT_BIT		(1ull << 25)
>  #define VMX_EPT_EXTENT_GLOBAL_BIT		(1ull << 26)
> diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
> index 43cf2ea..9012541 100644
> --- a/arch/x86/kvm/mmu.c
> +++ b/arch/x86/kvm/mmu.c
> @@ -499,8 +499,7 @@ out:
>  static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn)
>  {
>  	struct kvm_memory_slot *slot;
> -	int host_level;
> -	int level = PT_PAGE_TABLE_LEVEL;
> +	int host_level, level, max_level;
>  
>  	slot = gfn_to_memslot(vcpu->kvm, large_gfn);
>  	if (slot && slot->dirty_bitmap)
> @@ -511,7 +510,10 @@ static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn)
>  	if (host_level == PT_PAGE_TABLE_LEVEL)
>  		return host_level;
>  
> -	for (level = PT_DIRECTORY_LEVEL; level <= host_level; ++level)
> +	max_level = kvm_x86_ops->get_lpage_level() < host_level ?
> +		kvm_x86_ops->get_lpage_level() : host_level;
> +

BUG_ON(kvm_x86_ops->get_lpage_level() < host_level) instead? See
the if (host_level == PT_PAGE_TABLE_LEVEL) above.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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