From mboxrd@z Thu Jan 1 00:00:00 1970 From: Razvan Cojocaru Subject: Re: [PATCH V2 3/3] xen/vm_event: Deny register writes if refused by vm_event reply Date: Fri, 26 Jun 2015 13:33:14 +0300 Message-ID: <558D2A6A.6050508@bitdefender.com> References: <1434359007-9302-1-git-send-email-rcojocaru@bitdefender.com> <1434359007-9302-4-git-send-email-rcojocaru@bitdefender.com> <558D2954020000780008A029@mail.emea.novell.com> <558D18AC.70203@bitdefender.com> <558D39E6020000780008A1A3@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <558D39E6020000780008A1A3@mail.emea.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Jan Beulich Cc: tim@xen.org, kevin.tian@intel.com, wei.liu2@citrix.com, ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com, jun.nakajima@intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, eddie.dong@intel.com, Aravind.Gopalakrishnan@amd.com, suravee.suthikulpanit@amd.com, keir@xen.org, boris.ostrovsky@oracle.com List-Id: xen-devel@lists.xenproject.org On 06/26/2015 12:39 PM, Jan Beulich wrote: >>>> @@ -1249,15 +1250,16 @@ static void load_vvmcs_host_state(struct vcpu *v) >>>> >>> __vmwrite(vmcs_h2g_field[i].guest_field, r); >>>> >>> } >>>> >>> >>>> >>> - hvm_set_cr0(__get_vvmcs(vvmcs, HOST_CR0)); >>>> >>> - hvm_set_cr4(__get_vvmcs(vvmcs, HOST_CR4)); >>>> >>> - hvm_set_cr3(__get_vvmcs(vvmcs, HOST_CR3)); >>>> >>> + hvm_set_cr0(__get_vvmcs(vvmcs, HOST_CR0), 1); >>>> >>> + hvm_set_cr4(__get_vvmcs(vvmcs, HOST_CR4), 1); >>>> >>> + hvm_set_cr3(__get_vvmcs(vvmcs, HOST_CR3), 1); >>>> >>> >>>> >>> control = __get_vvmcs(vvmcs, VM_EXIT_CONTROLS); >>>> >>> if ( control & VM_EXIT_LOAD_HOST_PAT ) >>>> >>> hvm_set_guest_pat(v, __get_vvmcs(vvmcs, HOST_PAT)); >>>> >>> if ( control & VM_EXIT_LOAD_PERF_GLOBAL_CTRL ) >>>> >>> - hvm_msr_write_intercept(MSR_CORE_PERF_GLOBAL_CTRL, __get_vvmcs(vvmcs, HOST_PERF_GLOBAL_CTRL)); >>>> >>> + hvm_msr_write_intercept(MSR_CORE_PERF_GLOBAL_CTRL, >>>> >>> + __get_vvmcs(vvmcs, HOST_PERF_GLOBAL_CTRL), 1); >>> >> >>> >> Considering these together with the above - do you really want/ >>> >> need to intercept and send events for both host and guest shadow >>> >> state changes? >> > >> > Guest MSRs should suffice indeed. I was just trying to be consistent, >> > but no, the host changes should not be necessary. > Aren't you inverting things here? We're talking about the guest's host > vs (L2) guest values here afaict (note the __get_vvmcs() uses). I am indeed, clarification appreciated. Thanks, Razvan