Re: [PATCH 4/4] Revert "mm/page_alloc: make should_fail_alloc_page() static"

From: Jesper Dangaard Brouer
Date: Thu Jul 15 2021 - 04:35:17 EST


Cc. Jiri Olsa + Arnaldo

On 14/07/2021 09.06, John Hubbard wrote:
On 7/13/21 8:21 AM, Mel Gorman wrote:
From: Matteo Croce <mcroce@xxxxxxxxxxxxx>

This reverts commit f7173090033c70886d925995e9dfdfb76dbb2441.

Fix an unresolved symbol error when CONFIG_DEBUG_INFO_BTF=y:

   LD      vmlinux
   BTFIDS  vmlinux
FAILED unresolved symbol should_fail_alloc_page
make: *** [Makefile:1199: vmlinux] Error 255
make: *** Deleting file 'vmlinux'

Yes! I ran into this yesterday. Your patch fixes this build failure
for me, so feel free to add:

Tested-by: John Hubbard <jhubbard@xxxxxxxxxx>


However, I should add that I'm still seeing another build failure, after
fixing the above:

LD      vmlinux
BTFIDS  vmlinux
FAILED elf_update(WRITE): no error

This elf_update(WRITE) error is new to me.

make: *** [Makefile:1176: vmlinux] Error 255
make: *** Deleting file 'vmlinux'

It is annoying that vmlinux is deleted in this case, because I usually give Jiri the output from 'resolve_btfids -v' on vmlinux.

$ ./tools/bpf/resolve_btfids/resolve_btfids -v vmlinux.failed

You can do:
$ git diff
diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
index 3b261b0f74f0..02dec10a7d75 100755
--- a/scripts/link-vmlinux.sh
+++ b/scripts/link-vmlinux.sh
@@ -302,7 +302,8 @@ cleanup()
rm -f .tmp_symversions.lds
rm -f .tmp_vmlinux*
rm -f System.map
- rm -f vmlinux
+ # rm -f vmlinux
+ mv vmlinux vmlinux.failed
rm -f vmlinux.o
}




...and un-setting CONFIG_DEBUG_INFO_BTF makes that disappear. Maybe someone
who is understands the BTFIDS build step can shed some light on that; I'm
not there yet. :)

I'm just a user/consume of output from the BTFIDS build step, I think Jiri Olsa own the tool resolve_btfids, and ACME pahole. I've hit a number of issues in the past that Jiri and ACME help resolve quickly.
The most efficient solution I've found was to upgrade pahole to a newer version.

What version of pahole does your build system have?

What is your GCC version?

--Jesper