From: Alan Hayward via Gdb-patches <gdb-patches@sourceware.org>
To: Luis Machado <luis.machado@linaro.org>
Cc: "david.spickett@linaro.org" <david.spickett@linaro.org>,
nd <nd@arm.com>,
"gdb-patches\\@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: [PATCH v3 00/24] Memory Tagging Support + AArch64 Linux implementation
Date: Mon, 7 Dec 2020 14:17:26 +0000 [thread overview]
Message-ID: <A5355A8C-0D5C-4F0B-8001-BD488C444BB2@arm.com> (raw)
In-Reply-To: <d07d09bc-106d-6037-c5c9-514c66f5a173@linaro.org>
As mentioned previously, I’m happy with this series.
Approved for the AArch64 parts and the other parts look good to me.
It would be nice to get approval for this as it’ll be really crucial to have
available for when the hardware starts rolling out. I suspect memory tagging
is going cause to lots of bugs in the early days of it being used.
Alan.
> On 7 Dec 2020, at 13:17, Luis Machado <luis.machado@linaro.org> wrote:
>
> Ping v4.
>
> On 11/30/20 10:38 AM, Luis Machado wrote:
>> Ping v3. Is there any other feedback on this series or should I take it that the current version looks good (with the suggested fixes)?
>> Thanks,
>> Luis
>> On 11/23/20 1:08 PM, Luis Machado wrote:
>>> Ping v2?
>>>
>>> On 11/16/20 10:48 AM, Luis Machado wrote:
>>>> Ping?
>>>>
>>>> FTR, I'm aiming at having this ready for GDB 11.
>>>>
>>>> On 11/9/20 2:04 PM, Luis Machado wrote:
>>>>> Here's v3 of this patch series.
>>>>>
>>>>> Memory tagging improves memory safety by tagging various parts of memory and
>>>>> raising exceptions when the allocation tag (the one associated with a range of
>>>>> memory addresses) does not match the logical tag contained in a pointer that is
>>>>> used to access the memory area.
>>>>>
>>>>> We already have an implementation of such a mechanism for sparc64 (ADI), but
>>>>> it is target-specific and not exposed to the rest of GDB. This series aims to
>>>>> make the infrastructure available to other targets that may wish to support
>>>>> their specific memory tagging approaches. For AArch64 Linux this is called
>>>>> MTE (Memory Tagging Extensions).
>>>>>
>>>>> The series is split into a set that deals with generic changes to GDB's
>>>>> infrastructure (target methods, gdbarch hooks and remote packets), a set that
>>>>> implements support for AArch64 Linux and one last set that implements new
>>>>> commands, updates the documentation and adds tests.
>>>>>
>>>>> The goal is to make it so the architecture independent parts of GDB don't
>>>>> need to interpret tag formats, given the formats are likely different
>>>>> for each architecture. For this reason, GDB will handle tags as a sequence of
>>>>> bytes and will not assume a particular format.
>>>>>
>>>>> The architecture-specific code can handle the sequence of bytes appropriately.
>>>>>
>>>>> Luis Machado (24):
>>>>> New target methods for memory tagging support
>>>>> New gdbarch memory tagging hooks
>>>>> Add GDB-side remote target support for memory tagging
>>>>> Unit testing for GDB-side remote memory tagging handling
>>>>> GDBserver remote packet support for memory tagging
>>>>> Unit tests for gdbserver memory tagging remote packets
>>>>> Documentation for memory tagging remote packets
>>>>> AArch64: Add MTE CPU feature check support
>>>>> AArch64: Add target description/feature for MTE registers
>>>>> AArch64: Add MTE register set support for GDB and gdbserver
>>>>> AArch64: Add MTE ptrace requests
>>>>> AArch64: Implement memory tagging target methods for AArch64
>>>>> Refactor parsing of /proc/<pid>/smaps
>>>>> AArch64: Implement the memory tagging gdbarch hooks
>>>>> AArch64: Add unit testing for logical tag set/get operations
>>>>> AArch64: Report tag violation error information
>>>>> AArch64: Add gdbserver MTE support
>>>>> AArch64: Add MTE register set support for core files
>>>>> New mtag commands
>>>>> Documentation for the new mtag commands
>>>>> Extend "x" and "print" commands to support memory tagging
>>>>> Document new "x" and "print" memory tagging extensions
>>>>> Add NEWS entry.
>>>>> Add memory tagging testcases
>>>>>
>>>>> gdb/Makefile.in | 3 +
>>>>> gdb/NEWS | 32 ++
>>>>> gdb/aarch64-linux-nat.c | 129 ++++++-
>>>>> gdb/aarch64-linux-tdep.c | 334 +++++++++++++++++-
>>>>> gdb/aarch64-linux-tdep.h | 3 +
>>>>> gdb/aarch64-tdep.c | 40 ++-
>>>>> gdb/aarch64-tdep.h | 12 +-
>>>>> gdb/arch-utils.c | 50 +++
>>>>> gdb/arch-utils.h | 23 ++
>>>>> gdb/arch/aarch64-mte-linux.c | 70 ++++
>>>>> gdb/arch/aarch64-mte-linux.h | 66 ++++
>>>>> gdb/arch/aarch64.c | 7 +-
>>>>> gdb/arch/aarch64.h | 7 +-
>>>>> gdb/configure.nat | 3 +-
>>>>> gdb/configure.tgt | 1 +
>>>>> gdb/doc/gdb.texinfo | 215 +++++++++++-
>>>>> gdb/features/Makefile | 1 +
>>>>> gdb/features/aarch64-mte.c | 14 +
>>>>> gdb/features/aarch64-mte.xml | 11 +
>>>>> gdb/gdbarch.c | 137 ++++++++
>>>>> gdb/gdbarch.h | 53 +++
>>>>> gdb/gdbarch.sh | 36 ++
>>>>> gdb/linux-tdep.c | 358 ++++++++++++-------
>>>>> gdb/linux-tdep.h | 4 +
>>>>> gdb/nat/aarch64-mte-linux-ptrace.c | 200 +++++++++++
>>>>> gdb/nat/aarch64-mte-linux-ptrace.h | 50 +++
>>>>> gdb/printcmd.c | 468 ++++++++++++++++++++++++-
>>>>> gdb/remote.c | 232 ++++++++++++
>>>>> gdb/target-delegates.c | 84 +++++
>>>>> gdb/target.h | 37 ++
>>>>> gdb/testsuite/gdb.arch/aarch64-mte.c | 107 ++++++
>>>>> gdb/testsuite/gdb.arch/aarch64-mte.exp | 371 ++++++++++++++++++++
>>>>> gdb/testsuite/gdb.base/memtag.c | 22 ++
>>>>> gdb/testsuite/gdb.base/memtag.exp | 64 ++++
>>>>> gdb/testsuite/lib/gdb.exp | 16 +
>>>>> gdb/valprint.h | 1 +
>>>>> gdbserver/Makefile.in | 1 +
>>>>> gdbserver/configure.srv | 2 +
>>>>> gdbserver/linux-aarch64-ipa.cc | 8 +-
>>>>> gdbserver/linux-aarch64-low.cc | 97 ++++-
>>>>> gdbserver/linux-aarch64-tdesc.cc | 10 +-
>>>>> gdbserver/linux-aarch64-tdesc.h | 3 +-
>>>>> gdbserver/remote-utils.cc | 43 ++-
>>>>> gdbserver/remote-utils.h | 7 +-
>>>>> gdbserver/server.cc | 245 +++++++++++++
>>>>> gdbserver/server.h | 3 +
>>>>> gdbserver/target.cc | 20 ++
>>>>> gdbserver/target.h | 17 +
>>>>> gdbsupport/rsp-low.cc | 2 +-
>>>>> include/elf/common.h | 3 +
>>>>> 50 files changed, 3536 insertions(+), 186 deletions(-)
>>>>> create mode 100644 gdb/arch/aarch64-mte-linux.c
>>>>> create mode 100644 gdb/arch/aarch64-mte-linux.h
>>>>> create mode 100644 gdb/features/aarch64-mte.c
>>>>> create mode 100644 gdb/features/aarch64-mte.xml
>>>>> create mode 100644 gdb/nat/aarch64-mte-linux-ptrace.c
>>>>> create mode 100644 gdb/nat/aarch64-mte-linux-ptrace.h
>>>>> create mode 100644 gdb/testsuite/gdb.arch/aarch64-mte.c
>>>>> create mode 100644 gdb/testsuite/gdb.arch/aarch64-mte.exp
>>>>> create mode 100644 gdb/testsuite/gdb.base/memtag.c
>>>>> create mode 100644 gdb/testsuite/gdb.base/memtag.exp
>>>>>
prev parent reply other threads:[~2020-12-07 14:17 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-09 17:04 Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 01/24] New target methods for memory tagging support Luis Machado via Gdb-patches
2020-12-25 4:26 ` Simon Marchi via Gdb-patches
2020-12-28 15:05 ` Luis Machado via Gdb-patches
2020-12-25 5:08 ` Simon Marchi via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 02/24] New gdbarch memory tagging hooks Luis Machado via Gdb-patches
2020-12-25 4:40 ` Simon Marchi via Gdb-patches
2020-12-28 15:44 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 03/24] Add GDB-side remote target support for memory tagging Luis Machado via Gdb-patches
2020-12-25 5:08 ` Simon Marchi via Gdb-patches
2020-12-28 16:28 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 04/24] Unit testing for GDB-side remote memory tagging handling Luis Machado via Gdb-patches
2020-12-25 5:34 ` Simon Marchi via Gdb-patches
2020-12-28 17:17 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 05/24] GDBserver remote packet support for memory tagging Luis Machado via Gdb-patches
2020-12-25 5:50 ` Simon Marchi via Gdb-patches
2020-12-28 17:46 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 06/24] Unit tests for gdbserver memory tagging remote packets Luis Machado via Gdb-patches
2020-12-25 20:13 ` Simon Marchi via Gdb-patches
2020-12-28 18:12 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 07/24] Documentation for " Luis Machado via Gdb-patches
2020-11-09 17:08 ` Eli Zaretskii via Gdb-patches
2020-11-16 15:44 ` David Spickett via Gdb-patches
2020-11-16 16:04 ` David Spickett via Gdb-patches
2020-11-16 17:22 ` Luis Machado via Gdb-patches
2020-11-17 10:05 ` David Spickett via Gdb-patches
2020-11-17 12:01 ` Luis Machado via Gdb-patches
2020-11-17 12:29 ` David Spickett via Gdb-patches
2020-11-17 14:44 ` Luis Machado via Gdb-patches
2020-11-17 15:16 ` David Spickett via Gdb-patches
2020-11-17 17:29 ` Luis Machado via Gdb-patches
2020-11-18 10:39 ` David Spickett via Gdb-patches
2020-11-18 10:56 ` Luis Machado via Gdb-patches
2020-11-18 11:22 ` David Spickett via Gdb-patches
2020-11-16 16:49 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 08/24] AArch64: Add MTE CPU feature check support Luis Machado via Gdb-patches
2020-12-26 0:04 ` Simon Marchi via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 09/24] AArch64: Add target description/feature for MTE registers Luis Machado via Gdb-patches
2020-12-26 0:10 ` Simon Marchi via Gdb-patches
2020-12-28 18:28 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 10/24] AArch64: Add MTE register set support for GDB and gdbserver Luis Machado via Gdb-patches
2020-12-26 0:17 ` Simon Marchi via Gdb-patches
2020-12-28 18:41 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 11/24] AArch64: Add MTE ptrace requests Luis Machado via Gdb-patches
2020-12-26 0:19 ` Simon Marchi via Gdb-patches
2020-12-28 19:12 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 12/24] AArch64: Implement memory tagging target methods for AArch64 Luis Machado via Gdb-patches
2020-12-26 0:33 ` Simon Marchi via Gdb-patches
2020-12-28 19:50 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 13/24] Refactor parsing of /proc/<pid>/smaps Luis Machado via Gdb-patches
2020-12-26 6:36 ` Simon Marchi via Gdb-patches
2020-12-29 10:57 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 14/24] AArch64: Implement the memory tagging gdbarch hooks Luis Machado via Gdb-patches
2020-12-26 6:52 ` Simon Marchi via Gdb-patches
2020-12-29 12:16 ` Luis Machado via Gdb-patches
2021-01-18 16:29 ` Simon Marchi via Gdb-patches
2021-01-20 20:01 ` Tom Tromey
2020-11-09 17:04 ` [PATCH v3 15/24] AArch64: Add unit testing for logical tag set/get operations Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 16/24] AArch64: Report tag violation error information Luis Machado via Gdb-patches
2020-11-16 15:43 ` David Spickett via Gdb-patches
2020-11-16 16:45 ` Luis Machado via Gdb-patches
2020-11-17 9:36 ` David Spickett via Gdb-patches
2020-12-26 22:23 ` Simon Marchi via Gdb-patches
2020-12-30 0:50 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 17/24] AArch64: Add gdbserver MTE support Luis Machado via Gdb-patches
2020-12-26 22:30 ` Simon Marchi via Gdb-patches
2020-12-29 14:32 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 18/24] AArch64: Add MTE register set support for core files Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 19/24] New mtag commands Luis Machado via Gdb-patches
2020-12-27 3:32 ` Simon Marchi via Gdb-patches
2020-12-29 17:21 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 20/24] Documentation for the new " Luis Machado via Gdb-patches
2020-11-09 17:11 ` Eli Zaretskii via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 21/24] Extend "x" and "print" commands to support memory tagging Luis Machado via Gdb-patches
2020-11-09 17:14 ` Eli Zaretskii via Gdb-patches
2020-11-09 17:20 ` Luis Machado via Gdb-patches
2020-12-27 4:18 ` Simon Marchi via Gdb-patches
2020-12-29 18:50 ` Luis Machado via Gdb-patches
2021-01-18 17:56 ` Simon Marchi via Gdb-patches
2021-01-18 20:20 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 22/24] Document new "x" and "print" memory tagging extensions Luis Machado via Gdb-patches
2020-11-09 17:16 ` Eli Zaretskii via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 23/24] Add NEWS entry Luis Machado via Gdb-patches
2020-11-09 17:19 ` Eli Zaretskii via Gdb-patches
2020-11-09 17:22 ` Luis Machado via Gdb-patches
2020-11-09 17:04 ` [PATCH v3 24/24] Add memory tagging testcases Luis Machado via Gdb-patches
2020-11-16 15:47 ` David Spickett via Gdb-patches
2020-11-16 16:51 ` Luis Machado via Gdb-patches
2020-12-27 4:36 ` Simon Marchi via Gdb-patches
2020-12-29 19:32 ` Luis Machado via Gdb-patches
2020-11-16 13:48 ` [PATCH v3 00/24] Memory Tagging Support + AArch64 Linux implementation Luis Machado via Gdb-patches
2020-11-16 14:37 ` Alan Hayward via Gdb-patches
2020-11-23 16:08 ` Luis Machado via Gdb-patches
2020-11-30 13:38 ` Luis Machado via Gdb-patches
2020-12-07 13:17 ` Luis Machado via Gdb-patches
2020-12-07 14:17 ` Alan Hayward via Gdb-patches [this message]
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=A5355A8C-0D5C-4F0B-8001-BD488C444BB2@arm.com \
--to=gdb-patches@sourceware.org \
--cc=Alan.Hayward@arm.com \
--cc=david.spickett@linaro.org \
--cc=luis.machado@linaro.org \
--cc=nd@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