From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: =?utf-8?q?=5BPATCH_4/4=5D_x86/shadow=3A_make_some_log?= =?utf-8?q?=E2=80=91dirty_handling_functions_static?= Date: Wed, 28 Jan 2015 11:18:58 +0000 Message-ID: <54C8C5A2.7070901@citrix.com> References: <54C8A524020000780005A27E@mail.emea.novell.com> <54C8A7F4020000780005A2DA@mail.emea.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1YGQeF-00032k-BP for xen-devel@lists.xenproject.org; Wed, 28 Jan 2015 11:19:03 +0000 In-Reply-To: <54C8A7F4020000780005A2DA@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 , xen-devel Cc: Tim Deegan , Keir Fraser List-Id: xen-devel@lists.xenproject.org On 28/01/15 08:12, Jan Beulich wrote: > Noticed while introducing the stub replacement for disabling shadow > paging support at build time. > > Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper > > --- a/xen/arch/x86/mm/shadow/common.c > +++ b/xen/arch/x86/mm/shadow/common.c > @@ -41,6 +41,10 @@ > > DEFINE_PER_CPU(uint32_t,trace_shadow_path_flags); > > +static int sh_enable_log_dirty(struct domain *, bool_t log_global); > +static int sh_disable_log_dirty(struct domain *); > +static void sh_clean_dirty_bitmap(struct domain *); > + > /* Set up the shadow-specific parts of a domain struct at start of day. > * Called for every domain from arch_domain_create() */ > int shadow_domain_init(struct domain *d, unsigned int domcr_flags) > @@ -49,8 +53,8 @@ int shadow_domain_init(struct domain *d, > INIT_PAGE_LIST_HEAD(&d->arch.paging.shadow.pinned_shadows); > > /* Use shadow pagetables for log-dirty support */ > - paging_log_dirty_init(d, shadow_enable_log_dirty, > - shadow_disable_log_dirty, shadow_clean_dirty_bitmap); > + paging_log_dirty_init(d, sh_enable_log_dirty, > + sh_disable_log_dirty, sh_clean_dirty_bitmap); > > #if (SHADOW_OPTIMIZATIONS & SHOPT_OUT_OF_SYNC) > d->arch.paging.shadow.oos_active = 0; > @@ -3422,7 +3426,7 @@ shadow_write_p2m_entry(struct domain *d, > /* Shadow specific code which is called in paging_log_dirty_enable(). > * Return 0 if no problem found. > */ > -int shadow_enable_log_dirty(struct domain *d, bool_t log_global) > +static int sh_enable_log_dirty(struct domain *d, bool_t log_global) > { > int ret; > > @@ -3450,7 +3454,7 @@ int shadow_enable_log_dirty(struct domai > } > > /* shadow specfic code which is called in paging_log_dirty_disable() */ > -int shadow_disable_log_dirty(struct domain *d) > +static int sh_disable_log_dirty(struct domain *d) > { > int ret; > > @@ -3464,7 +3468,7 @@ int shadow_disable_log_dirty(struct doma > /* This function is called when we CLEAN log dirty bitmap. See > * paging_log_dirty_op() for details. > */ > -void shadow_clean_dirty_bitmap(struct domain *d) > +static void sh_clean_dirty_bitmap(struct domain *d) > { > paging_lock(d); > /* Need to revoke write access to the domain's pages again. > --- a/xen/include/asm-x86/shadow.h > +++ b/xen/include/asm-x86/shadow.h > @@ -77,15 +77,6 @@ void shadow_teardown(struct domain *d); > /* Call once all of the references to the domain have gone away */ > void shadow_final_teardown(struct domain *d); > > -/* shadow code to call when log dirty is enabled */ > -int shadow_enable_log_dirty(struct domain *d, bool_t log_global); > - > -/* shadow code to call when log dirty is disabled */ > -int shadow_disable_log_dirty(struct domain *d); > - > -/* shadow code to call when bitmap is being cleaned */ > -void shadow_clean_dirty_bitmap(struct domain *d); > - > /* Update all the things that are derived from the guest's CR0/CR3/CR4. > * Called to initialize paging structures if the paging mode > * has changed, and when bringing up a VCPU for the first time. */ > > >