From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: [PATCH 1/3] x86/xen: don't count how many PFNs are identity mapped Date: Wed, 07 Jan 2015 16:10:34 +0100 Message-ID: <54AD4C6A.6050404@suse.com> References: <1420642048-12236-1-git-send-email-david.vrabel@citrix.com> <1420642048-12236-2-git-send-email-david.vrabel@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Y8sFp-0006Li-Fi for xen-devel@lists.xenproject.org; Wed, 07 Jan 2015 15:10:37 +0000 In-Reply-To: <1420642048-12236-2-git-send-email-david.vrabel@citrix.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: David Vrabel , xen-devel@lists.xenproject.org Cc: Boris Ostrovsky List-Id: xen-devel@lists.xenproject.org On 01/07/2015 03:47 PM, David Vrabel wrote: > This accounting is just used to print a diagnostic message that isn't > very useful. > > Signed-off-by: David Vrabel Reviewed-by: Juergen Gross > --- > arch/x86/xen/setup.c | 27 +++++++++------------------ > 1 file changed, 9 insertions(+), 18 deletions(-) > > diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c > index dfd77de..664dffc 100644 > --- a/arch/x86/xen/setup.c > +++ b/arch/x86/xen/setup.c > @@ -229,15 +229,14 @@ static int __init xen_free_mfn(unsigned long mfn) > * as a fallback if the remapping fails. > */ > static void __init xen_set_identity_and_release_chunk(unsigned long start_pfn, > - unsigned long end_pfn, unsigned long nr_pages, unsigned long *identity, > - unsigned long *released) > + unsigned long end_pfn, unsigned long nr_pages, unsigned long *released) > { > - unsigned long len = 0; > unsigned long pfn, end; > int ret; > > WARN_ON(start_pfn > end_pfn); > > + /* Release pages first. */ > end = min(end_pfn, nr_pages); > for (pfn = start_pfn; pfn < end; pfn++) { > unsigned long mfn = pfn_to_mfn(pfn); > @@ -250,16 +249,14 @@ static void __init xen_set_identity_and_release_chunk(unsigned long start_pfn, > WARN(ret != 1, "Failed to release pfn %lx err=%d\n", pfn, ret); > > if (ret == 1) { > + (*released)++; > if (!__set_phys_to_machine(pfn, INVALID_P2M_ENTRY)) > break; > - len++; > } else > break; > } > > - /* Need to release pages first */ > - *released += len; > - *identity += set_phys_range_identity(start_pfn, end_pfn); > + set_phys_range_identity(start_pfn, end_pfn); > } > > /* > @@ -318,7 +315,6 @@ static void __init xen_do_set_identity_and_remap_chunk( > unsigned long ident_pfn_iter, remap_pfn_iter; > unsigned long ident_end_pfn = start_pfn + size; > unsigned long left = size; > - unsigned long ident_cnt = 0; > unsigned int i, chunk; > > WARN_ON(size == 0); > @@ -347,8 +343,7 @@ static void __init xen_do_set_identity_and_remap_chunk( > xen_remap_mfn = mfn; > > /* Set identity map */ > - ident_cnt += set_phys_range_identity(ident_pfn_iter, > - ident_pfn_iter + chunk); > + set_phys_range_identity(ident_pfn_iter, ident_pfn_iter + chunk); > > left -= chunk; > } > @@ -371,7 +366,7 @@ static void __init xen_do_set_identity_and_remap_chunk( > static unsigned long __init xen_set_identity_and_remap_chunk( > const struct e820entry *list, size_t map_size, unsigned long start_pfn, > unsigned long end_pfn, unsigned long nr_pages, unsigned long remap_pfn, > - unsigned long *identity, unsigned long *released) > + unsigned long *released) > { > unsigned long pfn; > unsigned long i = 0; > @@ -386,8 +381,7 @@ static unsigned long __init xen_set_identity_and_remap_chunk( > /* Do not remap pages beyond the current allocation */ > if (cur_pfn >= nr_pages) { > /* Identity map remaining pages */ > - *identity += set_phys_range_identity(cur_pfn, > - cur_pfn + size); > + set_phys_range_identity(cur_pfn, cur_pfn + size); > break; > } > if (cur_pfn + size > nr_pages) > @@ -398,7 +392,7 @@ static unsigned long __init xen_set_identity_and_remap_chunk( > if (!remap_range_size) { > pr_warning("Unable to find available pfn range, not remapping identity pages\n"); > xen_set_identity_and_release_chunk(cur_pfn, > - cur_pfn + left, nr_pages, identity, released); > + cur_pfn + left, nr_pages, released); > break; > } > /* Adjust size to fit in current e820 RAM region */ > @@ -410,7 +404,6 @@ static unsigned long __init xen_set_identity_and_remap_chunk( > /* Update variables to reflect new mappings. */ > i += size; > remap_pfn += size; > - *identity += size; > } > > /* > @@ -430,7 +423,6 @@ static void __init xen_set_identity_and_remap( > unsigned long *released) > { > phys_addr_t start = 0; > - unsigned long identity = 0; > unsigned long last_pfn = nr_pages; > const struct e820entry *entry; > unsigned long num_released = 0; > @@ -460,14 +452,13 @@ static void __init xen_set_identity_and_remap( > last_pfn = xen_set_identity_and_remap_chunk( > list, map_size, start_pfn, > end_pfn, nr_pages, last_pfn, > - &identity, &num_released); > + &num_released); > start = end; > } > } > > *released = num_released; > > - pr_info("Set %ld page(s) to 1-1 mapping\n", identity); > pr_info("Released %ld page(s)\n", num_released); > } > >