public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: John Baldwin <jhb@FreeBSD.org>
To: Luis Machado <luis.machado@arm.com>, gdb-patches@sourceware.org
Cc: "Willgerodt, Felix" <felix.willgerodt@intel.com>
Subject: Re: [PATCH 00/17] SME support for AArch64 gdb/gdbserver on Linux.
Date: Tue, 11 Apr 2023 08:50:39 -0700	[thread overview]
Message-ID: <71bf117d-78e3-5ae9-56c7-48824a0f5537@FreeBSD.org> (raw)
In-Reply-To: <20230411042658.1852730-1-luis.machado@arm.com>

On 4/10/23 9:26 PM, Luis Machado via Gdb-patches wrote:
> The following series enables SME 1 (Scalable Matrix Extension) support for
> AArch64 gdb and gdbserver.
> 
> SME expands on SVE by having a variable-sized matrix (ZA) of dimensions
> SVL x SVL bytes.
> 
> The first few patches and some intermediate ones refactor the code and fix
> issues prior to enabling SME support, and thus could go in independently.
> 
> I've kept them in the series as they are closely/logically related.

I briefly glanced at a few bits of the aarch64-specific parts I'm familiar
with and they all look fine to me.

One note is that I think the AMX patches from Intel (which deal with a
similar "tile area" split into variable-sized subregisters IIUC) ran into
some issues with wanting to update the tdesc to deal with the differing
subregisters since the layout of those can change at runtime.  I'm not
sure if that applies to SME in the same way and if any of the issues
Felix ran into might apply to SME as well (and thus if there are common
solutions?)  (I've cc'd Felix FYI)

