Hi Muchun, I love your patch! Yet something to improve: [auto build test ERROR on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Muchun-Song/mm-hugetlb-eliminate-memory-less-nodes-handling/20220901-163132 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything config: loongarch-buildonly-randconfig-r004-20220901 (https://download.01.org/0day-ci/archive/20220902/202209021255.1ChhyCsl-lkp@xxxxxxxxx/config) compiler: loongarch64-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/8e3d203cb06be81565d117b3f6d5e279a833174c git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Muchun-Song/mm-hugetlb-eliminate-memory-less-nodes-handling/20220901-163132 git checkout 8e3d203cb06be81565d117b3f6d5e279a833174c # save the config file COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 ARCH=loongarch If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): drivers/base/node.c: In function 'register_node': >> drivers/base/node.c:614:17: error: implicit declaration of function 'hugetlb_register_node'; did you mean 'unregister_node'? [-Werror=implicit-function-declaration] 614 | hugetlb_register_node(node); | ^~~~~~~~~~~~~~~~~~~~~ | unregister_node drivers/base/node.c: In function 'unregister_node': >> drivers/base/node.c:630:9: error: implicit declaration of function 'hugetlb_unregister_node'; did you mean 'unregister_node'? [-Werror=implicit-function-declaration] 630 | hugetlb_unregister_node(node); | ^~~~~~~~~~~~~~~~~~~~~~~ | unregister_node cc1: some warnings being treated as errors vim +614 drivers/base/node.c 594 595 /* 596 * register_node - Setup a sysfs device for a node. 597 * @num - Node number to use when creating the device. 598 * 599 * Initialize and register the node device. 600 */ 601 static int register_node(struct node *node, int num) 602 { 603 int error; 604 605 node->dev.id = num; 606 node->dev.bus = &node_subsys; 607 node->dev.release = node_device_release; 608 node->dev.groups = node_dev_groups; 609 error = device_register(&node->dev); 610 611 if (error) { 612 put_device(&node->dev); 613 } else { > 614 hugetlb_register_node(node); 615 compaction_register_node(node); 616 } 617 618 return error; 619 } 620 621 /** 622 * unregister_node - unregister a node device 623 * @node: node going away 624 * 625 * Unregisters a node device @node. All the devices on the node must be 626 * unregistered before calling this function. 627 */ 628 void unregister_node(struct node *node) 629 { > 630 hugetlb_unregister_node(node); 631 compaction_unregister_node(node); 632 node_remove_accesses(node); 633 node_remove_caches(node); 634 device_unregister(&node->dev); 635 } 636 -- 0-DAY CI Kernel Test Service https://01.org/lkp