linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [linux-next:master 12265/12944] arch/arm64/include/asm/pgtable.h:904:16: error: implicit declaration of function 'pud_leaf'; did you mean 'pmd_leaf'?
@ 2024-03-10  8:10 kernel test robot
  2024-03-11 16:19 ` Peter Xu
  0 siblings, 1 reply; 4+ messages in thread
From: kernel test robot @ 2024-03-10  8:10 UTC (permalink / raw)
  To: Peter Xu
  Cc: oe-kbuild-all, Linux Memory Management List, Andrew Morton,
	Jason Gunthorpe, Mike Rapoport (IBM)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   8ffc8b1bbd505e27e2c8439d326b6059c906c9dd
commit: 924bd6a8c96767a05323d575bdefd664631dce73 [12265/12944] mm/x86: drop two unnecessary pud_leaf() definitions
config: arm64-randconfig-r031-20230409 (https://download.01.org/0day-ci/archive/20240310/202403101607.a42gaLOS-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240310/202403101607.a42gaLOS-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202403101607.a42gaLOS-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from include/linux/pgtable.h:6,
                    from arch/arm64/include/asm/io.h:12,
                    from include/linux/io.h:13,
                    from include/acpi/acpi_io.h:5,
                    from include/linux/acpi.h:39,
                    from include/acpi/apei.h:9,
                    from include/acpi/ghes.h:5,
                    from include/linux/arm_sdei.h:8,
                    from arch/arm64/kernel/asm-offsets.c:10:
   arch/arm64/include/asm/pgtable.h: In function 'pud_user_accessible_page':
>> arch/arm64/include/asm/pgtable.h:904:16: error: implicit declaration of function 'pud_leaf'; did you mean 'pmd_leaf'? [-Werror=implicit-function-declaration]
     904 |         return pud_leaf(pud) && (pud_user(pud) || pud_user_exec(pud));
         |                ^~~~~~~~
         |                pmd_leaf
   cc1: some warnings being treated as errors
   make[3]: *** [scripts/Makefile.build:116: arch/arm64/kernel/asm-offsets.s] Error 1
   make[3]: Target 'prepare' not remade because of errors.
   make[2]: *** [Makefile:1199: prepare0] Error 2
   make[2]: Target 'prepare' not remade because of errors.
   make[1]: *** [Makefile:240: __sub-make] Error 2
   make[1]: Target 'prepare' not remade because of errors.
   make: *** [Makefile:240: __sub-make] Error 2
   make: Target 'prepare' not remade because of errors.


vim +904 arch/arm64/include/asm/pgtable.h

ed928a3402d8a2 Tong Tiangen 2022-05-17  901  
ed928a3402d8a2 Tong Tiangen 2022-05-17  902  static inline bool pud_user_accessible_page(pud_t pud)
ed928a3402d8a2 Tong Tiangen 2022-05-17  903  {
730a11f982e61a Liu Shixin   2022-11-22 @904  	return pud_leaf(pud) && (pud_user(pud) || pud_user_exec(pud));
ed928a3402d8a2 Tong Tiangen 2022-05-17  905  }
ed928a3402d8a2 Tong Tiangen 2022-05-17  906  #endif
ed928a3402d8a2 Tong Tiangen 2022-05-17  907  

:::::: The code at line 904 was first introduced by commit
:::::: 730a11f982e61aaef758ab552dfb7c30de79e99b arm64/mm: add pud_user_exec() check in pud_user_accessible_page()

:::::: TO: Liu Shixin <liushixin2@huawei.com>
:::::: CC: Will Deacon <will@kernel.org>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [linux-next:master 12265/12944] arch/arm64/include/asm/pgtable.h:904:16: error: implicit declaration of function 'pud_leaf'; did you mean 'pmd_leaf'?
  2024-03-10  8:10 [linux-next:master 12265/12944] arch/arm64/include/asm/pgtable.h:904:16: error: implicit declaration of function 'pud_leaf'; did you mean 'pmd_leaf'? kernel test robot
@ 2024-03-11 16:19 ` Peter Xu
  2024-03-13 19:06   ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: Peter Xu @ 2024-03-11 16:19 UTC (permalink / raw)
  To: kernel test robot
  Cc: oe-kbuild-all, Linux Memory Management List, Andrew Morton,
	Jason Gunthorpe, Mike Rapoport (IBM)

