On Wed, May 13, 2020 at 04:06:37PM -0700, Douglas Anderson wrote: > A new kgdb feature will soon land (kgdb_earlycon) that lets us run > kgdb much earlier. In order for everything to work properly it's > important that the break hook is setup by the time we process > "kgdbwait". > > Right now the break hook is setup in debug_traps_init() and that's > called from arch_initcall(). That's a bit too late since > kgdb_earlycon really needs things to be setup by the time the system > calls dbg_late_init(). > > We could fix this by adding call_break_hook() into early_brk64() and > that works fine. However, it's a little ugly. Instead, let's just > add a call to debug_traps_init() straight from trap_init(). There's > already a documented dependency between trap_init() and > debug_traps_init() and this makes the dependency more obvious rather > than just relying on a comment. > > NOTE: this solution isn't early enough to let us select the > "ARCH_HAS_EARLY_DEBUG" KConfig option that is introduced by the > kgdb_earlycon patch series. That would only be set if we could do > breakpoints when early params are parsed. This patch only enables > "late early" breakpoints, AKA breakpoints when dbg_late_init() is > called. It's expected that this should be fine for most people. > > It should also be noted that if you crash you can still end up in kgdb > earlier than debug_traps_init(). Since you don't need breakpoints to > debug a crash that's fine. > > Suggested-by: Will Deacon <w...@kernel.org> > Signed-off-by: Douglas Anderson <diand...@chromium.org> > Cc: Catalin Marinas <catalin.mari...@arm.com> > Cc: Will Deacon <w...@kernel.org> > --- > This replaces the patch ("arm64: Add call_break_hook() to > early_brk64() for early kgdb") in my recent kgdb series [1]. If I end > up re-posting that series again I'll include this patch as a > replacement, but I'm sending it separately to avoid spamming a pile of > people another time with a 12-patch series. > > Note that, because it doesn't select the "ARCH_HAS_EARLY_DEBUG" > KConfig option it could be landed standalone. However, it's still > probably better to land together with that patch series. > > If the kgdb_earlycon patch series lands without this patch then > kgdbwait + kgdb_earlycon won't work well on arm64, but there would be > no other bad side effects. > > If this patch lands without the kgdb_earlycon patch series then there > will be no known problems. > > [1] > https://lore.kernel.org/r/20200507130644.v4.5.I22067ad43e77ddfd4b64c2d49030628480f9e8d9@changeid > > arch/arm64/include/asm/debug-monitors.h | 2 ++ > arch/arm64/kernel/debug-monitors.c | 4 +--- > arch/arm64/kernel/traps.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-)
[...] Acked-by: Will Deacon <w...@kernel.org> I would prefer to take this via arm64, if possible, since we have quite lot going in for 5.8, although I don't think this conflicts at the moment. Daniel -- what do you want to do? Will