From b94f7c58cbef3ad598aecb273bd556a86bb2bdfd Mon Sep 17 00:00:00 2001 From: Wanpeng Li Date: Tue, 23 Oct 2012 13:50:15 +1100 Subject: [PATCH] mm/memblock: reduce overhead in binary search When checking that the indicated address belongs to the memory region, the memory regions are checked one by one through a binary search, which will be time consuming. If the indicated address isn't in the memory region, then we needn't do the time-consuming search. Add a check on the indicated address for that purpose. Signed-off-by: Wanpeng Li Cc: Michal Hocko Cc: KAMEZAWA Hiroyuki Cc: Minchan Kim Cc: Gavin Shan Cc: Yinghai Lu Signed-off-by: Andrew Morton --- mm/memblock.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/mm/memblock.c b/mm/memblock.c index 931eef145af5..dec9c0a5481e 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -889,6 +889,11 @@ int __init memblock_is_reserved(phys_addr_t addr) int __init_memblock memblock_is_memory(phys_addr_t addr) { + + if (unlikely(addr < memblock_start_of_DRAM() || + addr >= memblock_end_of_DRAM())) + return 0; + return memblock_search(&memblock.memory, addr) != -1; } -- 2.39.5