Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 74345
b: refs/heads/master
c: ba72cb8
h: refs/heads/master
i:
  74343: faf90db
v: v3
  • Loading branch information
Mel Gorman authored and Linus Torvalds committed Nov 29, 2007
1 parent 4cf7b51 commit 2aac5f1
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: ee592a5bd5180cc1ffaf5acd7bf1e91e0d854a08
refs/heads/master: ba72cb8cb0cdc0a65b3abe9a387f1a26bfd49b8a
5 changes: 5 additions & 0 deletions trunk/arch/powerpc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,11 @@ config FORCE_MAX_ZONEORDER
default "9" if PPC_64K_PAGES
default "13"

config HUGETLB_PAGE_SIZE_VARIABLE
bool
depends on HUGETLB_PAGE
default y

config MATH_EMULATION
bool "Math emulation"
depends on 4xx || 8xx || E200 || PPC_MPC832x || E500
Expand Down
23 changes: 21 additions & 2 deletions trunk/mm/page_alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -3265,6 +3265,16 @@ static void inline setup_usemap(struct pglist_data *pgdat,
#endif /* CONFIG_SPARSEMEM */

#ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE

/* Return a sensible default order for the pageblock size. */
static inline int pageblock_default_order(void)
{
if (HPAGE_SHIFT > PAGE_SHIFT)
return HUGETLB_PAGE_ORDER;

return MAX_ORDER-1;
}

/* Initialise the number of pages represented by NR_PAGEBLOCK_BITS */
static inline void __init set_pageblock_order(unsigned int order)
{
Expand All @@ -3280,7 +3290,16 @@ static inline void __init set_pageblock_order(unsigned int order)
}
#else /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */

/* Defined this way to avoid accidently referencing HUGETLB_PAGE_ORDER */
/*
* When CONFIG_HUGETLB_PAGE_SIZE_VARIABLE is not set, set_pageblock_order()
* and pageblock_default_order() are unused as pageblock_order is set
* at compile-time. See include/linux/pageblock-flags.h for the values of
* pageblock_order based on the kernel config
*/
static inline int pageblock_default_order(unsigned int order)
{
return MAX_ORDER-1;
}
#define set_pageblock_order(x) do {} while (0)

#endif /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */
Expand Down Expand Up @@ -3365,7 +3384,7 @@ static void __meminit free_area_init_core(struct pglist_data *pgdat,
if (!size)
continue;

set_pageblock_order(HUGETLB_PAGE_ORDER);
set_pageblock_order(pageblock_default_order());
setup_usemap(pgdat, zone, size);
ret = init_currently_empty_zone(zone, zone_start_pfn,
size, MEMMAP_EARLY);
Expand Down

0 comments on commit 2aac5f1

Please sign in to comment.