Skip to content

Commit

Permalink
x86/mm: Only add extra pages count for the first memory range during …
Browse files Browse the repository at this point in the history
…pre-allocation early page table space

Robin found this regression:

| I just tried to boot an 8TB system.  It fails very early in boot with:
| Kernel panic - not syncing: Cannot find space for the kernel page tables

git bisect commit 722bc6b.

A git revert of that commit does boot past that point on the 8TB
configuration.

That commit will add up extra pages for all memory range even
above 4g.

Try to limit that extra page count adding to first entry only.

Bisected-by: Robin Holt <[email protected]>
Tested-by: Robin Holt <[email protected]>
Signed-off-by: Yinghai Lu <[email protected]>
Cc: WANG Cong <[email protected]>
Cc: Linus Torvalds <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Link: http://lkml.kernel.org/r/CAE9FiQUj3wyzQxtq9yzBNc9u220p8JZ1FYHG7t%3DMOzJ%[email protected]
Signed-off-by: Ingo Molnar <[email protected]>
  • Loading branch information
Yinghai Lu authored and Ingo Molnar committed Jun 8, 2012
1 parent 743628e commit bd2753b
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion arch/x86/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,8 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
extra += PMD_SIZE;
#endif
/* The first 2/4M doesn't use large pages. */
extra += mr->end - mr->start;
if (mr->start < PMD_SIZE)
extra += mr->end - mr->start;

ptes = (extra + PAGE_SIZE - 1) >> PAGE_SHIFT;
} else
Expand Down

0 comments on commit bd2753b

Please sign in to comment.