Hi Anthony, [FYI, it's a private test report for your RFC patch.] [auto build test ERROR on tip/x86/mm] [also build test ERROR on tip/auto-latest linus/master v5.7-rc5] [cannot apply to tip/x86/core next-20200512] [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/Anthony-Yznaga/PKRAM-Preserved-over-Kexec-RAM/20200507-084926 base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git bd1de2a7aace4d1d312fb1be264b8fafdb706208 config: microblaze-randconfig-r005-20200512 (attached as .config) compiler: microblaze-linux-gcc (GCC) 9.3.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 COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=microblaze If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All errors (new ones prefixed by >>): microblaze-linux-ld: mm/shmem.o: in function `shmem_add_aligned_to_page_cache': >> mm/shmem.c:803: undefined reference to `xas_import_node' vim +803 mm/shmem.c 734 735 static int shmem_add_aligned_to_page_cache(struct page *pages[], int npages, 736 struct address_space *mapping, 737 pgoff_t index, gfp_t gfp, int order) 738 { 739 int xa_shift = order + XA_CHUNK_SHIFT - (order % XA_CHUNK_SHIFT); 740 XA_STATE_ORDER(xas, &mapping->i_pages, index, xa_shift); 741 struct xa_state *xas_ptr = &xas; 742 struct xarray xa_tmp; 743 /* 744 * Specify order so xas_create_range() only needs to be called once 745 * to allocate the entire range. This guarantees that xas_store() 746 * will not fail due to lack of memory. 747 * Specify index == 0 so the minimum necessary nodes are allocated. 748 */ 749 XA_STATE_ORDER(xas_tmp, &xa_tmp, 0, xa_shift); 750 unsigned long nr = 1UL << order; 751 struct xa_node *node; 752 int i; 753 754 if (npages * nr != 1 << xa_shift) { 755 WARN_ONCE(1, "npages (%d) not aligned to xa_shift\n", npages); 756 return -EINVAL; 757 } 758 if (!IS_ALIGNED(index, 1 << xa_shift)) { 759 WARN_ONCE(1, "index (%lu) not aligned to xa_shift\n", index); 760 return -EINVAL; 761 } 762 763 for (i = 0; i < npages; i++) { 764 VM_BUG_ON_PAGE(PageTail(pages[i]), pages[i]); 765 VM_BUG_ON_PAGE(!PageLocked(pages[i]), pages[i]); 766 VM_BUG_ON_PAGE(!PageSwapBacked(pages[i]), pages[i]); 767 768 page_ref_add(pages[i], nr); 769 pages[i]->mapping = mapping; 770 pages[i]->index = index + (i * nr); 771 } 772 773 xa_init(&xa_tmp); 774 do { 775 xas_lock(&xas_tmp); 776 xas_create_range(&xas_tmp); 777 if (xas_error(&xas_tmp)) 778 goto unlock; 779 for (i = 0; i < npages; i++) { 780 int j = 0; 781 next: 782 xas_store(&xas_tmp, pages[i]); 783 if (++j < nr) { 784 xas_next(&xas_tmp); 785 goto next; 786 } 787 if (i < npages - 1) 788 xas_next(&xas_tmp); 789 } 790 xas_set_order(&xas_tmp, 0, xa_shift); 791 node = xas_export_node(&xas_tmp); 792 unlock: 793 xas_unlock(&xas_tmp); 794 } while (xas_nomem(&xas_tmp, gfp)); 795 796 if (xas_error(&xas_tmp)) { 797 xas_ptr = &xas_tmp; 798 goto error; 799 } 800 801 do { 802 xas_lock_irq(&xas); > 803 xas_import_node(&xas, node); 804 if (xas_error(&xas)) 805 goto unlock1; 806 mapping->nrpages += nr * npages; 807 xas_unlock(&xas); 808 for (i = 0; i < npages; i++) { 809 __mod_node_page_state(page_pgdat(pages[i]), NR_FILE_PAGES, nr); 810 __mod_node_page_state(page_pgdat(pages[i]), NR_SHMEM, nr); 811 if (PageTransHuge(pages[i])) { 812 count_vm_event(THP_FILE_ALLOC); 813 __inc_node_page_state(pages[i], NR_SHMEM_THPS); 814 } 815 } 816 local_irq_enable(); 817 break; 818 unlock1: 819 xas_unlock_irq(&xas); 820 } while (xas_nomem(&xas, gfp)); 821 822 if (!xas_error(&xas)) 823 return 0; 824 825 error: 826 for (i = 0; i < npages; i++) { 827 pages[i]->mapping = NULL; 828 page_ref_sub(pages[i], nr); 829 } 830 return xas_error(xas_ptr); 831 } 832 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org