• Russ Anderson's avatar
    mm: zone_end_pfn is too small · f9228b20
    Russ Anderson authored
    Booting with 32 TBytes memory hits BUG at mm/page_alloc.c:552! (output
    below).
    
    The key hint is "page 4294967296 outside zone".
    4294967296 = 0x100000000 (bit 32 is set).
    
    The problem is in include/linux/mmzone.h:
    
      530 static inline unsigned zone_end_pfn(const struct zone *zone)
      531 {
      532         return zone->zone_start_pfn + zone->spanned_pages;
      533 }
    
    zone_end_pfn is "unsigned" (32 bits).  Changing it to "unsigned long"
    (64 bits) fixes the problem.
    
    zone_end_pfn() was added recently in commit 108bcc96 ("mm: add & use
    zone_end_pfn() and zone_spans_pfn()")
    
    Output from the failure.
    
      No AGP bridge found
      page 4294967296 outside zone [ 4294967296 - 4327469056 ]
      ------------[ cut here ]------------
      kernel BUG at mm/page_alloc.c:552!
      invalid opcode: 0000 [#1] SMP
      Modules linked in:
      CPU 0
      Pid: 0, comm: swapper Not tainted 3.9.0-rc2.dtp+ #10
      RIP: free_one_page+0x382/0x430
      Process swapper (pid: 0, threadinfo ffffffff81942000, task ffffffff81955420)
      Call Trace:
        __free_pages_ok+0x96/0xb0
        __free_pages+0x25/0x50
        __free_pages_bootmem+0x8a/0x8c
        __free_memory_core+0xea/0x131
        free_low_memory_core_early+0x4a/0x98
        free_all_bootmem+0x45/0x47
        mem_init+0x7b/0x14c
        start_kernel+0x216/0x433
        x86_64_start_reservations+0x2a/0x2c
        x86_64_start_kernel+0x144/0x153
      Code: 89 f1 ba 01 00 00 00 31 f6 d3 e2 4c 89 ef e8 66 a4 01 00 e9 2c fe ff ff 0f 0b eb fe 0f 0b 66 66 2e 0f 1f 84 00 00 00 00 00 eb f3 <0f> 0b eb fe 0f 0b 0f 1f 84 00 00 00 00 00 eb f6 0f 0b eb fe 49
    Signed-off-by: default avatarRuss Anderson <rja@sgi.com>
    Reported-by: default avatarGeorge Beshers <gbeshers@sgi.com>
    Acked-by: default avatarHedi Berriche <hedi@sgi.com>
    Cc: Cody P Schafer <cody@linux.vnet.ibm.com>
    Cc: Michal Hocko <mhocko@suse.cz>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    f9228b20
mmzone.h 39.3 KB