• Huang Ying's avatar
    x86, fakenuma: Fix invalid starting node ID · ccae0f36
    Huang Ying authored
    Commit:
    
      cc9aec03 ("x86/numa_emulation: Introduce uniform split capability")
    
    uses "-1" as the starting node ID, which causes the strange kernel log as
    follows, when "numa=fake=32G" is added to the kernel command line:
    
        Faking node -1 at [mem 0x0000000000000000-0x0000000893ffffff] (35136MB)
        Faking node 0 at [mem 0x0000001840000000-0x000000203fffffff] (32768MB)
        Faking node 1 at [mem 0x0000000894000000-0x000000183fffffff] (64192MB)
        Faking node 2 at [mem 0x0000002040000000-0x000000283fffffff] (32768MB)
        Faking node 3 at [mem 0x0000002840000000-0x000000303fffffff] (32768MB)
    
    And finally the kernel crashes:
    
        BUG: Bad page state in process swapper  pfn:00011
        page:(____ptrval____) refcount:0 mapcount:1 mapping:(____ptrval____) index:0x55cd7e44b270 pfn:0x11
        failed to read mapping contents, not a valid kernel address?
        flags: 0x5(locked|uptodate)
        raw: 0000000000000005 000055cd7e44af30 000055cd7e44af50 0000000100000006
        raw: 000055cd7e44b270 000055cd7e44b290 0000000000000000 000055cd7e44b510
        page dumped because: page still charged to cgroup
        page->mem_cgroup:000055cd7e44b510
        Modules linked in:
        CPU: 0 PID: 0 Comm: swapper Not tainted 5.9.0-rc2 #1
        Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0008.031920191559 03/19/2019
        Call Trace:
         dump_stack+0x57/0x80
         bad_page.cold+0x63/0x94
         __free_pages_ok+0x33f/0x360
         memblock_free_all+0x127/0x195
         mem_init+0x23/0x1f5
         start_kernel+0x219/0x4f5
         secondary_startup_64+0xb6/0xc0
    
    Fix this bug via using 0 as the starting node ID.  This restores the
    original behavior before cc9aec03.
    
    [ mingo: Massaged the changelog. ]
    
    Fixes: cc9aec03 ("x86/numa_emulation: Introduce uniform split capability")
    Signed-off-by: default avatar"Huang, Ying" <ying.huang@intel.com>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Link: https://lore.kernel.org/r/20200904061047.612950-1-ying.huang@intel.com
    ccae0f36
numa_emulation.c 15.1 KB