Re: 6.2-rc7 fails building on Talos II: memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush'
[TLDR: This mail in primarily relevant for Linux regression tracking. A change or fix related to the regression discussed in this thread was posted or applied, but it did not use a Link: tag to point to the report, as Linus and the documentation call for. Things happen, no worries -- but now the regression tracking bot needs to be told manually about the fix. See link in footer if these mails annoy you.] On 16.02.23 11:09, Linux regression tracking (Thorsten Leemhuis) wrote: > > On 16.02.23 00:55, Erhard F. wrote: >> Just noticed a build failure on 6.2-rc7 for my Talos 2 (.config attached): >> >> # make >> CALLscripts/checksyscalls.sh >> UPD include/generated/utsversion.h >> CC init/version-timestamp.o >> LD .tmp_vmlinux.kallsyms1 >> ld: ld: DWARF error: could not find abbrev number 6 >> mm/memory.o: in function `unmap_page_range': >> memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush' >> ld: memory.c:(.text+0x2f8c): undefined reference to `hash__tlb_flush' >> ld: ld: DWARF error: could not find abbrev number 3117 >> mm/mmu_gather.o: in function `tlb_remove_table': >> mmu_gather.c:(.text+0x584): undefined reference to `hash__tlb_flush' >> ld: mmu_gather.c:(.text+0x6c4): undefined reference to `hash__tlb_flush' >> ld: mm/mmu_gather.o: in function `tlb_flush_mmu': >> mmu_gather.c:(.text+0x80c): undefined reference to `hash__tlb_flush' >> ld: mm/mmu_gather.o:mmu_gather.c:(.text+0xbe0): more undefined references to >> `hash__tlb_flush' follow >> make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Fehler 1 >> make: *** [Makefile:1264: vmlinux] Error 2 #regzbot fix: 4302abc628fc0dc08e5855f21bbfa #regzbot ignore-activity Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat) -- Everything you wanna know about Linux kernel regression tracking: https://linux-regtracking.leemhuis.info/about/#tldr That page also explains what to do if mails like this annoy you.
Re: 6.2-rc7 fails building on Talos II: memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush'
On Thu, 16 Feb 2023 06:29:52 + Christophe Leroy wrote: > Can you try with : > > diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush.h > b/arch/powerpc/include/asm/book3s/64/tlbflush.h > index d5cd16270c5d..2bbc0fcce04a 100644 > --- a/arch/powerpc/include/asm/book3s/64/tlbflush.h > +++ b/arch/powerpc/include/asm/book3s/64/tlbflush.h > @@ -97,8 +97,8 @@ static inline void tlb_flush(struct mmu_gather *tlb) > { > if (radix_enabled()) > radix__tlb_flush(tlb); > - > - return hash__tlb_flush(tlb); > + else > + hash__tlb_flush(tlb); > } > > #ifdef CONFIG_SMP With the patch applied my 6.2-rc7 .config builds. Thanks Christophe! Regards, Erhard
Re: 6.2-rc7 fails building on Talos II: memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush'
[TLDR: I'm adding this report to the list of tracked Linux kernel regressions; the text you find below is based on a few templates paragraphs you might have encountered already in similar form. See link in footer if these mails annoy you.] [CCing the regression list, as it should be in the loop for regressions: https://docs.kernel.org/admin-guide/reporting-regressions.html] On 16.02.23 00:55, Erhard F. wrote: > Just noticed a build failure on 6.2-rc7 for my Talos 2 (.config attached): > > # make > CALLscripts/checksyscalls.sh > UPD include/generated/utsversion.h > CC init/version-timestamp.o > LD .tmp_vmlinux.kallsyms1 > ld: ld: DWARF error: could not find abbrev number 6 > mm/memory.o: in function `unmap_page_range': > memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush' > ld: memory.c:(.text+0x2f8c): undefined reference to `hash__tlb_flush' > ld: ld: DWARF error: could not find abbrev number 3117 > mm/mmu_gather.o: in function `tlb_remove_table': > mmu_gather.c:(.text+0x584): undefined reference to `hash__tlb_flush' > ld: mmu_gather.c:(.text+0x6c4): undefined reference to `hash__tlb_flush' > ld: mm/mmu_gather.o: in function `tlb_flush_mmu': > mmu_gather.c:(.text+0x80c): undefined reference to `hash__tlb_flush' > ld: mm/mmu_gather.o:mmu_gather.c:(.text+0xbe0): more undefined references to > `hash__tlb_flush' follow > make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Fehler 1 > make: *** [Makefile:1264: vmlinux] Error 2 > > As 6.2-rc6 was good on this machine I did a quick bisect which revealed this > commit: > > # git bisect bad > 1665c027afb225882a5a0b014c45e84290b826c2 is the first bad commit > [...] Thanks for the report. To be sure the issue doesn't fall through the cracks unnoticed, I'm adding it to regzbot, the Linux kernel regression tracking bot: #regzbot ^introduced 1665c027afb225 #regzbot title powerpc: 6.2-rc7 fails building on Talos II #regzbot ignore-activity This isn't a regression? This issue or a fix for it are already discussed somewhere else? It was fixed already? You want to clarify when the regression started to happen? Or point out I got the title or something else totally wrong? Then just reply and tell me -- ideally while also telling regzbot about it, as explained by the page listed in the footer of this mail. Developers: When fixing the issue, remember to add 'Link:' tags pointing to the report (the parent of this mail). See page linked in footer for details. Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat) -- Everything you wanna know about Linux kernel regression tracking: https://linux-regtracking.leemhuis.info/about/#tldr That page also explains what to do if mails like this annoy you.
Re: 6.2-rc7 fails building on Talos II: memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush'
Le 16/02/2023 à 00:55, Erhard F. a écrit : > Just noticed a build failure on 6.2-rc7 for my Talos 2 (.config attached): > > # make >CALLscripts/checksyscalls.sh >UPD include/generated/utsversion.h >CC init/version-timestamp.o >LD .tmp_vmlinux.kallsyms1 > ld: ld: DWARF error: could not find abbrev number 6 > mm/memory.o: in function `unmap_page_range': > memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush' > ld: memory.c:(.text+0x2f8c): undefined reference to `hash__tlb_flush' > ld: ld: DWARF error: could not find abbrev number 3117 > mm/mmu_gather.o: in function `tlb_remove_table': > mmu_gather.c:(.text+0x584): undefined reference to `hash__tlb_flush' > ld: mmu_gather.c:(.text+0x6c4): undefined reference to `hash__tlb_flush' > ld: mm/mmu_gather.o: in function `tlb_flush_mmu': > mmu_gather.c:(.text+0x80c): undefined reference to `hash__tlb_flush' > ld: mm/mmu_gather.o:mmu_gather.c:(.text+0xbe0): more undefined references to > `hash__tlb_flush' follow > make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Fehler 1 > make: *** [Makefile:1264: vmlinux] Error 2 > > As 6.2-rc6 was good on this machine I did a quick bisect which revealed this > commit: > > # git bisect bad > 1665c027afb225882a5a0b014c45e84290b826c2 is the first bad commit > commit 1665c027afb225882a5a0b014c45e84290b826c2 > Author: Michael Ellerman > Date: Tue Jan 31 22:14:07 2023 +1100 > > powerpc/64s: Reconnect tlb_flush() to hash__tlb_flush() > > Commit baf1ed24b27d ("powerpc/mm: Remove empty hash__ functions") > removed some empty hash MMU flushing routines, but got a bit overeager > and also removed the call to hash__tlb_flush() from tlb_flush(). > > In regular use this doesn't lead to any noticable breakage, which is a > little concerning. Presumably there are flushes happening via other > paths such as arch_leave_lazy_mmu_mode(), and/or a bit of luck. > > Fix it by reinstating the call to hash__tlb_flush(). > > Fixes: baf1ed24b27d ("powerpc/mm: Remove empty hash__ functions") > Signed-off-by: Michael Ellerman > Link: > https://lore.kernel.org/r/2023013407.806770-1-...@ellerman.id.au > > arch/powerpc/include/asm/book3s/64/tlbflush.h | 2 ++ > 1 file changed, 2 insertions(+) > Can you try with : diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush.h b/arch/powerpc/include/asm/book3s/64/tlbflush.h index d5cd16270c5d..2bbc0fcce04a 100644 --- a/arch/powerpc/include/asm/book3s/64/tlbflush.h +++ b/arch/powerpc/include/asm/book3s/64/tlbflush.h @@ -97,8 +97,8 @@ static inline void tlb_flush(struct mmu_gather *tlb) { if (radix_enabled()) radix__tlb_flush(tlb); - - return hash__tlb_flush(tlb); + else + hash__tlb_flush(tlb); } #ifdef CONFIG_SMP
Re: 6.2-rc7 fails building on Talos II: memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush'
On Thu, 2023-02-16 at 00:55 +0100, Erhard F. wrote: > Just noticed a build failure on 6.2-rc7 for my Talos 2 (.config > attached): > > # make > CALL scripts/checksyscalls.sh > UPD include/generated/utsversion.h > CC init/version-timestamp.o > LD .tmp_vmlinux.kallsyms1 > ld: ld: DWARF error: could not find abbrev number 6 > mm/memory.o: in function `unmap_page_range': > memory.c:(.text+0x2e14): undefined reference to `hash__tlb_flush' > ld: memory.c:(.text+0x2f8c): undefined reference to `hash__tlb_flush' > ld: ld: DWARF error: could not find abbrev number 3117 > mm/mmu_gather.o: in function `tlb_remove_table': > mmu_gather.c:(.text+0x584): undefined reference to `hash__tlb_flush' > ld: mmu_gather.c:(.text+0x6c4): undefined reference to > `hash__tlb_flush' > ld: mm/mmu_gather.o: in function `tlb_flush_mmu': > mmu_gather.c:(.text+0x80c): undefined reference to `hash__tlb_flush' > ld: mm/mmu_gather.o:mmu_gather.c:(.text+0xbe0): more undefined > references to `hash__tlb_flush' follow > make[1]: *** [scripts/Makefile.vmlinux:35: vmlinux] Fehler 1 > make: *** [Makefile:1264: vmlinux] Error 2 > > As 6.2-rc6 was good on this machine I did a quick bisect which > revealed this commit: > > # git bisect bad > 1665c027afb225882a5a0b014c45e84290b826c2 is the first bad commit > commit 1665c027afb225882a5a0b014c45e84290b826c2 > Author: Michael Ellerman > Date: Tue Jan 31 22:14:07 2023 +1100 > > powerpc/64s: Reconnect tlb_flush() to hash__tlb_flush() > > Commit baf1ed24b27d ("powerpc/mm: Remove empty hash__ functions") > removed some empty hash MMU flushing routines, but got a bit > overeager > and also removed the call to hash__tlb_flush() from tlb_flush(). > > In regular use this doesn't lead to any noticable breakage, which > is a > little concerning. Presumably there are flushes happening via > other > paths such as arch_leave_lazy_mmu_mode(), and/or a bit of luck. > > Fix it by reinstating the call to hash__tlb_flush(). > > Fixes: baf1ed24b27d ("powerpc/mm: Remove empty hash__ functions") > Signed-off-by: Michael Ellerman > Link: > https://lore.kernel.org/r/2023013407.806770-1-...@ellerman.id.au > > arch/powerpc/include/asm/book3s/64/tlbflush.h | 2 ++ > 1 file changed, 2 insertions(+) > > > Regards, > Erhard Looks like the `return` on the radix version wasn't added back, so it falls through to the hash call too.