Re: [PATCH v2 12/12] mm: memory_hotplug: memory hotremove supports thp migration

From: kbuild test robot
Date: Mon Nov 07 2016 - 19:30:25 EST


Hi Naoya,

[auto build test WARNING on mmotm/master]
[also build test WARNING on next-20161028]
[cannot apply to v4.9-rc4]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Naoya-Horiguchi/mm-x86-move-_PAGE_SWP_SOFT_DIRTY-from-bit-7-to-bit-6/20161108-080615
base: git://git.cmpxchg.org/linux-mmotm.git master
config: i386-randconfig-x000-201645 (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All warnings (new ones prefixed by >>):

Cyclomatic Complexity 3 mm/memory_hotplug.c:setup_memhp_default_state
Cyclomatic Complexity 6 mm/memory_hotplug.c:find_smallest_section_pfn
Cyclomatic Complexity 6 mm/memory_hotplug.c:find_biggest_section_pfn
Cyclomatic Complexity 9 mm/memory_hotplug.c:shrink_pgdat_span
Cyclomatic Complexity 1 include/linux/err.h:IS_ERR
Cyclomatic Complexity 2 include/linux/page-flags.h:compound_head
Cyclomatic Complexity 1 include/linux/page_ref.h:page_count
Cyclomatic Complexity 2 include/linux/thread_info.h:test_ti_thread_flag
Cyclomatic Complexity 1 include/linux/sched.h:test_tsk_thread_flag
Cyclomatic Complexity 1 include/linux/sched.h:signal_pending
Cyclomatic Complexity 0 include/linux/memory_hotplug.h:generic_alloc_nodedata
Cyclomatic Complexity 3 mm/memory_hotplug.c:next_active_pageblock
Cyclomatic Complexity 1 mm/memory_hotplug.c:__online_page_increment_counters
Cyclomatic Complexity 1 include/linux/mm.h:__free_reserved_page
Cyclomatic Complexity 1 include/linux/mm.h:free_reserved_page
Cyclomatic Complexity 1 mm/memory_hotplug.c:__online_page_free
Cyclomatic Complexity 1 mm/memory_hotplug.c:generic_online_page
Cyclomatic Complexity 1 include/linux/mm.h:put_page_testzero
Cyclomatic Complexity 4 mm/memory_hotplug.c:check_hotplug_memory_range
Cyclomatic Complexity 1 mm/memory_hotplug.c:cmdline_parse_movable_node
Cyclomatic Complexity 2 mm/memory_hotplug.c:ensure_zone_is_initialized
Cyclomatic Complexity 1 include/linux/seqlock.h:write_seqcount_begin_nested
Cyclomatic Complexity 1 include/linux/seqlock.h:write_seqcount_begin
Cyclomatic Complexity 1 include/linux/seqlock.h:write_seqlock
Cyclomatic Complexity 1 include/linux/memory_hotplug.h:zone_span_writelock
Cyclomatic Complexity 1 include/linux/seqlock.h:write_seqcount_end
Cyclomatic Complexity 1 include/linux/seqlock.h:write_sequnlock
Cyclomatic Complexity 1 include/linux/memory_hotplug.h:zone_span_writeunlock
Cyclomatic Complexity 3 mm/memory_hotplug.c:grow_zone_span
Cyclomatic Complexity 4 mm/memory_hotplug.c:__add_zone
Cyclomatic Complexity 4 mm/memory_hotplug.c:__add_section
Cyclomatic Complexity 7 mm/memory_hotplug.c:__add_pages
Cyclomatic Complexity 9 mm/memory_hotplug.c:shrink_zone_span
Cyclomatic Complexity 1 mm/memory_hotplug.c:__remove_zone
Cyclomatic Complexity 2 mm/memory_hotplug.c:resize_zone
Cyclomatic Complexity 6 mm/memory_hotplug.c:move_pfn_range_left
Cyclomatic Complexity 6 mm/memory_hotplug.c:move_pfn_range_right
Cyclomatic Complexity 4 mm/memory_hotplug.c:move_pfn_range
Cyclomatic Complexity 3 mm/memory_hotplug.c:__remove_section
Cyclomatic Complexity 6 mm/memory_hotplug.c:__remove_pages
Cyclomatic Complexity 2 mm/memory_hotplug.c:check_pages_isolated
Cyclomatic Complexity 1 mm/memory_hotplug.c:offline_isolated_pages
Cyclomatic Complexity 3 mm/memory_hotplug.c:hotadd_new_pgdat
Cyclomatic Complexity 1 mm/memory_hotplug.c:online_memory_block
Cyclomatic Complexity 1 mm/memory_hotplug.c:rollback_node_hotadd
Cyclomatic Complexity 4 mm/memory_hotplug.c:register_memory_resource
Cyclomatic Complexity 2 mm/memory_hotplug.c:release_memory_resource
Cyclomatic Complexity 6 mm/memory_hotplug.c:scan_movable_pages
Cyclomatic Complexity 1 include/linux/gfp.h:__alloc_pages
Cyclomatic Complexity 1 include/linux/hugetlb.h:page_hstate
Cyclomatic Complexity 3 include/linux/bitmap.h:bitmap_empty
Cyclomatic Complexity 1 include/linux/nodemask.h:__nodes_empty
Cyclomatic Complexity 12 mm/memory_hotplug.c:new_node_page
Cyclomatic Complexity 3 include/linux/mm.h:put_page
Cyclomatic Complexity 15 mm/memory_hotplug.c:do_migrate_range
Cyclomatic Complexity 2 mm/memory_hotplug.c:check_pages_isolated_cb
Cyclomatic Complexity 1 mm/memory_hotplug.c:offline_isolated_pages_cb
Cyclomatic Complexity 2 mm/memory_hotplug.c:check_memblock_offlined_cb
Cyclomatic Complexity 2 mm/memory_hotplug.c:get_online_mems
Cyclomatic Complexity 6 mm/memory_hotplug.c:put_online_mems
Cyclomatic Complexity 2 mm/memory_hotplug.c:set_online_page_callback
Cyclomatic Complexity 2 mm/memory_hotplug.c:restore_online_page_callback
Cyclomatic Complexity 2 mm/memory_hotplug.c:mem_hotplug_begin
Cyclomatic Complexity 1 mm/memory_hotplug.c:mem_hotplug_done
Cyclomatic Complexity 1 mm/memory_hotplug.c:get_page_bootmem
Cyclomatic Complexity 2 mm/memory_hotplug.c:put_page_bootmem
Cyclomatic Complexity 9 mm/memory_hotplug.c:zone_can_shift
Cyclomatic Complexity 16 mm/memory_hotplug.c:online_pages
Cyclomatic Complexity 4 mm/memory_hotplug.c:try_online_node
Cyclomatic Complexity 2 mm/memory_hotplug.c:zone_for_memory
Cyclomatic Complexity 3 mm/memory_hotplug.c:is_mem_section_removable
Cyclomatic Complexity 7 mm/memory_hotplug.c:test_pages_in_a_zone
Cyclomatic Complexity 22 mm/memory_hotplug.c:__offline_pages
Cyclomatic Complexity 1 mm/memory_hotplug.c:offline_pages
Cyclomatic Complexity 9 mm/memory_hotplug.c:walk_memory_range
Cyclomatic Complexity 8 mm/memory_hotplug.c:add_memory_resource
Cyclomatic Complexity 3 mm/memory_hotplug.c:add_memory
Cyclomatic Complexity 1 mm/memory_hotplug.c:remove_memory
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from mm/memory_hotplug.c:7:
mm/memory_hotplug.c: In function 'new_node_page':
include/linux/compiler.h:518:38: error: call to '__compiletime_assert_1575' declared with attribute error: BUILD_BUG failed
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^
include/linux/compiler.h:501:4: note: in definition of macro '__compiletime_assert'
prefix ## suffix(); \
^~~~~~
include/linux/compiler.h:518:2: note: in expansion of macro '_compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __LINE__)
^~~~~~~~~~~~~~~~~~~
include/linux/bug.h:54:37: note: in expansion of macro 'compiletime_assert'
#define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
^~~~~~~~~~~~~~~~~~
include/linux/bug.h:88:21: note: in expansion of macro 'BUILD_BUG_ON_MSG'
#define BUILD_BUG() BUILD_BUG_ON_MSG(1, "BUILD_BUG failed")
^~~~~~~~~~~~~~~~
include/linux/huge_mm.h:181:28: note: in expansion of macro 'BUILD_BUG'
#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; })
^~~~~~~~~
>> include/linux/huge_mm.h:56:26: note: in expansion of macro 'HPAGE_PMD_SHIFT'
#define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT)
^~~~~~~~~~~~~~~
>> mm/memory_hotplug.c:1575:27: note: in expansion of macro 'HPAGE_PMD_ORDER'
if (new_page && order == HPAGE_PMD_ORDER)
^~~~~~~~~~~~~~~

vim +/HPAGE_PMD_ORDER +1575 mm/memory_hotplug.c

1559 gfp_mask |= GFP_TRANSHUGE;
1560 }
1561
1562 node_clear(nid, nmask);
1563
1564 if (PageHighMem(page)
1565 || (zone_idx(page_zone(page)) == ZONE_MOVABLE))
1566 gfp_mask |= __GFP_HIGHMEM;
1567
1568 if (!nodes_empty(nmask))
1569 new_page = __alloc_pages_nodemask(gfp_mask, order,
1570 node_zonelist(nid, gfp_mask), &nmask);
1571 if (!new_page)
1572 new_page = __alloc_pages(gfp_mask, order,
1573 node_zonelist(nid, gfp_mask));
1574
> 1575 if (new_page && order == HPAGE_PMD_ORDER)
1576 prep_transhuge_page(new_page);
1577
1578 return new_page;
1579 }
1580
1581 #define NR_OFFLINE_AT_ONCE_PAGES (256)
1582 static int
1583 do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip