Skip to content

Commit

Permalink
page allocator: inline some __alloc_pages() wrappers
Browse files Browse the repository at this point in the history
Two zonelist patch series rewrote __page_alloc() largely.  Now, it is just
a wrapper function.  Inlining them will save a function call.

[akpm@linux-foundation.org: export __alloc_pages_internal]
Cc: Lee Schermerhorn <lee.schermerhorn@hp.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
kosaki authored and torvalds committed Jul 24, 2008
1 parent efe9e77 commit e4048e5
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 21 deletions.
21 changes: 17 additions & 4 deletions include/linux/gfp.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,11 +173,24 @@ static inline void arch_free_page(struct page *page, int order) { }
static inline void arch_alloc_page(struct page *page, int order) { }
#endif

extern struct page *__alloc_pages(gfp_t, unsigned int, struct zonelist *);
struct page *
__alloc_pages_internal(gfp_t gfp_mask, unsigned int order,
struct zonelist *zonelist, nodemask_t *nodemask);

static inline struct page *
__alloc_pages(gfp_t gfp_mask, unsigned int order,
struct zonelist *zonelist)
{
return __alloc_pages_internal(gfp_mask, order, zonelist, NULL);
}

static inline struct page *
__alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
struct zonelist *zonelist, nodemask_t *nodemask)
{
return __alloc_pages_internal(gfp_mask, order, zonelist, nodemask);
}

extern struct page *
__alloc_pages_nodemask(gfp_t, unsigned int,
struct zonelist *, nodemask_t *nodemask);

static inline struct page *alloc_pages_node(int nid, gfp_t gfp_mask,
unsigned int order)
Expand Down
19 changes: 2 additions & 17 deletions mm/page_alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1429,7 +1429,7 @@ get_page_from_freelist(gfp_t gfp_mask, nodemask_t *nodemask, unsigned int order,
/*
* This is the 'heart' of the zoned buddy allocator.
*/
static struct page *
struct page *
__alloc_pages_internal(gfp_t gfp_mask, unsigned int order,
struct zonelist *zonelist, nodemask_t *nodemask)
{
Expand Down Expand Up @@ -1632,22 +1632,7 @@ __alloc_pages_internal(gfp_t gfp_mask, unsigned int order,
got_pg:
return page;
}

struct page *
__alloc_pages(gfp_t gfp_mask, unsigned int order,
struct zonelist *zonelist)
{
return __alloc_pages_internal(gfp_mask, order, zonelist, NULL);
}

struct page *
__alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
struct zonelist *zonelist, nodemask_t *nodemask)
{
return __alloc_pages_internal(gfp_mask, order, zonelist, nodemask);
}

EXPORT_SYMBOL(__alloc_pages);
EXPORT_SYMBOL(__alloc_pages_internal);

/*
* Common helper functions.
Expand Down

0 comments on commit e4048e5

Please sign in to comment.