Hi Alexander, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [cannot apply to v5.3-rc4] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Alexander-Duyck/mm-virtio-Provide-support-for-unused-page-reporting/20190813-150543 config: um-x86_64_defconfig (attached as .config) compiler: gcc-7 (Debian 7.4.0-10) 7.4.0 reproduce: # save the attached .config to linux build tree make ARCH=um SUBARCH=x86_64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot All warnings (new ones prefixed by >>): In file included from include/linux/thread_info.h:38:0, from include/asm-generic/current.h:5, from ./arch/um/include/generated/asm/current.h:1, from include/linux/sched.h:12, from arch/x86/um/shared/sysdep/kernel-offsets.h:3, from arch/um/kernel/asm-offsets.c:1: arch/um/include/asm/thread_info.h:9:0: note: this is the location of the previous definition #define THREAD_SIZE_ORDER CONFIG_KERNEL_STACK_ORDER In file included from arch/x86/include/asm/page_types.h:48:0, from arch/x86/include/asm/pgtable_types.h:8, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/page_64_types.h:16:0: warning: "THREAD_SIZE" redefined #define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER) In file included from include/linux/thread_info.h:38:0, from include/asm-generic/current.h:5, from ./arch/um/include/generated/asm/current.h:1, from include/linux/sched.h:12, from arch/x86/um/shared/sysdep/kernel-offsets.h:3, from arch/um/kernel/asm-offsets.c:1: arch/um/include/asm/thread_info.h:10:0: note: this is the location of the previous definition #define THREAD_SIZE ((1 << CONFIG_KERNEL_STACK_ORDER) * PAGE_SIZE) In file included from arch/x86/include/asm/pgtable_types.h:249:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/pgtable_64_types.h:21:34: error: conflicting types for 'pte_t' typedef struct { pteval_t pte; } pte_t; ^~~~~ In file included from arch/um/include/asm/thread_info.h:15:0, from include/linux/thread_info.h:38, from include/asm-generic/current.h:5, from ./arch/um/include/generated/asm/current.h:1, from include/linux/sched.h:12, from arch/x86/um/shared/sysdep/kernel-offsets.h:3, from arch/um/kernel/asm-offsets.c:1: arch/um/include/asm/page.h:57:39: note: previous declaration of 'pte_t' was here typedef struct { unsigned long pte; } pte_t; ^~~~~ In file included from include/linux/page_reporting.h:8:0, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/pgtable_types.h:265:47: error: conflicting types for 'pgprot_t' typedef struct pgprot { pgprotval_t pgprot; } pgprot_t; ^~~~~~~~ In file included from arch/um/include/asm/thread_info.h:15:0, from include/linux/thread_info.h:38, from include/asm-generic/current.h:5, from ./arch/um/include/generated/asm/current.h:1, from include/linux/sched.h:12, from arch/x86/um/shared/sysdep/kernel-offsets.h:3, from arch/um/kernel/asm-offsets.c:1: arch/um/include/asm/page.h:80:42: note: previous declaration of 'pgprot_t' was here typedef struct { unsigned long pgprot; } pgprot_t; ^~~~~~~~ In file included from include/linux/page_reporting.h:8:0, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/pgtable_types.h:267:34: error: conflicting types for 'pgd_t' typedef struct { pgdval_t pgd; } pgd_t; ^~~~~ In file included from arch/um/include/asm/thread_info.h:15:0, from include/linux/thread_info.h:38, from include/asm-generic/current.h:5, from ./arch/um/include/generated/asm/current.h:1, from include/linux/sched.h:12, from arch/x86/um/shared/sysdep/kernel-offsets.h:3, from arch/um/kernel/asm-offsets.c:1: arch/um/include/asm/page.h:58:39: note: previous declaration of 'pgd_t' was here typedef struct { unsigned long pgd; } pgd_t; ^~~~~ In file included from arch/x86/include/asm/pgtable_types.h:346:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: >> include/asm-generic/pgtable-nopud.h:21:0: warning: "PUD_SHIFT" redefined #define PUD_SHIFT P4D_SHIFT In file included from arch/x86/include/asm/pgtable_types.h:249:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/pgtable_64_types.h:83:0: note: this is the location of the previous definition #define PUD_SHIFT 30 In file included from arch/x86/include/asm/pgtable_types.h:346:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: >> include/asm-generic/pgtable-nopud.h:22:0: warning: "PTRS_PER_PUD" redefined #define PTRS_PER_PUD 1 In file included from arch/x86/include/asm/pgtable_types.h:249:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/pgtable_64_types.h:84:0: note: this is the location of the previous definition #define PTRS_PER_PUD 512 In file included from arch/x86/include/asm/pgtable_types.h:346:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: >> include/asm-generic/pgtable-nopud.h:23:0: warning: "PUD_SIZE" redefined #define PUD_SIZE (1UL << PUD_SHIFT) In file included from arch/x86/include/asm/pgtable_types.h:249:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/pgtable_64_types.h:100:0: note: this is the location of the previous definition #define PUD_SIZE (_AC(1, UL) << PUD_SHIFT) In file included from arch/x86/include/asm/pgtable_types.h:346:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: >> include/asm-generic/pgtable-nopud.h:24:0: warning: "PUD_MASK" redefined #define PUD_MASK (~(PUD_SIZE-1)) In file included from arch/x86/include/asm/pgtable_types.h:249:0, from include/linux/page_reporting.h:8, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/pgtable_64_types.h:101:0: note: this is the location of the previous definition #define PUD_MASK (~(PUD_SIZE - 1)) In file included from include/linux/page_reporting.h:8:0, from include/linux/mmzone.h:774, from include/linux/gfp.h:6, from include/linux/slab.h:15, from include/linux/crypto.h:19, from arch/x86/um/shared/sysdep/kernel-offsets.h:5, from arch/um/kernel/asm-offsets.c:1: arch/x86/include/asm/pgtable_types.h:360:34: error: conflicting types for 'pmd_t' typedef struct { pmdval_t pmd; } pmd_t; ^~~~~ In file included from arch/um/include/asm/thread_info.h:15:0, from include/linux/thread_info.h:38, from include/asm-generic/current.h:5, from ./arch/um/include/generated/asm/current.h:1, from include/linux/sched.h:12, from arch/x86/um/shared/sysdep/kernel-offsets.h:3, from arch/um/kernel/asm-offsets.c:1: arch/um/include/asm/page.h:61:39: note: previous declaration of 'pmd_t' was here typedef struct { unsigned long pmd; } pmd_t; ^~~~~ make[2]: *** [arch/um/kernel/asm-offsets.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [sub-make] Error 2 4 real 4 user 2 sys 157.04% cpu make prepare vim +/PUD_SHIFT +21 include/asm-generic/pgtable-nopud.h ^1da177e4c3f41 Linus Torvalds 2005-04-16 20 048456dcf2c56a Kirill A. Shutemov 2017-03-09 @21 #define PUD_SHIFT P4D_SHIFT ^1da177e4c3f41 Linus Torvalds 2005-04-16 @22 #define PTRS_PER_PUD 1 ^1da177e4c3f41 Linus Torvalds 2005-04-16 @23 #define PUD_SIZE (1UL << PUD_SHIFT) ^1da177e4c3f41 Linus Torvalds 2005-04-16 @24 #define PUD_MASK (~(PUD_SIZE-1)) ^1da177e4c3f41 Linus Torvalds 2005-04-16 25 :::::: The code at line 21 was first introduced by commit :::::: 048456dcf2c56ad6f6248e2899dda92fb6a613f6 asm-generic: introduce :::::: TO: Kirill A. Shutemov :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation