Re: [PATCH v2 1/1] mm: initialize pages on demand during boot

From: kbuild test robot
Date: Sat Feb 10 2018 - 00:47:18 EST


Hi Pavel,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on mmotm/master]
[also build test WARNING on next-20180209]
[cannot apply to v4.15]
[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/Pavel-Tatashin/mm-initialize-pages-on-demand-during-boot/20180210-125104
base: git://git.cmpxchg.org/linux-mmotm.git master
config: i386-randconfig-x018-201805 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=i386

All warnings (new ones prefixed by >>):

In file included from include/asm-generic/bug.h:18:0,
from arch/x86/include/asm/bug.h:82,
from include/linux/bug.h:5,
from include/linux/mmdebug.h:5,
from include/linux/mm.h:9,
from mm/page_alloc.c:18:
mm/page_alloc.c: In function 'free_area_init_node':
include/linux/kernel.h:792:16: warning: comparison of distinct pointer types lacks a cast
(void) (&min1 == &min2); \
^
include/linux/kernel.h:801:2: note: in expansion of macro '__min'
__min(typeof(x), typeof(y), \
^~~~~
>> mm/page_alloc.c:6357:29: note: in expansion of macro 'min'
pgdat->static_init_pgcnt = min(PAGES_PER_SECTION,
^~~

vim +/min +6357 mm/page_alloc.c

6325
6326 void __paginginit free_area_init_node(int nid, unsigned long *zones_size,
6327 unsigned long node_start_pfn, unsigned long *zholes_size)
6328 {
6329 pg_data_t *pgdat = NODE_DATA(nid);
6330 unsigned long start_pfn = 0;
6331 unsigned long end_pfn = 0;
6332
6333 /* pg_data_t should be reset to zero when it's allocated */
6334 WARN_ON(pgdat->nr_zones || pgdat->kswapd_classzone_idx);
6335
6336 pgdat->node_id = nid;
6337 pgdat->node_start_pfn = node_start_pfn;
6338 pgdat->per_cpu_nodestats = NULL;
6339 #ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP
6340 get_pfn_range_for_nid(nid, &start_pfn, &end_pfn);
6341 pr_info("Initmem setup node %d [mem %#018Lx-%#018Lx]\n", nid,
6342 (u64)start_pfn << PAGE_SHIFT,
6343 end_pfn ? ((u64)end_pfn << PAGE_SHIFT) - 1 : 0);
6344 #else
6345 start_pfn = node_start_pfn;
6346 #endif
6347 calculate_node_totalpages(pgdat, start_pfn, end_pfn,
6348 zones_size, zholes_size);
6349
6350 alloc_node_mem_map(pgdat);
6351
6352 #ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
6353 /*
6354 * We start only with one section of pages, more pages are added as
6355 * needed until the rest of deferred pages are initialized.
6356 */
> 6357 pgdat->static_init_pgcnt = min(PAGES_PER_SECTION,
6358 pgdat->node_spanned_pages);
6359 pgdat->first_deferred_pfn = ULONG_MAX;
6360 #endif
6361 free_area_init_core(pgdat);
6362 }
6363

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

Attachment: .config.gz
Description: application/gzip