Hello Tao and Alexey,
Sorry, I noticed I never replied saying I tested it to this.
I had tested it, and went through all the patches again today. I liked 
your additions and handling those corner cases in x86 :), everything 
looks good to me.
Thanks again. I had less time working on crash for some time, but will 
keep a look at this.
If needed, for the series: Reviewed-by: Aditya Gupta <adityag(a)linux.ibm.com>
Thanks,
Aditya Gupta
On 31/05/24 14:49, Tao Liu wrote:
> This patchset is a rebase/merged version of the following 3 patchsets:
>
> 1): [PATCH v10 0/5] Improve stack unwind on ppc64 [1]
> 2): [PATCH 0/5] x86_64 gdb stack unwinding support [2]
> 3): Clean up on top of one-thread-v2 [3]
>
> A complete description of gdb stack unwinding support for crash can be
> found in [1].
>
> This patchset can be divided into the following 2 parts:
>
> 1) part1: arch independent, mainly modify on the
>     crash_target.c/gdb_interface.c files, in preparation of the
>     gdb side.
> 2) part2: arch specific part, for implementing ppc64/x86_64/arm64/vmware
>     gdb stack unwinding support.
>
> === part 2
>
> - arm64:
> arm64: Add gdb stack unwinding support
>
> - vmware:
> vmware_guestdump: Various format versions support
> x86_64: fix gdb bt for vmware dumps
> set_context(): check if context is already current
>
> - x86_64:
> x86_64: Fix invalid input "=>" for bt command
> Fix cpumask_t recursive dependence issue
> Parse stack by inactive_stack_frame priorily if the struct is valid
> x86_64: Add gdb stack unwinding support
>
> - ppc64:
> ppc64: correct gdb passthroughs by implementing machdep->get_cpu_reg
>
> === part 1
> Stop stack unwinding at non-kernel address
> Fix gdb_interface: restore gdb's output streams at end of gdb_interface
> Print task pid/command instead of CPU index
> Rename get_cpu_reg to get_current_task_reg
> Let crash change gdb context
> Leave only one gdb thread for crash
> Remove 'frame' from prohibited commands list
> ===
>
> v4 -> v3:
> Fixed the author issue in [PATCH v3 06/16] Fix gdb_interface: restore gdb's
> output streams at end of gdb_interface.
>
> v3 -> v2:
> 1) Updated CC list as pointed out in [4]
> 2) Compiling issues as in [5]
>
>
> v2 -> v1:
> 1) Added the patch: x86_64: Fix invalid input "=>" for bt command,
>     thanks for Kazu's testing.
> 2) Modify the patch: x86_64: Add gdb stack unwinding support, added the
>     pcp_save, spp_save and sp, for restoring the value in match of the original
>     code logic.
>
> [1]: 
https://www.mail-archive.com/devel@lists.crash-utility.osci.io/msg00469.html
> [2]: 
https://www.mail-archive.com/devel@lists.crash-utility.osci.io/msg00488.html
> [3]: 
https://www.mail-archive.com/devel@lists.crash-utility.osci.io/msg00554.html
> [4]: 
https://www.mail-archive.com/devel@lists.crash-utility.osci.io/msg00681.html
> [5]: 
https://www.mail-archive.com/devel@lists.crash-utility.osci.io/msg00715.html
>
> Aditya Gupta (2):
>    Remove 'frame' from prohibited commands list
>    ppc64: correct gdb passthroughs by implementing machdep->get_cpu_reg
>
> Alexey Makhalov (3):
>    set_context(): check if context is already current
>    x86_64: fix gdb bt for vmware dumps
>    vmware_guestdump: Various format versions support
>
> Tao Liu (11):
>    Leave only one gdb thread for crash
>    Let crash change gdb context
>    Rename get_cpu_reg to get_current_task_reg
>    Print task pid/command instead of CPU index
>    Fix gdb_interface: restore gdb's output streams at end of
>      gdb_interface
>    Stop stack unwinding at non-kernel address
>    x86_64: Add gdb stack unwinding support
>    Parse stack by inactive_stack_frame priorily if the struct is valid
>    Fix cpumask_t recursive dependence issue
>    x86_64: Fix invalid input "=>" for bt command
>    arm64: Add gdb stack unwinding support
>
>   arm64.c            | 114 +++++++++++++++-
>   crash_target.c     |  47 ++++---
>   defs.h             | 187 ++++++++++++++++++++++++++-
>   gdb-10.2.patch     |  79 ++++++++++++
>   gdb_interface.c    |  33 ++---
>   kernel.c           |  61 +++++++--
>   ppc64.c            | 163 ++++++++++++++++++++++-
>   task.c             |  33 +++--
>   tools.c            |   8 +-
>   vmware_guestdump.c | 316 ++++++++++++++++++++++++++++++++-------------
>   x86_64.c           | 302 ++++++++++++++++++++++++++++++++++++++-----
>   11 files changed, 1151 insertions(+), 192 deletions(-)
>