[next-20251022] Kernel Boot Warnings at arch/powerpc/kernel/trace/ftrace.c:234

Hari Bathini hbathini at linux.ibm.com
Thu Oct 30 23:39:54 AEDT 2025


Hi Josh,

On 30/10/25 7:36 am, Josh Poimboeuf wrote:
> On Wed, Oct 29, 2025 at 11:42:54PM +0530, Hari Bathini wrote:
>> Hi Petr,
>> On 23/10/25 2:42 pm, Petr Mladek wrote:
>>> On Wed 2025-10-22 19:56:45, Venkat Rao Bagalkote wrote:
>>>>
>>>> On 22/10/25 6:36 pm, Petr Mladek wrote:
>>>>> On Wed 2025-10-22 17:36:18, Venkat Rao Bagalkote wrote:
>>>>>> On 22/10/25 1:52 pm, Venkat Rao Bagalkote wrote:
>>>>>>> Greetings!!!
>>>>>>>
>>>>>>>
>>>>>>> IBM CI has reported kernel boot warnings with next-20251022 kernel. I
>>>>>>> see there are couple of warnings hit and eventually system boots to
>>>>>>> emergency mode.
>>>>>>>
>>>>>>>
>>>>>> With the identified first bad commit, is casuing the kernel to boot to
>>>>>> emergency mode. I reverted the bad commit and built the kernel, then kernel
>>>>>> is booting fine, but with boot warnings.
>>>>> I guess that it is the same problem which should get fixed by the patch
>>>>> https://lore.kernel.org/r/e52ee3edf32874da645a9e037a7d77c69893a22a.1760982784.git.jpoimboe@kernel.org
>>>>
>>>>
>>>> Thank you Petr, for pointing to the fix patch. It fixes the kernel booting
>>>> to emergency mode.
>>>
>>> Great.
>>>
>>>> But boot warning still persists.
>>>
>>> I looks like another problem. I would expect that it is in
>>> the ftrace code, either in the generic or arch-specific part.
>> Yeah. This is part of arch-specific code that does init of ftrace
>> out line stubs. The problem seems to be since commit 1ba9f8979426
>> ("vmlinux.lds: Unify TEXT_MAIN, DATA_MAIN, and related macros").
>> Before this commit, .text.startup section was featured in INIT_TEXT
>> but now it seems to feature in TEXT. Is this change right/intentional?
>> If yes, I can post a fix patch in ftrace arch-specific code accordingly.
> 
> Ah, I wasn't aware of .text.startup.  Apparently it's used by KASAN,
> KCSCAN and GCOV for a significant amount of constructor code, which is
> only called during boot.  So we should try to keep it in .init.text.
> 
> Venkat, does this fix it?

I tried the patch along with
https://lore.kernel.org/r/e52ee3edf32874da645a9e037a7d77c69893a22a.1760982784.git.jpoimboe@kernel.org
It fixes the problems reported. Thanks!

> 
> diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
> index 5facbc9946344..9de1d900fa154 100644
> --- a/include/asm-generic/vmlinux.lds.h
> +++ b/include/asm-generic/vmlinux.lds.h
> @@ -88,13 +88,29 @@
>   
>   /*
>    * Support -ffunction-sections by matching .text and .text.*,
> - * but exclude '.text..*'.
> + * but exclude '.text..*', .text.startup[.*], and .text.exit[.*].
>    *
> - * Special .text.* sections that are typically grouped separately, such as
> + * .text.startup and .text.startup.* are matched later by INIT_TEXT.
> + * .text.exit and .text.exit.* are matched later by EXIT_TEXT.
> + *
> + * Other .text.* sections that are typically grouped separately, such as
>    * .text.unlikely or .text.hot, must be matched explicitly before using
>    * TEXT_MAIN.
>    */
> -#define TEXT_MAIN .text .text.[0-9a-zA-Z_]*
> +#define TEXT_MAIN							\
> +	.text								\
> +	.text.[_0-9A-Za-df-rt-z]*					\
> +	.text.s[_0-9A-Za-su-z]*						\
> +	.text.st[_0-9A-Zb-z]*						\
> +	.text.sta[_0-9A-Za-qs-z]*					\
> +	.text.star[_0-9A-Za-su-z]*					\
> +	.text.start[_0-9A-Za-tv-z]*					\
> +	.text.startu[_0-9A-Za-oq-z]*					\
> +	.text.startup[_0-9A-Za-z]*					\
> +	.text.e[_0-9A-Za-wy-z]*						\
> +	.text.ex[_0-9A-Za-hj-z]*					\
> +	.text.exi[_0-9A-Za-su-z]*					\
> +	.text.exit[_0-9A-Za-z]*
>   
>   /*
>    * Support -fdata-sections by matching .data, .data.*, and others,
> @@ -713,16 +729,16 @@
>   
>   #define INIT_TEXT							\
>   	*(.init.text .init.text.*)					\
> -	*(.text.startup)
> +	*(.text.startup .text.startup.*)
>   
>   #define EXIT_DATA							\
>   	*(.exit.data .exit.data.*)					\
>   	*(.fini_array .fini_array.*)					\
> -	*(.dtors .dtors.*)						\
> +	*(.dtors .dtors.*)
>   
>   #define EXIT_TEXT							\
>   	*(.exit.text)							\
> -	*(.text.exit)							\
> +	*(.text.exit .text.exit.*)
>   
>   #define EXIT_CALL							\
>   	*(.exitcall.exit)
> 



More information about the Linuxppc-dev mailing list