On Sun, Mar 10, 2024 at 04:10:37PM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   8ffc8b1bbd505e27e2c8439d326b6059c906c9dd
> commit: 924bd6a8c96767a05323d575bdefd664631dce73 [12265/12944] mm/x86: drop two unnecessary pud_leaf() definitions
> config: arm64-randconfig-r031-20230409 (https://download.01.org/0day-ci/archive/20240310/202403101607.a42gaLOS-lkp@intel.com/config)
> compiler: aarch64-linux-gcc (GCC) 13.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240310/202403101607.a42gaLOS-lkp@intel.com/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@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202403101607.a42gaLOS-lkp@intel.com/
> 
> All errors (new ones prefixed by >>):
> 
>    In file included from include/linux/pgtable.h:6,
>                     from arch/arm64/include/asm/io.h:12,
>                     from include/linux/io.h:13,
>                     from include/acpi/acpi_io.h:5,
>                     from include/linux/acpi.h:39,
>                     from include/acpi/apei.h:9,
>                     from include/acpi/ghes.h:5,
>                     from include/linux/arm_sdei.h:8,
>                     from arch/arm64/kernel/asm-offsets.c:10:
>    arch/arm64/include/asm/pgtable.h: In function 'pud_user_accessible_page':
> >> arch/arm64/include/asm/pgtable.h:904:16: error: implicit declaration of function 'pud_leaf'; did you mean 'pmd_leaf'? [-Werror=implicit-function-declaration]
>      904 |         return pud_leaf(pud) && (pud_user(pud) || pud_user_exec(pud));
>          |                ^~~~~~~~
>          |                pmd_leaf
>    cc1: some warnings being treated as errors
>    make[3]: *** [scripts/Makefile.build:116: arch/arm64/kernel/asm-offsets.s] Error 1
>    make[3]: Target 'prepare' not remade because of errors.
>    make[2]: *** [Makefile:1199: prepare0] Error 2
>    make[2]: Target 'prepare' not remade because of errors.
>    make[1]: *** [Makefile:240: __sub-make] Error 2
>    make[1]: Target 'prepare' not remade because of errors.
>    make: *** [Makefile:240: __sub-make] Error 2
>    make: Target 'prepare' not remade because of errors.
> 
> 
> vim +904 arch/arm64/include/asm/pgtable.h
> 
> ed928a3402d8a2 Tong Tiangen 2022-05-17  901  
> ed928a3402d8a2 Tong Tiangen 2022-05-17  902  static inline bool pud_user_accessible_page(pud_t pud)
> ed928a3402d8a2 Tong Tiangen 2022-05-17  903  {
> 730a11f982e61a Liu Shixin   2022-11-22 @904  	return pud_leaf(pud) && (pud_user(pud) || pud_user_exec(pud));
> ed928a3402d8a2 Tong Tiangen 2022-05-17  905  }
> ed928a3402d8a2 Tong Tiangen 2022-05-17  906  #endif
> ed928a3402d8a2 Tong Tiangen 2022-05-17  907  
> 
> :::::: The code at line 904 was first introduced by commit
> :::::: 730a11f982e61aaef758ab552dfb7c30de79e99b arm64/mm: add pud_user_exec() check in pud_user_accessible_page()
> 
> :::::: TO: Liu Shixin <liushixin2@huawei.com>
> :::::: CC: Will Deacon <will@kernel.org>
> 
> -- 
> 0-DAY CI Kernel Test Service
> https://github.com/intel/lkp-tests/wiki
> 

There's another possibly relevant report for riscv:

https://lore.kernel.org/r/202403090900.OwPqmRuI-lkp@intel.com

I think I messed up the nopmd use case.  Since this commit already landed
mm-stable, I assume there's no way I provide a fixup.

I attached a formal patch below, but I don't know how to test it myself,
and I'm not 100% confident.  Before I post a formal patch, can anyone let
me know how I can kickoff the test bot to test the patch (or help me do the
kickoff)?

Thanks,

======8<=======
From acc5598c7af0b7c9a486a49b8c562bb351e8d35b Mon Sep 17 00:00:00 2001
From: Peter Xu <peterx@redhat.com>
Date: Mon, 11 Mar 2024 12:10:45 -0400
Subject: [PATCH] mm: Recover pud_leaf() definitions in nopmd case

This reverts one change in commit 924bd6a8c96767a05323d575bdefd664631dce73.

One issue with that is it broke nopmd builds for at least both arm64 and
riscv (CONFIG_PGTABLE_LEVELS=2).  The other issue is it was overlooked that
it's a common change rather than x86 specific (relevant to the commit
message of the commit).

Normally there's no need for empty definition of pXd_leaf() because of the
fallback functions, however this logic may not apply to pgtable-nopmd.h,
because that's a header that can even be used by arch *pgtable.h headers,
which can use the *_leaf() definitions _before_ the fallback functions are
defined.  Leave it there to pass PGTABLE_LEVELS=2 builds.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202403090900.OwPqmRuI-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202403101607.a42gaLOS-lkp@intel.com/
Fixes: 924bd6a8c967 ("mm/x86: drop two unnecessary pud_leaf() definitions")
Signed-off-by: Peter Xu <peterx@redhat.com>
---
 include/asm-generic/pgtable-nopmd.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/asm-generic/pgtable-nopmd.h b/include/asm-generic/pgtable-nopmd.h
index fa27e16bbe1b..8ffd64e7a24c 100644
--- a/include/asm-generic/pgtable-nopmd.h
+++ b/include/asm-generic/pgtable-nopmd.h
@@ -31,6 +31,7 @@ static inline int pud_none(pud_t pud)		{ return 0; }
 static inline int pud_bad(pud_t pud)		{ return 0; }
 static inline int pud_present(pud_t pud)	{ return 1; }
 static inline int pud_user(pud_t pud)		{ return 0; }
+static inline int pud_leaf(pud_t pud)		{ return 0; }
 static inline void pud_clear(pud_t *pud)	{ }
 #define pmd_ERROR(pmd)				(pud_ERROR((pmd).pud))
 
-- 
2.44.0



^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [linux-next:master 12265/12944] arch/arm64/include/asm/pgtable.h:904:16: error: implicit declaration of function 'pud_leaf'; did you mean 'pmd_leaf'?
  2024-03-11 16:19 ` Peter Xu
@ 2024-03-13 19:06   ` Andrew Morton
  2024-03-13 19:59     ` Peter Xu
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Morton @ 2024-03-13 19:06 UTC (permalink / raw)
  To: Peter Xu
  Cc: kernel test robot, oe-kbuild-all, Linux Memory Management List,
	Jason Gunthorpe, Mike Rapoport (IBM)

> 
> There's another possibly relevant report for riscv:
> 
> https://lore.kernel.org/r/202403090900.OwPqmRuI-lkp@intel.com
> 
> I think I messed up the nopmd use case.  Since this commit already landed
> mm-stable, I assume there's no way I provide a fixup.
> 
> I attached a formal patch below, but I don't know how to test it myself,

What I do:

Grab https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.2.0/x86_64-gcc-13.2.0-nolibc-aarch64-linux.tar.gz

untar that into /opt/crosstool

And my crufty old script does, partly,

	WHAT="$*"

	...
	[ $ARCH = arm64 ] &&    CT=gcc-13.2.0-nolibc && XARCH=aarch64-linux
	...

	PATH=$PATH:/opt/crosstool/$CT/$XARCH/bin export PATH
	export CROSS_COMPILE=/opt/crosstool/$CT/$XARCH/bin/$XARCH-
	export CC="/opt/crosstool/$CT/$XARCH/bin/$XARCH-gcc"
	J=$(grep "^processor" /proc/cpuinfo | wc -l)
	J=$(expr $J \* 2)
	nice -20 make -j$J CC="$CC" $WHAT 2>/tmp/log-$ARCH

setenv ARCH arm64
crufty-old-script vmlinux modules

> and I'm not 100% confident.  Before I post a formal patch, can anyone let
> me know how I can kickoff the test bot to test the patch (or help me do the
> kickoff)?

Worked for me, thanks.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [linux-next:master 12265/12944] arch/arm64/include/asm/pgtable.h:904:16: error: implicit declaration of function 'pud_leaf'; did you mean 'pmd_leaf'?
  2024-03-13 19:06   ` Andrew Morton
@ 2024-03-13 19:59     ` Peter Xu
  0 siblings, 0 replies; 4+ messages in thread
From: Peter Xu @ 2024-03-13 19:59 UTC (permalink / raw)
  To: Andrew Morton
  Cc: kernel test robot, oe-kbuild-all, Linux Memory Management List,
	Jason Gunthorpe, Mike Rapoport (IBM)

On Wed, Mar 13, 2024 at 12:06:22PM -0700, Andrew Morton wrote:
> > 
> > There's another possibly relevant report for riscv:
> > 
> > https://lore.kernel.org/r/202403090900.OwPqmRuI-lkp@intel.com
> > 
> > I think I messed up the nopmd use case.  Since this commit already landed
> > mm-stable, I assume there's no way I provide a fixup.
> > 
> > I attached a formal patch below, but I don't know how to test it myself,
> 
> What I do:
> 
> Grab https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/13.2.0/x86_64-gcc-13.2.0-nolibc-aarch64-linux.tar.gz
> 
> untar that into /opt/crosstool
> 
> And my crufty old script does, partly,
> 
> 	WHAT="$*"
> 
> 	...
> 	[ $ARCH = arm64 ] &&    CT=gcc-13.2.0-nolibc && XARCH=aarch64-linux
> 	...
> 
> 	PATH=$PATH:/opt/crosstool/$CT/$XARCH/bin export PATH
> 	export CROSS_COMPILE=/opt/crosstool/$CT/$XARCH/bin/$XARCH-
> 	export CC="/opt/crosstool/$CT/$XARCH/bin/$XARCH-gcc"
> 	J=$(grep "^processor" /proc/cpuinfo | wc -l)
> 	J=$(expr $J \* 2)
> 	nice -20 make -j$J CC="$CC" $WHAT 2>/tmp/log-$ARCH
> 
> setenv ARCH arm64
> crufty-old-script vmlinux modules

I'll keep these notes.

> 
> > and I'm not 100% confident.  Before I post a formal patch, can anyone let
> > me know how I can kickoff the test bot to test the patch (or help me do the
> > kickoff)?
> 
> Worked for me, thanks.

I will try to do better next time..

Thanks a lot for the help, Andrew!

-- 
Peter Xu



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2024-03-13 20:00 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-10  8:10 [linux-next:master 12265/12944] arch/arm64/include/asm/pgtable.h:904:16: error: implicit declaration of function 'pud_leaf'; did you mean 'pmd_leaf'? kernel test robot
2024-03-11 16:19 ` Peter Xu
2024-03-13 19:06   ` Andrew Morton
2024-03-13 19:59     ` Peter Xu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).