> Ezra Sitorus (1):
>    [binutils/aarch64] sme: Core file support
> 
> Luis Machado (16):
>    [gdb/aarch64] Fix register fetch/store order for native AArch64 Linux
>    [gdb/aarch64] refactor: Rename SVE-specific files
>    [gdb/gdbserver] refactor: Simplify SVE interface to read/write
>      registers
>    [gdb/aarch64] sve: Fix return command when using V registers in a
>      SVE-enabled target
>    [gdb/aarch64] sme: Enable SME registers and pseudo-registers
>    [gdbserver/aarch64] refactor: Adjust expedited registers dynamically
>    [gdbserver/aarch64] sme: Add support for SME
>    [gdb/aarch64] sve: Fix signal frame z/v register restore
>    [gdb/aarch64] sme: Signal frame support
>    [gdb/aarch64] sme: Fixup sigframe gdbarch when vg/svg changes
>    [gdb/aarch64] sme: Support TPIDR2 signal frame context
>    [gdb/generic] corefile/bug: Use thread-specific gdbarch when dumping
>      register state to core files
>    [gdb/generic] corefile/bug: Fixup (gcore) core file target description
>      reading order
>    [gdb/aarch64] sme: Core file support for Linux
>    [gdb/testsuite] sme: Add SVE/SME testcases
>    [gdb/docs] sme: Document SME registers and features
> 
>   bfd/elf-bfd.h                                 |   4 +
>   bfd/elf.c                                     |  58 +
>   gdb/Makefile.in                               |   6 +-
>   gdb/NEWS                                      |  11 +
>   gdb/aarch64-linux-nat.c                       | 179 ++--
>   gdb/aarch64-linux-tdep.c                      | 951 ++++++++++++++---
>   gdb/aarch64-tdep.c                            | 724 ++++++++++++-
>   gdb/aarch64-tdep.h                            |  47 +
>   gdb/arch/aarch64-scalable-linux.c             |  55 +
>   gdb/arch/aarch64-scalable-linux.h             |  53 +
>   gdb/arch/aarch64.c                            |   5 +
>   gdb/arch/aarch64.h                            |  57 +-
>   gdb/configure.nat                             |   2 +-
>   gdb/configure.tgt                             |   1 +
>   gdb/corelow.c                                 |  24 +-
>   gdb/doc/gdb.texinfo                           |  68 ++
>   gdb/features/aarch64-sme.c                    |  63 ++
>   gdb/linux-tdep.c                              |  18 +-
>   gdb/nat/aarch64-scalable-linux-ptrace.c       | 993 ++++++++++++++++++
>   gdb/nat/aarch64-scalable-linux-ptrace.h       | 156 +++
>   ....h => aarch64-scalable-linux-sigcontext.h} |  73 +-
>   gdb/nat/aarch64-sve-linux-ptrace.c            | 392 -------
>   gdb/nat/aarch64-sve-linux-ptrace.h            |  72 --
>   gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp |  18 +
>   gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp |  18 +
>   gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp |  18 +
>   gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp |  18 +
>   gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp |  18 +
>   gdb/testsuite/gdb.arch/aarch64-sme-core.c     | 361 +++++++
>   .../gdb.arch/aarch64-sme-core.exp.tcl         | 167 +++
>   .../gdb.arch/aarch64-sme-regs-available-0.exp |  18 +
>   .../gdb.arch/aarch64-sme-regs-available-1.exp |  18 +
>   .../gdb.arch/aarch64-sme-regs-available-2.exp |  18 +
>   .../gdb.arch/aarch64-sme-regs-available-3.exp |  18 +
>   .../gdb.arch/aarch64-sme-regs-available-4.exp |  18 +
>   .../gdb.arch/aarch64-sme-regs-available.c     | 184 ++++
>   .../aarch64-sme-regs-available.exp.tcl        | 194 ++++
>   .../gdb.arch/aarch64-sme-regs-sigframe-0.exp  |  18 +
>   .../gdb.arch/aarch64-sme-regs-sigframe-1.exp  |  18 +
>   .../gdb.arch/aarch64-sme-regs-sigframe-2.exp  |  18 +
>   .../gdb.arch/aarch64-sme-regs-sigframe-3.exp  |  18 +
>   .../gdb.arch/aarch64-sme-regs-sigframe-4.exp  |  18 +
>   .../gdb.arch/aarch64-sme-regs-sigframe.c      | 368 +++++++
>   .../aarch64-sme-regs-sigframe.exp.tcl         | 156 +++
>   .../aarch64-sme-regs-unavailable-0.exp        |  18 +
>   .../aarch64-sme-regs-unavailable-1.exp        |  18 +
>   .../aarch64-sme-regs-unavailable-2.exp        |  18 +
>   .../aarch64-sme-regs-unavailable-3.exp        |  18 +
>   .../aarch64-sme-regs-unavailable-4.exp        |  18 +
>   .../gdb.arch/aarch64-sme-regs-unavailable.c   | 154 +++
>   .../aarch64-sme-regs-unavailable.exp.tcl      | 162 +++
>   gdb/testsuite/gdb.arch/aarch64-sme-sanity.c   | 249 +++++
>   gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp |  72 ++
>   gdb/testsuite/lib/aarch64.exp                 | 372 +++++++
>   gdb/testsuite/lib/gdb.exp                     |  63 ++
>   gdb/tramp-frame.c                             |   1 +
>   gdb/tramp-frame.h                             |  12 +
>   gdbserver/Makefile.in                         |   2 +-
>   gdbserver/configure.srv                       |   3 +-
>   gdbserver/linux-aarch64-low.cc                | 100 +-
>   gdbserver/linux-aarch64-tdesc.cc              |  28 +-
>   gdbserver/server.h                            |   2 +-
>   62 files changed, 6328 insertions(+), 694 deletions(-)
>   create mode 100644 gdb/arch/aarch64-scalable-linux.c
>   create mode 100644 gdb/arch/aarch64-scalable-linux.h
>   create mode 100644 gdb/features/aarch64-sme.c
>   create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.c
>   create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.h
>   rename gdb/nat/{aarch64-sve-linux-sigcontext.h => aarch64-scalable-linux-sigcontext.h} (78%)
>   delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.c
>   delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.h
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.c
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.c
>   create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp
>   create mode 100644 gdb/testsuite/lib/aarch64.exp
> 

