linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
@ 2011-03-28  9:24 Daniel Kiper
  2011-03-28 15:41 ` Dave Hansen
  2011-03-28 22:46 ` David Rientjes
  0 siblings, 2 replies; 6+ messages in thread
From: Daniel Kiper @ 2011-03-28  9:24 UTC (permalink / raw)
  To: ian.campbell, akpm, andi.kleen, haicheng.li, fengguang.wu,
	jeremy, konrad.wilk, dan.magenheimer, v.tolstov, pasik, dave,
	wdauchy, rientjes, xen-devel, linux-kernel, linux-mm

Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro which aligns
given pfn to upper section and lower section boundary accordingly.

Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
---
 include/linux/mmzone.h |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 02ecb01..d342820 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -931,6 +931,9 @@ static inline unsigned long early_pfn_to_nid(unsigned long pfn)
 #define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
 #define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
 
+#define SECTION_ALIGN_UP(pfn)	(((pfn) + PAGES_PER_SECTION - 1) & PAGE_SECTION_MASK)
+#define SECTION_ALIGN_DOWN(pfn)	((pfn) & PAGE_SECTION_MASK)
+
 #ifdef CONFIG_SPARSEMEM
 
 /*
-- 
1.5.6.5

--
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>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
  2011-03-28  9:24 [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro Daniel Kiper
@ 2011-03-28 15:41 ` Dave Hansen
  2011-03-29 17:39   ` Daniel Kiper
  2011-03-28 22:46 ` David Rientjes
  1 sibling, 1 reply; 6+ messages in thread
From: Dave Hansen @ 2011-03-28 15:41 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: ian.campbell, akpm, andi.kleen, haicheng.li, fengguang.wu,
	jeremy, konrad.wilk, dan.magenheimer, v.tolstov, pasik, wdauchy,
	rientjes, xen-devel, linux-kernel, linux-mm

On Mon, 2011-03-28 at 11:24 +0200, Daniel Kiper wrote:
> Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro which aligns
> given pfn to upper section and lower section boundary accordingly.
> 
> Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
> ---
>  include/linux/mmzone.h |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index 02ecb01..d342820 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -931,6 +931,9 @@ static inline unsigned long early_pfn_to_nid(unsigned long pfn)
>  #define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
>  #define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
> 
> +#define SECTION_ALIGN_UP(pfn)	(((pfn) + PAGES_PER_SECTION - 1) & PAGE_SECTION_MASK)
> +#define SECTION_ALIGN_DOWN(pfn)	((pfn) & PAGE_SECTION_MASK)

There are certainly a lot of different ways to do this, including using
the existing ALIGN() macro, but you won't be the first to open-code
it. :)

Acked-by: Dave Hansen <dave@linux.vnet.ibm.com>

-- Dave

--
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>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
  2011-03-28  9:24 [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro Daniel Kiper
  2011-03-28 15:41 ` Dave Hansen
@ 2011-03-28 22:46 ` David Rientjes
  2011-03-29 17:32   ` Daniel Kiper
  1 sibling, 1 reply; 6+ messages in thread
From: David Rientjes @ 2011-03-28 22:46 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: ian.campbell, akpm, andi.kleen, haicheng.li, fengguang.wu,
	jeremy, konrad.wilk, dan.magenheimer, v.tolstov, pasik, dave,
	wdauchy, xen-devel, linux-kernel, linux-mm

On Mon, 28 Mar 2011, Daniel Kiper wrote:

> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> index 02ecb01..d342820 100644
> --- a/include/linux/mmzone.h
> +++ b/include/linux/mmzone.h
> @@ -931,6 +931,9 @@ static inline unsigned long early_pfn_to_nid(unsigned long pfn)
>  #define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
>  #define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
>  
> +#define SECTION_ALIGN_UP(pfn)	(((pfn) + PAGES_PER_SECTION - 1) & PAGE_SECTION_MASK)
> +#define SECTION_ALIGN_DOWN(pfn)	((pfn) & PAGE_SECTION_MASK)
> +
>  #ifdef CONFIG_SPARSEMEM
>  
>  /*

These are only valid for CONFIG_SPARSEMEM, so they need to be defined 
conditionally.

--
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>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
  2011-03-28 22:46 ` David Rientjes
@ 2011-03-29 17:32   ` Daniel Kiper
  2011-03-29 21:11     ` David Rientjes
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Kiper @ 2011-03-29 17:32 UTC (permalink / raw)
  To: David Rientjes
  Cc: Daniel Kiper, ian.campbell, akpm, andi.kleen, haicheng.li,
	fengguang.wu, jeremy, konrad.wilk, dan.magenheimer, v.tolstov,
	pasik, dave, wdauchy, xen-devel, linux-kernel, linux-mm

On Mon, Mar 28, 2011 at 03:46:27PM -0700, David Rientjes wrote:
> On Mon, 28 Mar 2011, Daniel Kiper wrote:
>
> > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> > index 02ecb01..d342820 100644
> > --- a/include/linux/mmzone.h
> > +++ b/include/linux/mmzone.h
> > @@ -931,6 +931,9 @@ static inline unsigned long early_pfn_to_nid(unsigned long pfn)
> >  #define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
> >  #define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
> >
> > +#define SECTION_ALIGN_UP(pfn)	(((pfn) + PAGES_PER_SECTION - 1) & PAGE_SECTION_MASK)
> > +#define SECTION_ALIGN_DOWN(pfn)	((pfn) & PAGE_SECTION_MASK)
> > +
> >  #ifdef CONFIG_SPARSEMEM
> >
> >  /*
>
> These are only valid for CONFIG_SPARSEMEM, so they need to be defined 
> conditionally.

OK, however, I think that pfn_to_section_nr()/section_nr_to_pfn()
should be defined conditionally, too.

Daniel

--
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>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
  2011-03-28 15:41 ` Dave Hansen
@ 2011-03-29 17:39   ` Daniel Kiper
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Kiper @ 2011-03-29 17:39 UTC (permalink / raw)
  To: Dave Hansen
  Cc: Daniel Kiper, ian.campbell, akpm, andi.kleen, haicheng.li,
	fengguang.wu, jeremy, konrad.wilk, dan.magenheimer, v.tolstov,
	pasik, wdauchy, rientjes, xen-devel, linux-kernel, linux-mm

On Mon, Mar 28, 2011 at 08:41:24AM -0700, Dave Hansen wrote:
> On Mon, 2011-03-28 at 11:24 +0200, Daniel Kiper wrote:
> > Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro which aligns
> > given pfn to upper section and lower section boundary accordingly.
> >
> > Signed-off-by: Daniel Kiper <dkiper@net-space.pl>
> > ---
> >  include/linux/mmzone.h |    3 +++
> >  1 files changed, 3 insertions(+), 0 deletions(-)
> >
> > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
> > index 02ecb01..d342820 100644
> > --- a/include/linux/mmzone.h
> > +++ b/include/linux/mmzone.h
> > @@ -931,6 +931,9 @@ static inline unsigned long early_pfn_to_nid(unsigned long pfn)
> >  #define pfn_to_section_nr(pfn) ((pfn) >> PFN_SECTION_SHIFT)
> >  #define section_nr_to_pfn(sec) ((sec) << PFN_SECTION_SHIFT)
> >
> > +#define SECTION_ALIGN_UP(pfn)	(((pfn) + PAGES_PER_SECTION - 1) & PAGE_SECTION_MASK)
> > +#define SECTION_ALIGN_DOWN(pfn)	((pfn) & PAGE_SECTION_MASK)
>
> There are certainly a lot of different ways to do this, including using
> the existing ALIGN() macro, but you won't be the first to open-code
> it. :)

Sorry, I forgot about ALIGN(). However, there is only up version available.
That is why I prefer open-code version here. It is clearer in both
cases what is going on.

Daniel

--
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>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
  2011-03-29 17:32   ` Daniel Kiper
@ 2011-03-29 21:11     ` David Rientjes
  0 siblings, 0 replies; 6+ messages in thread
From: David Rientjes @ 2011-03-29 21:11 UTC (permalink / raw)
  To: Daniel Kiper
  Cc: ian.campbell, akpm, andi.kleen, haicheng.li, fengguang.wu,
	jeremy, konrad.wilk, dan.magenheimer, v.tolstov, pasik, dave,
	wdauchy, xen-devel, linux-kernel, linux-mm

On Tue, 29 Mar 2011, Daniel Kiper wrote:

> > These are only valid for CONFIG_SPARSEMEM, so they need to be defined 
> > conditionally.
> 
> OK, however, I think that pfn_to_section_nr()/section_nr_to_pfn()
> should be defined conditionally, too.
> 

Yes, and you could try removing this from include/linux/mm.h:

#ifndef PFN_SECTION_SHIFT
#define PFN_SECTION_SHIFT 0 
#endif

then we'll reveal anything using these conversion macros that don't rely 
on sparsemem.

--
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>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-03-29 21:13 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-28  9:24 [PATCH 2/3] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro Daniel Kiper
2011-03-28 15:41 ` Dave Hansen
2011-03-29 17:39   ` Daniel Kiper
2011-03-28 22:46 ` David Rientjes
2011-03-29 17:32   ` Daniel Kiper
2011-03-29 21:11     ` David Rientjes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox