Hi, [FYI, it's a private test report for your RFC patch.] [auto build test ERROR on linus/master] [also build test ERROR on v5.5-rc5 next-20191220] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/lantianyu1986-gmail-com/x86-Hyper-V-Add-Dynamic-memory-hot-remove-function/20200108-055844 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git ae6088216ce4b99b3a4aaaccd2eb2dd40d473d42 config: x86_64-rhel (attached as .config) compiler: gcc-7 (Debian 7.5.0-3) 7.5.0 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): drivers/hv/hv_balloon.c: In function 'hv_hot_remove_range': >> drivers/hv/hv_balloon.c:1109:10: error: implicit declaration of function 'offline_and_remove_memory'; did you mean '__remove_memory'? [-Werror=implicit-function-declaration] ret = offline_and_remove_memory(nid, pfn << PAGE_SHIFT, ^~~~~~~~~~~~~~~~~~~~~~~~~ __remove_memory cc1: some warnings being treated as errors vim +1109 drivers/hv/hv_balloon.c 1059 1060 static int hv_hot_remove_range(unsigned int nid, unsigned long start_pfn, 1061 unsigned long end_pfn, unsigned long nr_pages, 1062 unsigned long *request_index, 1063 union dm_mem_page_range *range_array, 1064 struct hv_hotadd_state *has) 1065 { 1066 unsigned long block_pages = HA_CHUNK; 1067 unsigned long rm_pages = nr_pages; 1068 unsigned long pfn; 1069 int ret; 1070 1071 for (pfn = start_pfn; pfn < end_pfn; pfn += block_pages) { 1072 struct hv_hotadd_gap *gap; 1073 int in_gap; 1074 1075 if (*request_index >= MAX_HOT_REMOVE_ENTRIES) { 1076 struct dm_hot_remove_response *resp = 1077 (struct dm_hot_remove_response *) 1078 balloon_up_send_buffer; 1079 1080 /* Flush out all hot-remove ranges. */ 1081 ret = hv_send_hot_remove_response(resp, *request_index, 1082 true); 1083 if (ret) 1084 return ret; 1085 1086 /* Reset request buffer. */ 1087 memset(resp, 0x00, PAGE_SIZE); 1088 *request_index = 0; 1089 } 1090 1091 /* 1092 * Memory in hot-add region gaps has been offlined or removed 1093 * and so skip it if remove range overlap with gap. 1094 */ 1095 if (has) { 1096 list_for_each_entry(gap, &has->gap_list, list) 1097 if (!(pfn >= gap->end_pfn || 1098 pfn + block_pages < gap->start_pfn)) { 1099 in_gap = 1; 1100 break; 1101 } 1102 1103 if (in_gap) 1104 continue; 1105 } 1106 1107 if (online_section_nr(pfn_to_section_nr(pfn)) 1108 && is_mem_section_removable(pfn, block_pages)) { > 1109 ret = offline_and_remove_memory(nid, pfn << PAGE_SHIFT, 1110 block_pages << PAGE_SHIFT); 1111 if (ret) 1112 continue; 1113 1114 range_array[*request_index].finfo.start_page = pfn; 1115 range_array[*request_index].finfo.page_cnt 1116 = block_pages; 1117 1118 (*request_index)++; 1119 nr_pages -= block_pages; 1120 1121 if (!nr_pages) 1122 break; 1123 } 1124 } 1125 1126 return rm_pages - nr_pages; 1127 } 1128 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation