Daniel Kiper
2011-May-17 21:37 UTC
[Xen-devel] [PATCH V3 1/2] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
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>
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
---
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 d715200..217bcf6 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -956,6 +956,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)
+
struct page;
struct page_cgroup;
struct mem_section {
--
1.5.6.5
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
David Rientjes
2011-May-19 03:21 UTC
[Xen-devel] Re: [PATCH V3 1/2] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
On Tue, 17 May 2011, Daniel Kiper wrote:> diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index d715200..217bcf6 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -956,6 +956,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) > + > struct page; > struct page_cgroup; > struct mem_section {These seem useful. Could you convert the code in drivers/base/node.c, mm/page_cgroup.c, mm/page_alloc.c, and mm/sparse.c that already do this to use the new macros? _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Daniel Kiper
2011-May-19 19:56 UTC
[Xen-devel] Re: [PATCH V3 1/2] mm: Add SECTION_ALIGN_UP() and SECTION_ALIGN_DOWN() macro
On Wed, May 18, 2011 at 08:21:23PM -0700, David Rientjes wrote:> On Tue, 17 May 2011, Daniel Kiper wrote: > > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > > index d715200..217bcf6 100644 > > --- a/include/linux/mmzone.h > > +++ b/include/linux/mmzone.h > > @@ -956,6 +956,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) > > + > > struct page; > > struct page_cgroup; > > struct mem_section { > > These seem useful. Could you convert the code in drivers/base/node.c, > mm/page_cgroup.c, mm/page_alloc.c, and mm/sparse.c that already do this to > use the new macros?No problem. I do that in next week or two. Daniel _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel