lkml.org 
[lkml]   [2013]   [Jul]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 18/21] x86, numa: Synchronize nid info in memblock.reserve with numa_meminfo.
    On 07/24/2013 05:25 AM, Tejun Heo wrote:
    > On Fri, Jul 19, 2013 at 03:59:31PM +0800, Tang Chen wrote:
    >> Vasilis Liaskovitis found that before we parse SRAT and fulfill numa_meminfo,
    >> the nids of all the regions in memblock.reserve[] are MAX_NUMNODES. That is
    >> because nids have not been mapped at that time.
    >>
    >> When we arrange ZONE_MOVABLE in each node later, we need nid in memblock. So
    >> after we parse SRAT and fulfill nume_meminfo, synchronize the nid info to
    >> memblock.reserve[] immediately.
    >
    > Having a separate sync is rather nasty. Why not let
    > memblock_set_node() and alloc functions set nid on the reserved
    > regions?

    Node id and pxm are 1-1 mapped. For the current kernel, before SRAT is
    parsed,
    we don't know nid. So all allocated regions are reserved by memblock with
    nid = MAX_NUMNODES. So for early allocated memory, we cannot use
    memblock_set_node()
    and alloc functions to set the nid.

    In this patch-set, we parse SRAT twice, the first one is right after
    memblock is ready.
    But we didn't setup nid <-> pxm mapping. So we still have this problem.

    And as in [patch 14/21], when reserving hotpluggable memory, we use pxm.
    So my
    idea was to do a nid sync in numa_init(). After this, memblock will set
    nid when
    it allocates memory.

    If we want to let memblock_set_node() and alloc functions set nid on the
    reserved
    regions, we should setup nid <-> pxm mapping when we parst SRAT for the
    first time.
    If you think this is OK, I can try it.

    Thanks.


    \
     
     \ /
      Last update: 2013-07-25 07:01    [W:4.418 / U:0.280 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site