Hi Kefeng, kernel test robot noticed the following build errors: [auto build test ERROR on linus/master] [also build test ERROR on v6.9-rc1] [cannot apply to akpm-mm/mm-everything next-20240328] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Kefeng-Wang/mm-migrate-add-isolate_movable_folio/20240327-221513 base: linus/master patch link: https://lore.kernel.org/r/20240327141034.3712697-4-wangkefeng.wang%40huawei.com patch subject: [PATCH 3/6] mm: remove isolate_lru_page() config: x86_64-rhel-8.3-rust (https://download.01.org/0day-ci/archive/20240328/202403282057.pIA3kJoz-lkp@xxxxxxxxx/config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240328/202403282057.pIA3kJoz-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202403282057.pIA3kJoz-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> mm/migrate_device.c:388:9: error: call to undeclared function 'isolate_lru_page'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 388 | if (!isolate_lru_page(page)) { | ^ mm/migrate_device.c:388:9: note: did you mean '__isolate_free_page'? mm/internal.h:487:12: note: '__isolate_free_page' declared here 487 | extern int __isolate_free_page(struct page *page, unsigned int order); | ^ 1 error generated. vim +/isolate_lru_page +388 mm/migrate_device.c 76cbbead253ddc Christoph Hellwig 2022-02-16 355 76cbbead253ddc Christoph Hellwig 2022-02-16 356 /* 44af0b45d58d7b Alistair Popple 2022-11-11 357 * Unmaps pages for migration. Returns number of source pfns marked as 44af0b45d58d7b Alistair Popple 2022-11-11 358 * migrating. 76cbbead253ddc Christoph Hellwig 2022-02-16 359 */ 241f6885965683 Alistair Popple 2022-09-28 360 static unsigned long migrate_device_unmap(unsigned long *src_pfns, 241f6885965683 Alistair Popple 2022-09-28 361 unsigned long npages, 241f6885965683 Alistair Popple 2022-09-28 362 struct page *fault_page) 76cbbead253ddc Christoph Hellwig 2022-02-16 363 { 76cbbead253ddc Christoph Hellwig 2022-02-16 364 unsigned long i, restore = 0; 76cbbead253ddc Christoph Hellwig 2022-02-16 365 bool allow_drain = true; 241f6885965683 Alistair Popple 2022-09-28 366 unsigned long unmapped = 0; 76cbbead253ddc Christoph Hellwig 2022-02-16 367 76cbbead253ddc Christoph Hellwig 2022-02-16 368 lru_add_drain(); 76cbbead253ddc Christoph Hellwig 2022-02-16 369 76cbbead253ddc Christoph Hellwig 2022-02-16 370 for (i = 0; i < npages; i++) { 241f6885965683 Alistair Popple 2022-09-28 371 struct page *page = migrate_pfn_to_page(src_pfns[i]); 4b8554c527f3cf Matthew Wilcox (Oracle 2022-01-28 372) struct folio *folio; 76cbbead253ddc Christoph Hellwig 2022-02-16 373 44af0b45d58d7b Alistair Popple 2022-11-11 374 if (!page) { 44af0b45d58d7b Alistair Popple 2022-11-11 375 if (src_pfns[i] & MIGRATE_PFN_MIGRATE) 44af0b45d58d7b Alistair Popple 2022-11-11 376 unmapped++; 76cbbead253ddc Christoph Hellwig 2022-02-16 377 continue; 44af0b45d58d7b Alistair Popple 2022-11-11 378 } 76cbbead253ddc Christoph Hellwig 2022-02-16 379 76cbbead253ddc Christoph Hellwig 2022-02-16 380 /* ZONE_DEVICE pages are not on LRU */ 76cbbead253ddc Christoph Hellwig 2022-02-16 381 if (!is_zone_device_page(page)) { 76cbbead253ddc Christoph Hellwig 2022-02-16 382 if (!PageLRU(page) && allow_drain) { 1fec6890bf2247 Matthew Wilcox (Oracle 2023-06-21 383) /* Drain CPU's lru cache */ 76cbbead253ddc Christoph Hellwig 2022-02-16 384 lru_add_drain_all(); 76cbbead253ddc Christoph Hellwig 2022-02-16 385 allow_drain = false; 76cbbead253ddc Christoph Hellwig 2022-02-16 386 } 76cbbead253ddc Christoph Hellwig 2022-02-16 387 f7f9c00dfafffd Baolin Wang 2023-02-15 @388 if (!isolate_lru_page(page)) { 241f6885965683 Alistair Popple 2022-09-28 389 src_pfns[i] &= ~MIGRATE_PFN_MIGRATE; 76cbbead253ddc Christoph Hellwig 2022-02-16 390 restore++; 76cbbead253ddc Christoph Hellwig 2022-02-16 391 continue; 76cbbead253ddc Christoph Hellwig 2022-02-16 392 } 76cbbead253ddc Christoph Hellwig 2022-02-16 393 76cbbead253ddc Christoph Hellwig 2022-02-16 394 /* Drop the reference we took in collect */ 76cbbead253ddc Christoph Hellwig 2022-02-16 395 put_page(page); 76cbbead253ddc Christoph Hellwig 2022-02-16 396 } 76cbbead253ddc Christoph Hellwig 2022-02-16 397 4b8554c527f3cf Matthew Wilcox (Oracle 2022-01-28 398) folio = page_folio(page); 4b8554c527f3cf Matthew Wilcox (Oracle 2022-01-28 399) if (folio_mapped(folio)) 4b8554c527f3cf Matthew Wilcox (Oracle 2022-01-28 400) try_to_migrate(folio, 0); 76cbbead253ddc Christoph Hellwig 2022-02-16 401 16ce101db85db6 Alistair Popple 2022-09-28 402 if (page_mapped(page) || 241f6885965683 Alistair Popple 2022-09-28 403 !migrate_vma_check_page(page, fault_page)) { 76cbbead253ddc Christoph Hellwig 2022-02-16 404 if (!is_zone_device_page(page)) { 76cbbead253ddc Christoph Hellwig 2022-02-16 405 get_page(page); 76cbbead253ddc Christoph Hellwig 2022-02-16 406 putback_lru_page(page); 76cbbead253ddc Christoph Hellwig 2022-02-16 407 } 76cbbead253ddc Christoph Hellwig 2022-02-16 408 241f6885965683 Alistair Popple 2022-09-28 409 src_pfns[i] &= ~MIGRATE_PFN_MIGRATE; 76cbbead253ddc Christoph Hellwig 2022-02-16 410 restore++; 76cbbead253ddc Christoph Hellwig 2022-02-16 411 continue; 76cbbead253ddc Christoph Hellwig 2022-02-16 412 } 241f6885965683 Alistair Popple 2022-09-28 413 241f6885965683 Alistair Popple 2022-09-28 414 unmapped++; 76cbbead253ddc Christoph Hellwig 2022-02-16 415 } 76cbbead253ddc Christoph Hellwig 2022-02-16 416 76cbbead253ddc Christoph Hellwig 2022-02-16 417 for (i = 0; i < npages && restore; i++) { 241f6885965683 Alistair Popple 2022-09-28 418 struct page *page = migrate_pfn_to_page(src_pfns[i]); 4eecb8b9163df8 Matthew Wilcox (Oracle 2022-01-28 419) struct folio *folio; 76cbbead253ddc Christoph Hellwig 2022-02-16 420 241f6885965683 Alistair Popple 2022-09-28 421 if (!page || (src_pfns[i] & MIGRATE_PFN_MIGRATE)) 76cbbead253ddc Christoph Hellwig 2022-02-16 422 continue; 76cbbead253ddc Christoph Hellwig 2022-02-16 423 4eecb8b9163df8 Matthew Wilcox (Oracle 2022-01-28 424) folio = page_folio(page); 4eecb8b9163df8 Matthew Wilcox (Oracle 2022-01-28 425) remove_migration_ptes(folio, folio, false); 76cbbead253ddc Christoph Hellwig 2022-02-16 426 241f6885965683 Alistair Popple 2022-09-28 427 src_pfns[i] = 0; 4eecb8b9163df8 Matthew Wilcox (Oracle 2022-01-28 428) folio_unlock(folio); 4eecb8b9163df8 Matthew Wilcox (Oracle 2022-01-28 429) folio_put(folio); 76cbbead253ddc Christoph Hellwig 2022-02-16 430 restore--; 76cbbead253ddc Christoph Hellwig 2022-02-16 431 } 241f6885965683 Alistair Popple 2022-09-28 432 241f6885965683 Alistair Popple 2022-09-28 433 return unmapped; 241f6885965683 Alistair Popple 2022-09-28 434 } 241f6885965683 Alistair Popple 2022-09-28 435 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki