From mboxrd@z Thu Jan 1 00:00:00 1970 From: Razvan Cojocaru Subject: Re: [PATCH RFC V5 4/5] xen, libxc: Request page fault injection via libxc Date: Thu, 07 Aug 2014 10:22:51 +0300 Message-ID: <53E3294B.7090503@bitdefender.com> References: <1407340738-3374-1-git-send-email-rcojocaru@bitdefender.com> <1407340738-3374-4-git-send-email-rcojocaru@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1407340738-3374-4-git-send-email-rcojocaru@bitdefender.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: xen-devel@lists.xen.org Cc: kevin.tian@intel.com, ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com, jun.nakajima@intel.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, eddie.dong@intel.com, JBeulich@suse.com List-Id: xen-devel@lists.xenproject.org On 08/06/2014 06:58 PM, Razvan Cojocaru wrote: > Added new XEN_DOMCTL_set_pagefault_info hypercall, used by libxc's > new xc_domain_set_pagefault_info() function to set per-domain page > fault injection information. All a call does is set per-domain info, > and nothing actually happens until VMENTRY time, and then only if > all conditions are met (the guest is in user mode, the set value > matches CR3, and there are no other pending traps). > This mechanism allows bringing in swapped-out pages for inspection. > > Changes since V2: > - Removed superfluous memset(&ctxt, 0, sizeof(struct hvm_hw_cpu)). > - Now checking SS.DPL instead of CS.DPL to see if the guest is in > user mode. > - Removed superfluous fault_info members initialization. > - Now returning -EINVAL if !has_hvm_container_domain(d) on > XEN_DOMCTL_set_pagefault_info. > - Moved struct fault_info from struct domain to struct hvm_domain. > - Collapsed explicit initialization of the fault_info members into a > one-line assignment on the tools/libxc side. > - Now using write_access as a proper bool instead of shifting and > OR-ing it with PFEC_user_mode. > > Changes since V3: > - Now checking that is_hvm_domain(d) in do_domctl() (consistent with > the test in the actual page fault injection code). > - XEN_DOMCTL_set_pagefault_info now extends the proper range. > - Added a likely() around the > d->arch.hvm_domain.fault_info.virtual_address == 0 check. > - Replaced hvm_funcs.save_cpu_ctxt() function call with lighter code. > - Split the vmx.c page fault injection function into a check > function and an inject function. > > Changes since V4: > - Added "valid" flag instead of relying on virtual address 0 as a > special case. > - Using #defines instead of magic constants in vmx_vmcs_save(). > - Padded struct xen_domctl_set_pagefault_info. > - Coding style and readability changes. > > Signed-off-by: Razvan Cojocaru Sorry, forgot the Acked-by: Ian Campbell on this one. Thanks, Razvan Cojocaru