[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] Revert "VMX: flush cache when vmentry back to UC guest"
commit f1c9658d6802c4332f8bafdb049811bad5c9a786 Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Fri Dec 6 11:10:54 2013 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Fri Dec 6 11:10:54 2013 +0100 Revert "VMX: flush cache when vmentry back to UC guest" This reverts commit 86d60e85 as well as one related change from 62652c00 ("VMX: fix cr0.cd handling"), on the basis that all of this flushing is still insufficient and, while not known to fix anything, is known to negatively affect performance. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Release-acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx> Acked-by: Liu Jinsong <jinsong.liu@xxxxxxxxx> Acked-by: Eddie Dong <eddie.dong@xxxxxxxxx> --- xen/arch/x86/hvm/hvm.c | 6 ------ xen/arch/x86/hvm/vmx/vmx.c | 11 ----------- xen/include/asm-x86/hvm/vcpu.h | 1 - 3 files changed, 0 insertions(+), 18 deletions(-) diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index b1f8dfe..69f7e74 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -2571,9 +2571,6 @@ static enum hvm_copy_result __hvm_copy( return HVMCOPY_unhandleable; #endif - if ( unlikely(curr->arch.hvm_vcpu.cache_mode == NO_FILL_CACHE_MODE) ) - curr->arch.hvm_vcpu.hypervisor_access_uc_hvm_memory = 1; - while ( todo > 0 ) { count = min_t(int, PAGE_SIZE - (addr & ~PAGE_MASK), todo); @@ -2685,9 +2682,6 @@ static enum hvm_copy_result __hvm_clear(paddr_t addr, int size) return HVMCOPY_unhandleable; #endif - if ( unlikely(curr->arch.hvm_vcpu.cache_mode == NO_FILL_CACHE_MODE) ) - curr->arch.hvm_vcpu.hypervisor_access_uc_hvm_memory = 1; - while ( todo > 0 ) { count = min_t(int, PAGE_SIZE - (addr & ~PAGE_MASK), todo); diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 4ab15bc..dfff628 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -643,10 +643,6 @@ static void vmx_ctxt_switch_to(struct vcpu *v) __invept(INVEPT_SINGLE_CONTEXT, ept_get_eptp(ept_data), 0); } - /* For guest cr0.cd setting, do not use potentially polluted cache */ - if ( unlikely(v->arch.hvm_vcpu.cache_mode == NO_FILL_CACHE_MODE) ) - wbinvd(); - vmx_restore_guest_msrs(v); vmx_restore_dr(v); } @@ -3008,13 +3004,6 @@ void vmx_vmenter_helper(const struct cpu_user_regs *regs) struct hvm_vcpu_asid *p_asid; bool_t need_flush; - /* In case hypervisor access hvm memory when guest uc mode */ - if ( unlikely(curr->arch.hvm_vcpu.hypervisor_access_uc_hvm_memory) ) - { - curr->arch.hvm_vcpu.hypervisor_access_uc_hvm_memory = 0; - wbinvd(); - } - if ( !cpu_has_vmx_vpid ) goto out; if ( nestedhvm_vcpu_in_guestmode(curr) ) diff --git a/xen/include/asm-x86/hvm/vcpu.h b/xen/include/asm-x86/hvm/vcpu.h index c1abcec..122ab0d 100644 --- a/xen/include/asm-x86/hvm/vcpu.h +++ b/xen/include/asm-x86/hvm/vcpu.h @@ -172,7 +172,6 @@ struct hvm_vcpu { /* Which cache mode is this VCPU in (CR0:CD/NW)? */ u8 cache_mode; - bool_t hypervisor_access_uc_hvm_memory; struct hvm_vcpu_io hvm_io; -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |