All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [patch 3/4] mm: bootmem: drop superfluous range check when freeing pages in bulk
Date: Tue, 13 Dec 2011 16:28:43 +0100	[thread overview]
Message-ID: <20111213152843.GD4585@pengutronix.de> (raw)
In-Reply-To: <1323784711-1937-4-git-send-email-hannes@cmpxchg.org>

Hello Johannes,

On Tue, Dec 13, 2011 at 02:58:30PM +0100, Johannes Weiner wrote:
> The area node_bootmem_map represents is aligned to BITS_PER_LONG, and
> all bits in any aligned word of that map valid.  When the represented
> area extends beyond the end of the node, the non-existant pages will
> be marked as reserved.
> 
> As a result, when freeing a page block, doing an explicit range check
> for whether that block is within the node's range is redundant as the
> bitmap is consulted anyway to see whether all pages in the block are
> unreserved.
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
I suggest to drop my patch then and add something like

	Reported-by: $me

to this one instead.

Other than that I will give your series a spin on my ARM machine later
today.

Best regards
Uwe

> ---
>  mm/bootmem.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/mm/bootmem.c b/mm/bootmem.c
> index 3e6f152..1aea171 100644
> --- a/mm/bootmem.c
> +++ b/mm/bootmem.c
> @@ -197,7 +197,7 @@ static unsigned long __init free_all_bootmem_core(bootmem_data_t *bdata)
>  		idx = start - bdata->node_min_pfn;
>  		vec = ~map[idx / BITS_PER_LONG];
>  
> -		if (aligned && vec == ~0UL && start + BITS_PER_LONG <= end) {
> +		if (aligned && vec == ~0UL) {
>  			int order = ilog2(BITS_PER_LONG);
>  
>  			__free_pages_bootmem(pfn_to_page(start), order);
> -- 
> 1.7.7.3
> 
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-Konig            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

WARNING: multiple messages have this Message-ID (diff)
From: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [patch 3/4] mm: bootmem: drop superfluous range check when freeing pages in bulk
Date: Tue, 13 Dec 2011 16:28:43 +0100	[thread overview]
Message-ID: <20111213152843.GD4585@pengutronix.de> (raw)
In-Reply-To: <1323784711-1937-4-git-send-email-hannes@cmpxchg.org>

Hello Johannes,

On Tue, Dec 13, 2011 at 02:58:30PM +0100, Johannes Weiner wrote:
> The area node_bootmem_map represents is aligned to BITS_PER_LONG, and
> all bits in any aligned word of that map valid.  When the represented
> area extends beyond the end of the node, the non-existant pages will
> be marked as reserved.
> 
> As a result, when freeing a page block, doing an explicit range check
> for whether that block is within the node's range is redundant as the
> bitmap is consulted anyway to see whether all pages in the block are
> unreserved.
> 
> Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
I suggest to drop my patch then and add something like

	Reported-by: $me

to this one instead.

Other than that I will give your series a spin on my ARM machine later
today.

Best regards
Uwe

> ---
>  mm/bootmem.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/mm/bootmem.c b/mm/bootmem.c
> index 3e6f152..1aea171 100644
> --- a/mm/bootmem.c
> +++ b/mm/bootmem.c
> @@ -197,7 +197,7 @@ static unsigned long __init free_all_bootmem_core(bootmem_data_t *bdata)
>  		idx = start - bdata->node_min_pfn;
>  		vec = ~map[idx / BITS_PER_LONG];
>  
> -		if (aligned && vec == ~0UL && start + BITS_PER_LONG <= end) {
> +		if (aligned && vec == ~0UL) {
>  			int order = ilog2(BITS_PER_LONG);
>  
>  			__free_pages_bootmem(pfn_to_page(start), order);
> -- 
> 1.7.7.3
> 
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

  reply	other threads:[~2011-12-13 15:28 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-13 13:58 [patch 0/4] mm: bootmem / page allocator bootstrap fixlets Johannes Weiner
2011-12-13 13:58 ` Johannes Weiner
2011-12-13 13:58 ` [patch 1/4] mm: page_alloc: remove order assumption from __free_pages_bootmem() Johannes Weiner
2011-12-13 13:58   ` Johannes Weiner
2011-12-13 22:05   ` Andrew Morton
2011-12-13 22:05     ` Andrew Morton
2011-12-13 13:58 ` [patch 2/4] mm: page_alloc: generalize order handling in __free_pages_bootmem() Johannes Weiner
2011-12-13 13:58   ` Johannes Weiner
2011-12-13 13:58 ` [patch 3/4] mm: bootmem: drop superfluous range check when freeing pages in bulk Johannes Weiner
2011-12-13 13:58   ` Johannes Weiner
2011-12-13 15:28   ` Uwe Kleine-König [this message]
2011-12-13 15:28     ` Uwe Kleine-König
2011-12-13 15:44     ` Johannes Weiner
2011-12-13 15:44       ` Johannes Weiner
2011-12-13 13:58 ` [patch 4/4] mm: bootmem: try harder to free " Johannes Weiner
2011-12-13 13:58   ` Johannes Weiner
2011-12-14 20:20   ` Uwe Kleine-König
2011-12-14 20:20     ` Uwe Kleine-König
2011-12-14 20:42     ` Johannes Weiner
2011-12-14 20:42       ` Johannes Weiner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111213152843.GD4585@pengutronix.de \
    --to=u.kleine-koenig@pengutronix.de \
    --cc=akpm@linux-foundation.org \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.