2018-10-30 21:10:00

by Doug Anderson

[permalink] [raw]
Subject: [PATCH] kdb: Fix btc (backtrace on each cpu) crash

Typing 'btc' on kdb doing all sorts of fail. Sometimes it would
crash, sometimes display nothing, and sometimes hang.

Bisect tracked this down to the commit ad67b74d2469 ("printk: hash
addresses printed with %p"), suggesting an obvious fix. The pointer
used internally in kdb shouldn't be hashed, so switch it to %px.

Fixes: ad67b74d2469 ("printk: hash addresses printed with %p")
Cc: [email protected]
Signed-off-by: Douglas Anderson <[email protected]>
---

kernel/debug/kdb/kdb_bt.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/kernel/debug/kdb/kdb_bt.c b/kernel/debug/kdb/kdb_bt.c
index 6ad4a9fcbd6f..7921ae4fca8d 100644
--- a/kernel/debug/kdb/kdb_bt.c
+++ b/kernel/debug/kdb/kdb_bt.c
@@ -179,14 +179,14 @@ kdb_bt(int argc, const char **argv)
kdb_printf("no process for cpu %ld\n", cpu);
return 0;
}
- sprintf(buf, "btt 0x%p\n", KDB_TSK(cpu));
+ sprintf(buf, "btt 0x%px\n", KDB_TSK(cpu));
kdb_parse(buf);
return 0;
}
kdb_printf("btc: cpu status: ");
kdb_parse("cpu\n");
for_each_online_cpu(cpu) {
- sprintf(buf, "btt 0x%p\n", KDB_TSK(cpu));
+ sprintf(buf, "btt 0x%px\n", KDB_TSK(cpu));
kdb_parse(buf);
touch_nmi_watchdog();
}
--
2.19.1.568.g152ad8e336-goog



2018-10-31 11:59:54

by Daniel Thompson

[permalink] [raw]
Subject: Re: [PATCH] kdb: Fix btc (backtrace on each cpu) crash

On Tue, Oct 30, 2018 at 01:53:34PM -0700, Douglas Anderson wrote:
> Typing 'btc' on kdb doing all sorts of fail. Sometimes it would
> crash, sometimes display nothing, and sometimes hang.
>
> Bisect tracked this down to the commit ad67b74d2469 ("printk: hash
> addresses printed with %p"), suggesting an obvious fix. The pointer
> used internally in kdb shouldn't be hashed, so switch it to %px.
>
> Fixes: ad67b74d2469 ("printk: hash addresses printed with %p")
> Cc: [email protected]
> Signed-off-by: Douglas Anderson <[email protected]>

I think we've already got a fix for this:
https://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb.git/commit/?h=kgdb-next&id=a0ca72c2d1ac83d0853a23ffde8f3624648b1ee8


Daniel.

> ---
>
> kernel/debug/kdb/kdb_bt.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/debug/kdb/kdb_bt.c b/kernel/debug/kdb/kdb_bt.c
> index 6ad4a9fcbd6f..7921ae4fca8d 100644
> --- a/kernel/debug/kdb/kdb_bt.c
> +++ b/kernel/debug/kdb/kdb_bt.c
> @@ -179,14 +179,14 @@ kdb_bt(int argc, const char **argv)
> kdb_printf("no process for cpu %ld\n", cpu);
> return 0;
> }
> - sprintf(buf, "btt 0x%p\n", KDB_TSK(cpu));
> + sprintf(buf, "btt 0x%px\n", KDB_TSK(cpu));
> kdb_parse(buf);
> return 0;
> }
> kdb_printf("btc: cpu status: ");
> kdb_parse("cpu\n");
> for_each_online_cpu(cpu) {
> - sprintf(buf, "btt 0x%p\n", KDB_TSK(cpu));
> + sprintf(buf, "btt 0x%px\n", KDB_TSK(cpu));
> kdb_parse(buf);
> touch_nmi_watchdog();
> }
> --
> 2.19.1.568.g152ad8e336-goog
>

2018-10-31 15:08:00

by Doug Anderson

[permalink] [raw]
Subject: Re: [PATCH] kdb: Fix btc (backtrace on each cpu) crash

Hi,

On Wed, Oct 31, 2018 at 4:59 AM Daniel Thompson
<[email protected]> wrote:
>
> On Tue, Oct 30, 2018 at 01:53:34PM -0700, Douglas Anderson wrote:
> > Typing 'btc' on kdb doing all sorts of fail. Sometimes it would
> > crash, sometimes display nothing, and sometimes hang.
> >
> > Bisect tracked this down to the commit ad67b74d2469 ("printk: hash
> > addresses printed with %p"), suggesting an obvious fix. The pointer
> > used internally in kdb shouldn't be hashed, so switch it to %px.
> >
> > Fixes: ad67b74d2469 ("printk: hash addresses printed with %p")
> > Cc: [email protected]
> > Signed-off-by: Douglas Anderson <[email protected]>
>
> I think we've already got a fix for this:
> https://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb.git/commit/?h=kgdb-next&id=a0ca72c2d1ac83d0853a23ffde8f3624648b1ee8

Ah ha. Nice! Sorry for not noticing this. The newest I tested was 4.19.

-Doug