* [PATCH v2] arm64/debug: Fix registers on sleeping tasks
@ 2018-03-05 23:43 ` Douglas Anderson
0 siblings, 0 replies; 8+ messages in thread
From: Douglas Anderson @ 2018-03-05 23:43 UTC (permalink / raw)
To: linux-arm-kernel
This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix
registers on sleeping tasks") but for arm64. Nuff said.
...well, perhaps I could also add that task_pt_regs are userspace
registers and that's not what kgdb is supposed to be reporting. We're
supposed to be reporting kernel registers.
Signed-off-by: Douglas Anderson <dianders@chromium.org>
---
Changes in v2:
- Init cpu_context in one line
- Explain that task_pt_regs are userspace
arch/arm64/kernel/kgdb.c | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/arch/arm64/kernel/kgdb.c b/arch/arm64/kernel/kgdb.c
index 2122cd187f19..a20de58061a8 100644
--- a/arch/arm64/kernel/kgdb.c
+++ b/arch/arm64/kernel/kgdb.c
@@ -138,14 +138,25 @@ int dbg_set_reg(int regno, void *mem, struct pt_regs *regs)
void
sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task)
{
- struct pt_regs *thread_regs;
+ struct cpu_context *cpu_context = &task->thread.cpu_context;
/* Initialize to zero */
memset((char *)gdb_regs, 0, NUMREGBYTES);
- thread_regs = task_pt_regs(task);
- memcpy((void *)gdb_regs, (void *)thread_regs->regs, GP_REG_BYTES);
- /* Special case for PSTATE (check comments in asm/kgdb.h for details) */
- dbg_get_reg(33, gdb_regs + GP_REG_BYTES, thread_regs);
+
+ gdb_regs[19] = cpu_context->x19;
+ gdb_regs[20] = cpu_context->x20;
+ gdb_regs[21] = cpu_context->x21;
+ gdb_regs[22] = cpu_context->x22;
+ gdb_regs[23] = cpu_context->x23;
+ gdb_regs[24] = cpu_context->x24;
+ gdb_regs[25] = cpu_context->x25;
+ gdb_regs[26] = cpu_context->x26;
+ gdb_regs[27] = cpu_context->x27;
+ gdb_regs[28] = cpu_context->x28;
+ gdb_regs[29] = cpu_context->fp;
+
+ gdb_regs[31] = cpu_context->sp;
+ gdb_regs[32] = cpu_context->pc;
}
void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)
--
2.16.2.395.g2e18187dfd-goog
^ permalink raw reply related [flat|nested] 8+ messages in thread* [PATCH v2] arm64/debug: Fix registers on sleeping tasks @ 2018-03-05 23:43 ` Douglas Anderson 0 siblings, 0 replies; 8+ messages in thread From: Douglas Anderson @ 2018-03-05 23:43 UTC (permalink / raw) To: Catalin Marinas, Will Deacon, Mark Rutland Cc: briannorris, evgreen, swboyd, Douglas Anderson, linux-kernel, linux-arm-kernel This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix registers on sleeping tasks") but for arm64. Nuff said. ...well, perhaps I could also add that task_pt_regs are userspace registers and that's not what kgdb is supposed to be reporting. We're supposed to be reporting kernel registers. Signed-off-by: Douglas Anderson <dianders@chromium.org> --- Changes in v2: - Init cpu_context in one line - Explain that task_pt_regs are userspace arch/arm64/kernel/kgdb.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/arch/arm64/kernel/kgdb.c b/arch/arm64/kernel/kgdb.c index 2122cd187f19..a20de58061a8 100644 --- a/arch/arm64/kernel/kgdb.c +++ b/arch/arm64/kernel/kgdb.c @@ -138,14 +138,25 @@ int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) void sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task) { - struct pt_regs *thread_regs; + struct cpu_context *cpu_context = &task->thread.cpu_context; /* Initialize to zero */ memset((char *)gdb_regs, 0, NUMREGBYTES); - thread_regs = task_pt_regs(task); - memcpy((void *)gdb_regs, (void *)thread_regs->regs, GP_REG_BYTES); - /* Special case for PSTATE (check comments in asm/kgdb.h for details) */ - dbg_get_reg(33, gdb_regs + GP_REG_BYTES, thread_regs); + + gdb_regs[19] = cpu_context->x19; + gdb_regs[20] = cpu_context->x20; + gdb_regs[21] = cpu_context->x21; + gdb_regs[22] = cpu_context->x22; + gdb_regs[23] = cpu_context->x23; + gdb_regs[24] = cpu_context->x24; + gdb_regs[25] = cpu_context->x25; + gdb_regs[26] = cpu_context->x26; + gdb_regs[27] = cpu_context->x27; + gdb_regs[28] = cpu_context->x28; + gdb_regs[29] = cpu_context->fp; + + gdb_regs[31] = cpu_context->sp; + gdb_regs[32] = cpu_context->pc; } void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc) -- 2.16.2.395.g2e18187dfd-goog ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2] arm64/debug: Fix registers on sleeping tasks 2018-03-05 23:43 ` Douglas Anderson @ 2018-03-08 16:19 ` Daniel Thompson -1 siblings, 0 replies; 8+ messages in thread From: Daniel Thompson @ 2018-03-08 16:19 UTC (permalink / raw) To: linux-arm-kernel On 05/03/18 23:43, Douglas Anderson wrote: > This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix > registers on sleeping tasks") but for arm64. Nuff said. > > ...well, perhaps I could also add that task_pt_regs are userspace > registers and that's not what kgdb is supposed to be reporting. We're > supposed to be reporting kernel registers. > > Signed-off-by: Douglas Anderson <dianders@chromium.org> I hacked together a (still very immature) kgdb test suite[1] around the turn of the year. Whilst its not quite solid enough for me to recommend others deploy it except out of curiosity... so I haven't yet started yelling about test suite failures except in the privacy of my own head. However I can confirm that this patch fixes one of the test suite failures I haven't had time to blame allocate yet! So... Tested-by: Daniel Thompson <daniel.thompson@linaro.org> BTW is this something that should Cc: stable? Daniel. [1] https://github.com/daniel-thompson/kgdbtest > --- > > Changes in v2: > - Init cpu_context in one line > - Explain that task_pt_regs are userspace > > arch/arm64/kernel/kgdb.c | 21 ++++++++++++++++----- > 1 file changed, 16 insertions(+), 5 deletions(-) > > diff --git a/arch/arm64/kernel/kgdb.c b/arch/arm64/kernel/kgdb.c > index 2122cd187f19..a20de58061a8 100644 > --- a/arch/arm64/kernel/kgdb.c > +++ b/arch/arm64/kernel/kgdb.c > @@ -138,14 +138,25 @@ int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) > void > sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task) > { > - struct pt_regs *thread_regs; > + struct cpu_context *cpu_context = &task->thread.cpu_context; > > /* Initialize to zero */ > memset((char *)gdb_regs, 0, NUMREGBYTES); > - thread_regs = task_pt_regs(task); > - memcpy((void *)gdb_regs, (void *)thread_regs->regs, GP_REG_BYTES); > - /* Special case for PSTATE (check comments in asm/kgdb.h for details) */ > - dbg_get_reg(33, gdb_regs + GP_REG_BYTES, thread_regs); > + > + gdb_regs[19] = cpu_context->x19; > + gdb_regs[20] = cpu_context->x20; > + gdb_regs[21] = cpu_context->x21; > + gdb_regs[22] = cpu_context->x22; > + gdb_regs[23] = cpu_context->x23; > + gdb_regs[24] = cpu_context->x24; > + gdb_regs[25] = cpu_context->x25; > + gdb_regs[26] = cpu_context->x26; > + gdb_regs[27] = cpu_context->x27; > + gdb_regs[28] = cpu_context->x28; > + gdb_regs[29] = cpu_context->fp; > + > + gdb_regs[31] = cpu_context->sp; > + gdb_regs[32] = cpu_context->pc; > } > > void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc) > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] arm64/debug: Fix registers on sleeping tasks @ 2018-03-08 16:19 ` Daniel Thompson 0 siblings, 0 replies; 8+ messages in thread From: Daniel Thompson @ 2018-03-08 16:19 UTC (permalink / raw) To: Douglas Anderson, Catalin Marinas, Will Deacon, Mark Rutland Cc: briannorris, evgreen, swboyd, linux-kernel, linux-arm-kernel On 05/03/18 23:43, Douglas Anderson wrote: > This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix > registers on sleeping tasks") but for arm64. Nuff said. > > ...well, perhaps I could also add that task_pt_regs are userspace > registers and that's not what kgdb is supposed to be reporting. We're > supposed to be reporting kernel registers. > > Signed-off-by: Douglas Anderson <dianders@chromium.org> I hacked together a (still very immature) kgdb test suite[1] around the turn of the year. Whilst its not quite solid enough for me to recommend others deploy it except out of curiosity... so I haven't yet started yelling about test suite failures except in the privacy of my own head. However I can confirm that this patch fixes one of the test suite failures I haven't had time to blame allocate yet! So... Tested-by: Daniel Thompson <daniel.thompson@linaro.org> BTW is this something that should Cc: stable? Daniel. [1] https://github.com/daniel-thompson/kgdbtest > --- > > Changes in v2: > - Init cpu_context in one line > - Explain that task_pt_regs are userspace > > arch/arm64/kernel/kgdb.c | 21 ++++++++++++++++----- > 1 file changed, 16 insertions(+), 5 deletions(-) > > diff --git a/arch/arm64/kernel/kgdb.c b/arch/arm64/kernel/kgdb.c > index 2122cd187f19..a20de58061a8 100644 > --- a/arch/arm64/kernel/kgdb.c > +++ b/arch/arm64/kernel/kgdb.c > @@ -138,14 +138,25 @@ int dbg_set_reg(int regno, void *mem, struct pt_regs *regs) > void > sleeping_thread_to_gdb_regs(unsigned long *gdb_regs, struct task_struct *task) > { > - struct pt_regs *thread_regs; > + struct cpu_context *cpu_context = &task->thread.cpu_context; > > /* Initialize to zero */ > memset((char *)gdb_regs, 0, NUMREGBYTES); > - thread_regs = task_pt_regs(task); > - memcpy((void *)gdb_regs, (void *)thread_regs->regs, GP_REG_BYTES); > - /* Special case for PSTATE (check comments in asm/kgdb.h for details) */ > - dbg_get_reg(33, gdb_regs + GP_REG_BYTES, thread_regs); > + > + gdb_regs[19] = cpu_context->x19; > + gdb_regs[20] = cpu_context->x20; > + gdb_regs[21] = cpu_context->x21; > + gdb_regs[22] = cpu_context->x22; > + gdb_regs[23] = cpu_context->x23; > + gdb_regs[24] = cpu_context->x24; > + gdb_regs[25] = cpu_context->x25; > + gdb_regs[26] = cpu_context->x26; > + gdb_regs[27] = cpu_context->x27; > + gdb_regs[28] = cpu_context->x28; > + gdb_regs[29] = cpu_context->fp; > + > + gdb_regs[31] = cpu_context->sp; > + gdb_regs[32] = cpu_context->pc; > } > > void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc) > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v2] arm64/debug: Fix registers on sleeping tasks 2018-03-08 16:19 ` Daniel Thompson @ 2018-03-08 16:41 ` Doug Anderson -1 siblings, 0 replies; 8+ messages in thread From: Doug Anderson @ 2018-03-08 16:41 UTC (permalink / raw) To: linux-arm-kernel Hi, On Thu, Mar 8, 2018 at 8:19 AM, Daniel Thompson <daniel.thompson@linaro.org> wrote: > On 05/03/18 23:43, Douglas Anderson wrote: >> >> This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix >> registers on sleeping tasks") but for arm64. Nuff said. >> >> ...well, perhaps I could also add that task_pt_regs are userspace >> registers and that's not what kgdb is supposed to be reporting. We're >> supposed to be reporting kernel registers. >> >> Signed-off-by: Douglas Anderson <dianders@chromium.org> > > > I hacked together a (still very immature) kgdb test suite[1] around the turn > of the year. Whilst its not quite solid enough for me to recommend others > deploy it except out of curiosity... so I haven't yet started yelling about > test suite failures except in the privacy of my own head. > > However I can confirm that this patch fixes one of the test suite failures I > haven't had time to blame allocate yet! > > So... > Tested-by: Daniel Thompson <daniel.thompson@linaro.org> Thanks for your testing! ...I'll have to check out your test suite soon. > BTW is this something that should Cc: stable? It wouldn't hurt if this made it back to stable on a best-effort approach. The problem has been there since the beginning, so it's not like it's fixing a regression that cropped up in a specific version. ...but it does fix a bug, so probably Cc stable makes sense. I guess I'd leave it up to the maintainer that applies the patch? -Doug<div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 8, 2018 at 8:19 AM, Daniel Thompson <span dir="ltr"><<a href="mailto:daniel.thompson@linaro.org" target="_blank">daniel.thompson at linaro.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 05/03/18 23:43, Douglas Anderson wrote:<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix<br> registers on sleeping tasks") but for arm64. Nuff said.<br> <br> ...well, perhaps I could also add that task_pt_regs are userspace<br> registers and that's not what kgdb is supposed to be reporting. We're<br> supposed to be reporting kernel registers.<br> <br> Signed-off-by: Douglas Anderson <<a href="mailto:dianders@chromium.org" target="_blank">dianders at chromium.org</a>><br> </blockquote> <br></span> I hacked together a (still very immature) kgdb test suite[1] around the turn of the year. Whilst its not quite solid enough for me to recommend others deploy it except out of curiosity... so I haven't yet started yelling about test suite failures except in the privacy of my own head.<br> <br> However I can confirm that this patch fixes one of the test suite failures I haven't had time to blame allocate yet!<br> <br> So...<br> Tested-by: Daniel Thompson <<a href="mailto:daniel.thompson@linaro.org" target="_blank">daniel.thompson at linaro.org</a>><br> <br> BTW is this something that should Cc: stable?<br> <br> <br> Daniel.<br> <br> [1] <a href="https://github.com/daniel-thompson/kgdbtest" rel="noreferrer" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en&q=https://github.com/daniel-thompson/kgdbtest&source=gmail&ust=1520613443900000&usg=AFQjCNHzh_tGdP65DdFEQo-ofF_LCI5XBQ">https://github.com/daniel-thom<wbr>pson/kgdbtest</a><div class="HOEnZb"><div class="h5"><br> <br> <br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> ---<br> <br> Changes in v2:<br> - Init cpu_context in one line<br> - Explain that task_pt_regs are userspace<br> <br> arch/arm64/kernel/kgdb.c | 21 ++++++++++++++++-----<br> 1 file changed, 16 insertions(+), 5 deletions(-)<br> <br> diff --git a/arch/arm64/kernel/kgdb.c b/arch/arm64/kernel/kgdb.c<br> index 2122cd187f19..a20de58061a8 100644<br> --- a/arch/arm64/kernel/kgdb.c<br> +++ b/arch/arm64/kernel/kgdb.c<br> @@ -138,14 +138,25 @@ int dbg_set_reg(int regno, void *mem, struct pt_regs *regs)<br> void<br> sleeping_thread_to_gdb_regs(un<wbr>signed long *gdb_regs, struct task_struct *task)<br> {<br> - struct pt_regs *thread_regs;<br> + struct cpu_context *cpu_context = &task->thread.cpu_context;<br> /* Initialize to zero */<br> memset((char *)gdb_regs, 0, NUMREGBYTES);<br> - thread_regs = task_pt_regs(task);<br> - memcpy((void *)gdb_regs, (void *)thread_regs->regs, GP_REG_BYTES);<br> - /* Special case for PSTATE (check comments in asm/kgdb.h for details) */<br> - dbg_get_reg(33, gdb_regs + GP_REG_BYTES, thread_regs);<br> +<br> + gdb_regs[19] = cpu_context->x19;<br> + gdb_regs[20] = cpu_context->x20;<br> + gdb_regs[21] = cpu_context->x21;<br> + gdb_regs[22] = cpu_context->x22;<br> + gdb_regs[23] = cpu_context->x23;<br> + gdb_regs[24] = cpu_context->x24;<br> + gdb_regs[25] = cpu_context->x25;<br> + gdb_regs[26] = cpu_context->x26;<br> + gdb_regs[27] = cpu_context->x27;<br> + gdb_regs[28] = cpu_context->x28;<br> + gdb_regs[29] = cpu_context->fp;<br> +<br> + gdb_regs[31] = cpu_context->sp;<br> + gdb_regs[32] = cpu_context->pc;<br> }<br> void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)<br> <br> </blockquote> <br> </div></div></blockquote></div><br></div> ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v2] arm64/debug: Fix registers on sleeping tasks @ 2018-03-08 16:41 ` Doug Anderson 0 siblings, 0 replies; 8+ messages in thread From: Doug Anderson @ 2018-03-08 16:41 UTC (permalink / raw) To: Daniel Thompson Cc: Catalin Marinas, Will Deacon, Mark Rutland, Brian Norris, evgreen, swboyd, LKML, Linux ARM Hi, On Thu, Mar 8, 2018 at 8:19 AM, Daniel Thompson <daniel.thompson@linaro.org> wrote: > On 05/03/18 23:43, Douglas Anderson wrote: >> >> This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix >> registers on sleeping tasks") but for arm64. Nuff said. >> >> ...well, perhaps I could also add that task_pt_regs are userspace >> registers and that's not what kgdb is supposed to be reporting. We're >> supposed to be reporting kernel registers. >> >> Signed-off-by: Douglas Anderson <dianders@chromium.org> > > > I hacked together a (still very immature) kgdb test suite[1] around the turn > of the year. Whilst its not quite solid enough for me to recommend others > deploy it except out of curiosity... so I haven't yet started yelling about > test suite failures except in the privacy of my own head. > > However I can confirm that this patch fixes one of the test suite failures I > haven't had time to blame allocate yet! > > So... > Tested-by: Daniel Thompson <daniel.thompson@linaro.org> Thanks for your testing! ...I'll have to check out your test suite soon. > BTW is this something that should Cc: stable? It wouldn't hurt if this made it back to stable on a best-effort approach. The problem has been there since the beginning, so it's not like it's fixing a regression that cropped up in a specific version. ...but it does fix a bug, so probably Cc stable makes sense. I guess I'd leave it up to the maintainer that applies the patch? -Doug<div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 8, 2018 at 8:19 AM, Daniel Thompson <span dir="ltr"><<a href="mailto:daniel.thompson@linaro.org" target="_blank">daniel.thompson@linaro.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 05/03/18 23:43, Douglas Anderson wrote:<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix<br> registers on sleeping tasks") but for arm64. Nuff said.<br> <br> ...well, perhaps I could also add that task_pt_regs are userspace<br> registers and that's not what kgdb is supposed to be reporting. We're<br> supposed to be reporting kernel registers.<br> <br> Signed-off-by: Douglas Anderson <<a href="mailto:dianders@chromium.org" target="_blank">dianders@chromium.org</a>><br> </blockquote> <br></span> I hacked together a (still very immature) kgdb test suite[1] around the turn of the year. Whilst its not quite solid enough for me to recommend others deploy it except out of curiosity... so I haven't yet started yelling about test suite failures except in the privacy of my own head.<br> <br> However I can confirm that this patch fixes one of the test suite failures I haven't had time to blame allocate yet!<br> <br> So...<br> Tested-by: Daniel Thompson <<a href="mailto:daniel.thompson@linaro.org" target="_blank">daniel.thompson@linaro.org</a>><br> <br> BTW is this something that should Cc: stable?<br> <br> <br> Daniel.<br> <br> [1] <a href="https://github.com/daniel-thompson/kgdbtest" rel="noreferrer" target="_blank" data-saferedirecturl="https://www.google.com/url?hl=en&q=https://github.com/daniel-thompson/kgdbtest&source=gmail&ust=1520613443900000&usg=AFQjCNHzh_tGdP65DdFEQo-ofF_LCI5XBQ">https://github.com/daniel-thom<wbr>pson/kgdbtest</a><div class="HOEnZb"><div class="h5"><br> <br> <br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> ---<br> <br> Changes in v2:<br> - Init cpu_context in one line<br> - Explain that task_pt_regs are userspace<br> <br> arch/arm64/kernel/kgdb.c | 21 ++++++++++++++++-----<br> 1 file changed, 16 insertions(+), 5 deletions(-)<br> <br> diff --git a/arch/arm64/kernel/kgdb.c b/arch/arm64/kernel/kgdb.c<br> index 2122cd187f19..a20de58061a8 100644<br> --- a/arch/arm64/kernel/kgdb.c<br> +++ b/arch/arm64/kernel/kgdb.c<br> @@ -138,14 +138,25 @@ int dbg_set_reg(int regno, void *mem, struct pt_regs *regs)<br> void<br> sleeping_thread_to_gdb_regs(un<wbr>signed long *gdb_regs, struct task_struct *task)<br> {<br> - struct pt_regs *thread_regs;<br> + struct cpu_context *cpu_context = &task->thread.cpu_context;<br> /* Initialize to zero */<br> memset((char *)gdb_regs, 0, NUMREGBYTES);<br> - thread_regs = task_pt_regs(task);<br> - memcpy((void *)gdb_regs, (void *)thread_regs->regs, GP_REG_BYTES);<br> - /* Special case for PSTATE (check comments in asm/kgdb.h for details) */<br> - dbg_get_reg(33, gdb_regs + GP_REG_BYTES, thread_regs);<br> +<br> + gdb_regs[19] = cpu_context->x19;<br> + gdb_regs[20] = cpu_context->x20;<br> + gdb_regs[21] = cpu_context->x21;<br> + gdb_regs[22] = cpu_context->x22;<br> + gdb_regs[23] = cpu_context->x23;<br> + gdb_regs[24] = cpu_context->x24;<br> + gdb_regs[25] = cpu_context->x25;<br> + gdb_regs[26] = cpu_context->x26;<br> + gdb_regs[27] = cpu_context->x27;<br> + gdb_regs[28] = cpu_context->x28;<br> + gdb_regs[29] = cpu_context->fp;<br> +<br> + gdb_regs[31] = cpu_context->sp;<br> + gdb_regs[32] = cpu_context->pc;<br> }<br> void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc)<br> <br> </blockquote> <br> </div></div></blockquote></div><br></div> ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v2] arm64/debug: Fix registers on sleeping tasks 2018-03-08 16:41 ` Doug Anderson @ 2018-03-08 16:43 ` Will Deacon -1 siblings, 0 replies; 8+ messages in thread From: Will Deacon @ 2018-03-08 16:43 UTC (permalink / raw) To: linux-arm-kernel On Thu, Mar 08, 2018 at 08:41:59AM -0800, Doug Anderson wrote: > Hi, > > On Thu, Mar 8, 2018 at 8:19 AM, Daniel Thompson > <daniel.thompson@linaro.org> wrote: > > On 05/03/18 23:43, Douglas Anderson wrote: > >> > >> This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix > >> registers on sleeping tasks") but for arm64. Nuff said. > >> > >> ...well, perhaps I could also add that task_pt_regs are userspace > >> registers and that's not what kgdb is supposed to be reporting. We're > >> supposed to be reporting kernel registers. > >> > >> Signed-off-by: Douglas Anderson <dianders@chromium.org> > > > > > > I hacked together a (still very immature) kgdb test suite[1] around the turn > > of the year. Whilst its not quite solid enough for me to recommend others > > deploy it except out of curiosity... so I haven't yet started yelling about > > test suite failures except in the privacy of my own head. > > > > However I can confirm that this patch fixes one of the test suite failures I > > haven't had time to blame allocate yet! > > > > So... > > Tested-by: Daniel Thompson <daniel.thompson@linaro.org> > > Thanks for your testing! ...I'll have to check out your test suite soon. > > > > BTW is this something that should Cc: stable? > > It wouldn't hurt if this made it back to stable on a best-effort > approach. The problem has been there since the beginning, so it's not > like it's fixing a regression that cropped up in a specific version. > ...but it does fix a bug, so probably Cc stable makes sense. I guess > I'd leave it up to the maintainer that applies the patch? I've already put this into -next, so I don't really want to rebase just for this. If you think it's important, please send to stable at vger.kernel.org once it's landed in mainline. Will ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH v2] arm64/debug: Fix registers on sleeping tasks @ 2018-03-08 16:43 ` Will Deacon 0 siblings, 0 replies; 8+ messages in thread From: Will Deacon @ 2018-03-08 16:43 UTC (permalink / raw) To: Doug Anderson Cc: Daniel Thompson, Catalin Marinas, Mark Rutland, Brian Norris, evgreen, swboyd, LKML, Linux ARM On Thu, Mar 08, 2018 at 08:41:59AM -0800, Doug Anderson wrote: > Hi, > > On Thu, Mar 8, 2018 at 8:19 AM, Daniel Thompson > <daniel.thompson@linaro.org> wrote: > > On 05/03/18 23:43, Douglas Anderson wrote: > >> > >> This is the equivalent of commit 001bf455d206 ("ARM: 8428/1: kgdb: Fix > >> registers on sleeping tasks") but for arm64. Nuff said. > >> > >> ...well, perhaps I could also add that task_pt_regs are userspace > >> registers and that's not what kgdb is supposed to be reporting. We're > >> supposed to be reporting kernel registers. > >> > >> Signed-off-by: Douglas Anderson <dianders@chromium.org> > > > > > > I hacked together a (still very immature) kgdb test suite[1] around the turn > > of the year. Whilst its not quite solid enough for me to recommend others > > deploy it except out of curiosity... so I haven't yet started yelling about > > test suite failures except in the privacy of my own head. > > > > However I can confirm that this patch fixes one of the test suite failures I > > haven't had time to blame allocate yet! > > > > So... > > Tested-by: Daniel Thompson <daniel.thompson@linaro.org> > > Thanks for your testing! ...I'll have to check out your test suite soon. > > > > BTW is this something that should Cc: stable? > > It wouldn't hurt if this made it back to stable on a best-effort > approach. The problem has been there since the beginning, so it's not > like it's fixing a regression that cropped up in a specific version. > ...but it does fix a bug, so probably Cc stable makes sense. I guess > I'd leave it up to the maintainer that applies the patch? I've already put this into -next, so I don't really want to rebase just for this. If you think it's important, please send to stable@vger.kernel.org once it's landed in mainline. Will ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2018-03-08 16:43 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-03-05 23:43 [PATCH v2] arm64/debug: Fix registers on sleeping tasks Douglas Anderson 2018-03-05 23:43 ` Douglas Anderson 2018-03-08 16:19 ` Daniel Thompson 2018-03-08 16:19 ` Daniel Thompson 2018-03-08 16:41 ` Doug Anderson 2018-03-08 16:41 ` Doug Anderson 2018-03-08 16:43 ` Will Deacon 2018-03-08 16:43 ` Will Deacon
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.