• Yinghai Lu's avatar
    memblock, numa: binary search node id · e76b63f8
    Yinghai Lu authored
    Current early_pfn_to_nid() on arch that support memblock go over
    memblock.memory one by one, so will take too many try near the end.
    We can use existing memblock_search to find the node id for given pfn,
    that could save some time on bigger system that have many entries
    memblock.memory array.
    Here are the timing differences for several machines.  In each case with
    the patch less time was spent in __early_pfn_to_nid().
                            3.11-rc5        with patch      difference (%)
                            --------        ----------      --------------
    UV1: 256 nodes  9TB:     411.66          402.47         -9.19 (2.23%)
    UV2: 255 nodes 16TB:    1141.02         1138.12         -2.90 (0.25%)
    UV2:  64 nodes  2TB:     128.15          126.53         -1.62 (1.26%)
    UV2:  32 nodes  2TB:     121.87          121.07         -0.80 (0.66%)
                            Time in seconds.
    Signed-off-by: default avatarYinghai Lu <yinghai@kernel.org>
    Cc: Tejun Heo <tj@kernel.org>
    Acked-by: default avatarRuss Anderson <rja@sgi.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>