On Tue, Jan 06, 2026 at 12:21:47PM +0000, Mark Rutland wrote:
On Tue, Jan 06, 2026 at 02:16:35AM -0800, Breno Leitao wrote:
The arm64 kernel doesn't boot with annotated branches (PROFILE_ANNOTATED_BRANCHES) enabled and CONFIG_DEBUG_VIRTUAL together.
Bisecting it, I found that disabling branch profiling in arch/arm64/mm solved the problem. Narrowing down a bit further, I found that physaddr.c is the file that needs to have branch profiling disabled to get the machine to boot.
I suspect that it might invoke some ftrace helper very early in the boot process and ftrace is still not enabled(!?).
Rather than playing whack-a-mole with individual files, disable branch profiling for the entire arch/arm64 tree, similar to what x86 already does in arch/x86/Kbuild.
Cc: stable@vger.kernel.org Fixes: ec6d06efb0bac ("arm64: Add support for CONFIG_DEBUG_VIRTUAL") Signed-off-by: Breno Leitao leitao@debian.org
I don't think ec6d06efb0bac is to blame here, and CONFIG_DEBUG_VIRTUAL is unsound in a number of places, so I'd prefer to remove that Fixes tag and backport this for all stable trees.
Regardless, I'm in favour of disabling CONFIG_DEBUG_VIRTUAL widely, so:
Acked-by: Mark Rutland mark.rutland@arm.com
Whoops; s/CONFIG_DEBUG_VIRTUAL/PROFILE_ANNOTATED_BRANCHES/ in both places in my reply.
Mark.