Re: [PATCH v6 1/3] KVM: x86: clean up reexecute_instruction

2013-01-21 Thread Marcelo Tosatti
On Sun, Jan 13, 2013 at 11:44:12PM +0800, Xiao Guangrong wrote:
> Little cleanup for reexecute_instruction, also use gpa_to_gfn in
> retry_instruction
> 
> Signed-off-by: Xiao Guangrong 

Applied series, thanks.

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


Re: [PATCH v6 1/3] KVM: x86: clean up reexecute_instruction

2013-01-17 Thread Marcelo Tosatti
On Sun, Jan 13, 2013 at 11:44:12PM +0800, Xiao Guangrong wrote:
> Little cleanup for reexecute_instruction, also use gpa_to_gfn in
> retry_instruction
> 
> Signed-off-by: Xiao Guangrong 
> ---
>  arch/x86/kvm/x86.c |   13 ++---
>  1 files changed, 6 insertions(+), 7 deletions(-)

Reviewed-by: Marcelo Tosatti 

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


Re: [PATCH v6 1/3] KVM: x86: clean up reexecute_instruction

2013-01-17 Thread Gleb Natapov
For the series:
Reviewed-by: Gleb Natapov 

On Sun, Jan 13, 2013 at 11:44:12PM +0800, Xiao Guangrong wrote:
> Little cleanup for reexecute_instruction, also use gpa_to_gfn in
> retry_instruction
> 
> Signed-off-by: Xiao Guangrong 
> ---
>  arch/x86/kvm/x86.c |   13 ++---
>  1 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 1c9c834..08cacd9 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -4761,19 +4761,18 @@ static bool reexecute_instruction(struct kvm_vcpu 
> *vcpu, gva_t gva)
>   if (tdp_enabled)
>   return false;
> 
> + gpa = kvm_mmu_gva_to_gpa_system(vcpu, gva, NULL);
> + if (gpa == UNMAPPED_GVA)
> + return true; /* let cpu generate fault */
> +
>   /*
>* if emulation was due to access to shadowed page table
>* and it failed try to unshadow page and re-enter the
>* guest to let CPU execute the instruction.
>*/
> - if (kvm_mmu_unprotect_page_virt(vcpu, gva))
> + if (kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa)))
>   return true;
> 
> - gpa = kvm_mmu_gva_to_gpa_system(vcpu, gva, NULL);
> -
> - if (gpa == UNMAPPED_GVA)
> - return true; /* let cpu generate fault */
> -
>   /*
>* Do not retry the unhandleable instruction if it faults on the
>* readonly host memory, otherwise it will goto a infinite loop:
> @@ -4828,7 +4827,7 @@ static bool retry_instruction(struct x86_emulate_ctxt 
> *ctxt,
>   if (!vcpu->arch.mmu.direct_map)
>   gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2, NULL);
> 
> - kvm_mmu_unprotect_page(vcpu->kvm, gpa >> PAGE_SHIFT);
> + kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa));
> 
>   return true;
>  }
> -- 
> 1.7.7.6

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


Re: [PATCH v6 1/3] KVM: x86: clean up reexecute_instruction

2013-01-16 Thread Xiao Guangrong
Ping, ping, ping.. :(

Sent from my iPhone

On Jan 13, 2013, at 23:44, Xiao Guangrong  
wrote:

> Little cleanup for reexecute_instruction, also use gpa_to_gfn in
> retry_instruction
> 
> Signed-off-by: Xiao Guangrong 
> ---
> arch/x86/kvm/x86.c |   13 ++---
> 1 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
> index 1c9c834..08cacd9 100644
> --- a/arch/x86/kvm/x86.c
> +++ b/arch/x86/kvm/x86.c
> @@ -4761,19 +4761,18 @@ static bool reexecute_instruction(struct kvm_vcpu 
> *vcpu, gva_t gva)
>if (tdp_enabled)
>return false;
> 
> +gpa = kvm_mmu_gva_to_gpa_system(vcpu, gva, NULL);
> +if (gpa == UNMAPPED_GVA)
> +return true; /* let cpu generate fault */
> +
>/*
> * if emulation was due to access to shadowed page table
> * and it failed try to unshadow page and re-enter the
> * guest to let CPU execute the instruction.
> */
> -if (kvm_mmu_unprotect_page_virt(vcpu, gva))
> +if (kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa)))
>return true;
> 
> -gpa = kvm_mmu_gva_to_gpa_system(vcpu, gva, NULL);
> -
> -if (gpa == UNMAPPED_GVA)
> -return true; /* let cpu generate fault */
> -
>/*
> * Do not retry the unhandleable instruction if it faults on the
> * readonly host memory, otherwise it will goto a infinite loop:
> @@ -4828,7 +4827,7 @@ static bool retry_instruction(struct x86_emulate_ctxt 
> *ctxt,
>if (!vcpu->arch.mmu.direct_map)
>gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2, NULL);
> 
> -kvm_mmu_unprotect_page(vcpu->kvm, gpa >> PAGE_SHIFT);
> +kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa));
> 
>return true;
> }
> -- 
> 1.7.7.6
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v6 1/3] KVM: x86: clean up reexecute_instruction

2013-01-13 Thread Xiao Guangrong
Little cleanup for reexecute_instruction, also use gpa_to_gfn in
retry_instruction

Signed-off-by: Xiao Guangrong 
---
 arch/x86/kvm/x86.c |   13 ++---
 1 files changed, 6 insertions(+), 7 deletions(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 1c9c834..08cacd9 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -4761,19 +4761,18 @@ static bool reexecute_instruction(struct kvm_vcpu 
*vcpu, gva_t gva)
if (tdp_enabled)
return false;

+   gpa = kvm_mmu_gva_to_gpa_system(vcpu, gva, NULL);
+   if (gpa == UNMAPPED_GVA)
+   return true; /* let cpu generate fault */
+
/*
 * if emulation was due to access to shadowed page table
 * and it failed try to unshadow page and re-enter the
 * guest to let CPU execute the instruction.
 */
-   if (kvm_mmu_unprotect_page_virt(vcpu, gva))
+   if (kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa)))
return true;

-   gpa = kvm_mmu_gva_to_gpa_system(vcpu, gva, NULL);
-
-   if (gpa == UNMAPPED_GVA)
-   return true; /* let cpu generate fault */
-
/*
 * Do not retry the unhandleable instruction if it faults on the
 * readonly host memory, otherwise it will goto a infinite loop:
@@ -4828,7 +4827,7 @@ static bool retry_instruction(struct x86_emulate_ctxt 
*ctxt,
if (!vcpu->arch.mmu.direct_map)
gpa = kvm_mmu_gva_to_gpa_write(vcpu, cr2, NULL);

-   kvm_mmu_unprotect_page(vcpu->kvm, gpa >> PAGE_SHIFT);
+   kvm_mmu_unprotect_page(vcpu->kvm, gpa_to_gfn(gpa));

return true;
 }
-- 
1.7.7.6

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