* [linux-next:master 4160/4460] mm/page_alloc.c:1304:3: error: implicit declaration of function 'set_zone_contiguous'
@ 2016-02-10 10:24 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2016-02-10 10:24 UTC (permalink / raw)
To: Joonsoo Kim; +Cc: kbuild-all, Andrew Morton, Linux Memory Management List
[-- Attachment #1: Type: text/plain, Size: 4165 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: b613c2bfa3e843fdeff95878edc7326b763abd1b
commit: eddd1b1e54e09775f155bf6c8239e7167205606e [4160/4460] mm/compaction: speed up pageblock_pfn_to_page() when zone is contiguous
config: i386-tinyconfig (attached as .config)
reproduce:
git checkout eddd1b1e54e09775f155bf6c8239e7167205606e
# save the attached .config to linux build tree
make ARCH=i386
Note: the linux-next/master HEAD b613c2bfa3e843fdeff95878edc7326b763abd1b builds fine.
It may have been fixed somewhere.
All error/warnings (new ones prefixed by >>):
mm/page_alloc.c: In function 'page_alloc_init_late':
>> mm/page_alloc.c:1304:3: error: implicit declaration of function 'set_zone_contiguous' [-Werror=implicit-function-declaration]
set_zone_contiguous(zone);
^
mm/page_alloc.c: At top level:
>> mm/page_alloc.c:1350:6: warning: conflicting types for 'set_zone_contiguous'
void set_zone_contiguous(struct zone *zone)
^
mm/page_alloc.c:1304:3: note: previous implicit declaration of 'set_zone_contiguous' was here
set_zone_contiguous(zone);
^
mm/page_alloc.c: In function 'set_zone_contiguous':
>> mm/page_alloc.c:1354:16: warning: unused variable 'pfn' [-Wunused-variable]
unsigned long pfn;
^
mm/page_alloc.c: In function 'free_area_init_nodes':
mm/page_alloc.c:5929:34: warning: array subscript is below array bounds [-Warray-bounds]
arch_zone_highest_possible_pfn[i-1];
^
cc1: some warnings being treated as errors
vim +/set_zone_contiguous +1304 mm/page_alloc.c
1298
1299 /* Reinit limits that are based on free pages after the kernel is up */
1300 files_maxfiles_init();
1301 #endif
1302
1303 for_each_populated_zone(zone)
> 1304 set_zone_contiguous(zone);
1305 }
1306
1307 /*
1308 * Check that the whole (or subset of) a pageblock given by the interval of
1309 * [start_pfn, end_pfn) is valid and within the same zone, before scanning it
1310 * with the migration of free compaction scanner. The scanners then need to
1311 * use only pfn_valid_within() check for arches that allow holes within
1312 * pageblocks.
1313 *
1314 * Return struct page pointer of start_pfn, or NULL if checks were not passed.
1315 *
1316 * It's possible on some configurations to have a setup like node0 node1 node0
1317 * i.e. it's possible that all pages within a zones range of pages do not
1318 * belong to a single zone. We assume that a border between node0 and node1
1319 * can occur within a single pageblock, but not a node0 node1 node0
1320 * interleaving within a single pageblock. It is therefore sufficient to check
1321 * the first and last page of a pageblock and avoid checking each individual
1322 * page in a pageblock.
1323 */
1324 struct page *__pageblock_pfn_to_page(unsigned long start_pfn,
1325 unsigned long end_pfn, struct zone *zone)
1326 {
1327 struct page *start_page;
1328 struct page *end_page;
1329
1330 /* end_pfn is one past the range we are checking */
1331 end_pfn--;
1332
1333 if (!pfn_valid(start_pfn) || !pfn_valid(end_pfn))
1334 return NULL;
1335
1336 start_page = pfn_to_page(start_pfn);
1337
1338 if (page_zone(start_page) != zone)
1339 return NULL;
1340
1341 end_page = pfn_to_page(end_pfn);
1342
1343 /* This gives a shorter code than deriving page_zone(end_page) */
1344 if (page_zone_id(start_page) != page_zone_id(end_page))
1345 return NULL;
1346
1347 return start_page;
1348 }
1349
> 1350 void set_zone_contiguous(struct zone *zone)
1351 {
1352 unsigned long block_start_pfn = zone->zone_start_pfn;
1353 unsigned long block_end_pfn;
> 1354 unsigned long pfn;
1355
1356 block_end_pfn = ALIGN(block_start_pfn + 1, pageblock_nr_pages);
1357 for (; block_start_pfn < zone_end_pfn(zone);
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 6213 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-02-10 10:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-10 10:24 [linux-next:master 4160/4460] mm/page_alloc.c:1304:3: error: implicit declaration of function 'set_zone_contiguous' kbuild test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.