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-o...
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 <lkp(a)intel.com>
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@lists.01.org