-- 
John Baldwin


  parent reply	other threads:[~2023-04-11 15:50 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-11  4:26 Luis Machado
2023-04-11  4:26 ` [PATCH 01/17] [gdb/aarch64] Fix register fetch/store order for native AArch64 Linux Luis Machado
2023-04-11  4:26 ` [PATCH 02/17] [gdb/aarch64] refactor: Rename SVE-specific files Luis Machado
2023-04-11  4:26 ` [PATCH 03/17] [gdb/gdbserver] refactor: Simplify SVE interface to read/write registers Luis Machado
2023-04-11  4:26 ` [PATCH 04/17] [gdb/aarch64] sve: Fix return command when using V registers in a SVE-enabled target Luis Machado
2023-04-11  4:26 ` [PATCH 05/17] [gdb/aarch64] sme: Enable SME registers and pseudo-registers Luis Machado
2023-04-11  4:26 ` [PATCH 06/17] [gdbserver/aarch64] refactor: Adjust expedited registers dynamically Luis Machado
2023-04-11  4:26 ` [PATCH 07/17] [gdbserver/aarch64] sme: Add support for SME Luis Machado
2023-04-11  4:26 ` [PATCH 08/17] [gdb/aarch64] sve: Fix signal frame z/v register restore Luis Machado
2023-04-11  4:26 ` [PATCH 09/17] [gdb/aarch64] sme: Signal frame support Luis Machado
2023-04-11  4:26 ` [PATCH 10/17] [gdb/aarch64] sme: Fixup sigframe gdbarch when vg/svg changes Luis Machado
2023-04-11  4:26 ` [PATCH 11/17] [gdb/aarch64] sme: Support TPIDR2 signal frame context Luis Machado
2023-04-11  4:26 ` [PATCH 12/17] [binutils/aarch64] sme: Core file support Luis Machado
2023-04-11  4:26 ` [PATCH 13/17] [gdb/generic] corefile/bug: Use thread-specific gdbarch when dumping register state to core files Luis Machado
2023-04-11  4:26 ` [PATCH 14/17] [gdb/generic] corefile/bug: Fixup (gcore) core file target description reading order Luis Machado
2023-04-11  4:26 ` [PATCH 15/17] [gdb/aarch64] sme: Core file support for Linux Luis Machado
2023-04-11  4:26 ` [PATCH 16/17] [gdb/testsuite] sme: Add SVE/SME testcases Luis Machado
2023-04-11  4:26 ` [PATCH 17/17] [gdb/docs] sme: Document SME registers and features Luis Machado
2023-04-11  7:09   ` Eli Zaretskii
2023-04-11  7:22     ` Luis Machado
2023-04-12 12:04   ` [PATCH,v2 " Luis Machado
2023-04-13  7:57     ` Eli Zaretskii
2023-04-13 12:17       ` Luis Machado
     [not found]         ` <83leiv4xsc.fsf@gnu.org>
2023-04-13 16:34           ` Luis Machado
2023-04-13 17:45             ` Eli Zaretskii
2023-04-17 17:19   ` [PATCH,v3 " Luis Machado
2023-04-22  9:21     ` Eli Zaretskii
2023-04-26 15:00       ` Luis Machado
2023-04-26 16:11         ` Eli Zaretskii
2023-04-27  8:35           ` Luis Machado
2023-04-27  9:10             ` Eli Zaretskii
2023-04-27  9:12               ` Luis Machado
2023-04-11 15:50 ` John Baldwin [this message]
2023-04-12  8:47   ` [PATCH 00/17] SME support for AArch64 gdb/gdbserver on Linux Willgerodt, Felix
2023-04-12  9:12   ` Luis Machado

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=71bf117d-78e3-5ae9-56c7-48824a0f5537@FreeBSD.org \
    --to=jhb@freebsd.org \
    --cc=felix.willgerodt@intel.com \
    --cc=gdb-patches@sourceware.org \
    --cc=luis.machado@arm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).