Re: [PATCHv2 1/3] mm/numa: change the topo of build_zonelist_xx()

From: kbuild test robot
Date: Fri Dec 21 2018 - 02:56:59 EST


Hi Pingfan,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[also build test ERROR on v4.20-rc7 next-20181220]
[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/Pingfan-Liu/mm-bugfix-for-NULL-reference-in-mm-on-all-archs/20181221-152625
config: riscv-tinyconfig (attached as .config)
compiler: riscv64-linux-gcc (GCC) 8.1.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=8.1.0 make.cross ARCH=riscv

All errors (new ones prefixed by >>):

mm/page_alloc.c: In function 'build_zonelists':
>> mm/page_alloc.c:5288:12: error: 'local_node' redeclared as different kind of symbol
int node, local_node;
^~~~~~~~~~
mm/page_alloc.c:5286:66: note: previous definition of 'local_node' was here
static void build_zonelists(struct zonelist *node_zonelists, int local_node)
~~~~^~~~~~~~~~

vim +/local_node +5288 mm/page_alloc.c

^1da177e4 Linus Torvalds 2005-04-16 5285
e6ee0d8bd Pingfan Liu 2018-12-20 5286 static void build_zonelists(struct zonelist *node_zonelists, int local_node)
^1da177e4 Linus Torvalds 2005-04-16 5287 {
19655d348 Christoph Lameter 2006-09-25 @5288 int node, local_node;
9d3be21bf Michal Hocko 2017-09-06 5289 struct zoneref *zonerefs;
9d3be21bf Michal Hocko 2017-09-06 5290 int nr_zones;
^1da177e4 Linus Torvalds 2005-04-16 5291
e6ee0d8bd Pingfan Liu 2018-12-20 5292 zonerefs = node_zonelists[ZONELIST_FALLBACK]._zonerefs;
e6ee0d8bd Pingfan Liu 2018-12-20 5293 nr_zones = build_zonerefs_node(local_node, zonerefs);
9d3be21bf Michal Hocko 2017-09-06 5294 zonerefs += nr_zones;
^1da177e4 Linus Torvalds 2005-04-16 5295
^1da177e4 Linus Torvalds 2005-04-16 5296 /*
^1da177e4 Linus Torvalds 2005-04-16 5297 * Now we build the zonelist so that it contains the zones
^1da177e4 Linus Torvalds 2005-04-16 5298 * of all the other nodes.
^1da177e4 Linus Torvalds 2005-04-16 5299 * We don't want to pressure a particular node, so when
^1da177e4 Linus Torvalds 2005-04-16 5300 * building the zones for node N, we make sure that the
^1da177e4 Linus Torvalds 2005-04-16 5301 * zones coming right after the local ones are those from
^1da177e4 Linus Torvalds 2005-04-16 5302 * node N+1 (modulo N)
^1da177e4 Linus Torvalds 2005-04-16 5303 */
^1da177e4 Linus Torvalds 2005-04-16 5304 for (node = local_node + 1; node < MAX_NUMNODES; node++) {
^1da177e4 Linus Torvalds 2005-04-16 5305 if (!node_online(node))
^1da177e4 Linus Torvalds 2005-04-16 5306 continue;
e6ee0d8bd Pingfan Liu 2018-12-20 5307 nr_zones = build_zonerefs_node(node, zonerefs);
9d3be21bf Michal Hocko 2017-09-06 5308 zonerefs += nr_zones;
^1da177e4 Linus Torvalds 2005-04-16 5309 }
^1da177e4 Linus Torvalds 2005-04-16 5310 for (node = 0; node < local_node; node++) {
^1da177e4 Linus Torvalds 2005-04-16 5311 if (!node_online(node))
^1da177e4 Linus Torvalds 2005-04-16 5312 continue;
e6ee0d8bd Pingfan Liu 2018-12-20 5313 nr_zones = build_zonerefs_node(node, zonerefs);
9d3be21bf Michal Hocko 2017-09-06 5314 zonerefs += nr_zones;
^1da177e4 Linus Torvalds 2005-04-16 5315 }
^1da177e4 Linus Torvalds 2005-04-16 5316
9d3be21bf Michal Hocko 2017-09-06 5317 zonerefs->zone = NULL;
9d3be21bf Michal Hocko 2017-09-06 5318 zonerefs->zone_idx = 0;
^1da177e4 Linus Torvalds 2005-04-16 5319 }
^1da177e4 Linus Torvalds 2005-04-16 5320

:::::: The code at line 5288 was first introduced by commit
:::::: 19655d3487001d7df0e10e9cbfc27c758b77c2b5 [PATCH] linearly index zone->node_zonelists[]

:::::: TO: Christoph Lameter <clameter@xxxxxxx>
:::::: CC: Linus Torvalds <torvalds@xxxxxxxxxxx>

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

Attachment: .config.gz
Description: application/gzip