From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [patch 12/13] KVM: x86: trap invlpg Date: Sun, 07 Sep 2008 14:14:04 +0300 Message-ID: <48C3B77C.4050206@qumranet.com> References: <20080906184822.560099087@localhost.localdomain> <20080906192431.462798798@localhost.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Marcelo Tosatti Return-path: Received: from il.qumranet.com ([212.179.150.194]:36776 "EHLO il.qumranet.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753140AbYIGLOG (ORCPT ); Sun, 7 Sep 2008 07:14:06 -0400 In-Reply-To: <20080906192431.462798798@localhost.localdomain> Sender: kvm-owner@vger.kernel.org List-ID: Marcelo Tosatti wrote: > With pages out of sync invlpg needs to be trapped. For now simply nuke > the entry. > > We could kvm_mmu_pte_write() it, with some modifications. Probably worth it for the guest breaking cow. > [EXIT_REASON_MSR_WRITE] = handle_wrmsr, > [EXIT_REASON_PENDING_INTERRUPT] = handle_interrupt_window, > [EXIT_REASON_HLT] = handle_halt, > + [EXIT_REASON_INVLPG] = handle_invlpg, > [EXIT_REASON_VMCALL] = handle_vmcall, > [EXIT_REASON_TPR_BELOW_THRESHOLD] = handle_tpr_below_threshold, > [EXIT_REASON_APIC_ACCESS] = handle_apic_access, We shouldn't do that if ept or npt is enabled. > Index: kvm/arch/x86/kvm/mmu.c > =================================================================== > --- kvm.orig/arch/x86/kvm/mmu.c > +++ kvm/arch/x86/kvm/mmu.c > @@ -889,6 +889,12 @@ static int nonpaging_sync_page(struct kv > return 1; > } > > +static void nonpaging_invlpg(struct kvm_vcpu *vcpu, gva_t gva) > +{ > + /* should never happen */ > + WARN_ON(1); > +} > Nevertheless, invlpg is legal in real mode. -- error compiling committee.c: too many arguments to function