Commit 1172fbd0 authored by Anton Blanchard's avatar Anton Blanchard Committed by Linus Torvalds

[PATCH] Fix ppc64 max_pfn issue

I noticed excessive time in the pid hash functions on a ppc64 box. It
turns out the pid hash is being sized way too small, eg on a 16GB box:

PID hash table entries: 16 (order 4: 256 bytes)

The reason is that the pid hash init function uses max_pfn before it was
setup on ppc64. With the following patch things are good again:

PID hash table entries: 4096 (order 12: 65536 bytes)
Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 2813e143
...@@ -533,6 +533,8 @@ void __init do_init_bootmem(void) ...@@ -533,6 +533,8 @@ void __init do_init_bootmem(void)
unsigned long total_pages = lmb_end_of_DRAM() >> PAGE_SHIFT; unsigned long total_pages = lmb_end_of_DRAM() >> PAGE_SHIFT;
int boot_mapsize; int boot_mapsize;
max_pfn = max_low_pfn;
/* /*
* Find an area to use for the bootmem bitmap. Calculate the size of * Find an area to use for the bootmem bitmap. Calculate the size of
* bitmap required as (Total Memory) / PAGE_SIZE / BITS_PER_BYTE. * bitmap required as (Total Memory) / PAGE_SIZE / BITS_PER_BYTE.
...@@ -629,7 +631,6 @@ void __init mem_init(void) ...@@ -629,7 +631,6 @@ void __init mem_init(void)
num_physpages = max_low_pfn; /* RAM is assumed contiguous */ num_physpages = max_low_pfn; /* RAM is assumed contiguous */
high_memory = (void *) __va(max_low_pfn * PAGE_SIZE); high_memory = (void *) __va(max_low_pfn * PAGE_SIZE);
max_pfn = max_low_pfn;
#ifdef CONFIG_DISCONTIGMEM #ifdef CONFIG_DISCONTIGMEM
{ {
......
...@@ -356,6 +356,7 @@ void __init do_init_bootmem(void) ...@@ -356,6 +356,7 @@ void __init do_init_bootmem(void)
min_low_pfn = 0; min_low_pfn = 0;
max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT; max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT;
max_pfn = max_low_pfn;
if (parse_numa_properties()) if (parse_numa_properties())
setup_nonnuma(); setup_nonnuma();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment