All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Gustavo Romero <gustavo.romero@linaro.org>
Cc: qemu-devel@nongnu.org,  philmd@linaro.org,
	 peter.maydell@linaro.org, richard.henderson@linaro.org
Subject: Re: [PATCH v2 0/9] Add MTE stubs for aarch64 user mode
Date: Fri, 14 Jun 2024 16:49:53 +0100	[thread overview]
Message-ID: <87ed8zttge.fsf@draig.linaro.org> (raw)
In-Reply-To: <20240613172103.2987519-1-gustavo.romero@linaro.org> (Gustavo Romero's message of "Thu, 13 Jun 2024 17:20:54 +0000")

Gustavo Romero <gustavo.romero@linaro.org> writes:

> This patchset adds the stubs necessary to support GDB memory tagging
> commands on QEMU aarch64 user mode.
>
> These new stubs handle the qIsAddressTagged, qMemTag, and QMemTag
> packets, which allow GDB memory tagging subcommands 'check',
> 'print-allocation-tag', and 'set-allocation-tag' to work. The remaining
> memory tagging commands ('print-logical-tag' and 'with-logical-tag')
> will also work, but they don't rely on any stub because they perform
> local operations.
>
> Since the memory tagging stubs are not common to all architectures, this
> patchset also introduces three functions: gdb_extend_qsupported_features,
> gdb_extend_query_table, and gdb_extend_set_table. These functions can be
> used to extend the target-specific 'qSupported' feature string and the
> handlers for the 'q' (query) and 'Q' (set) packets. These new functions
> are used to add the MTE stubs for the aarch64 gdbstub.
>  
> Note that this patchset requires a GDB that supports the
> qIsAddressTagged packet (recently added to GDB), so the gdbstub MTE
> tests introduced by it must be run using GDB's master branch, since the
> GDB in the distros hasn't picked up the change yet.
>
> Once GDB is built and installed locally, the tests can be exercised, for
> example, this way:
>
> make GDB=~/.local/bin/gdb run-tcg-tests-aarch64-linux-user -j 32

It looks like there might be some BSD build failures as well:

  https://gitlab.com/stsquad/qemu/-/pipelines/1332635371/failures

>
> v2:
>  - Addressed comments from Richard, Phil, and Alex
>  - Made the series more granular by splitting it into more patches
>  - Moved gdbstub command-specific structs and functions into a new header, gdbstub/commands.h
>  - Fixed exception in allocation_tag_mem_probe()
>  - Used MTE helpers ({store,load}_tag1 and allocation_tag_mem_probe) in the MTE stubs
>  - Factored out MTE code to set TCF0, avoiding duplication (both prctl and gdbstub code use it)
>  - Hoisted sscanf() out of loop in handle_Q_memtag stub and use gdb_hextomem instead
>  - Rebased this series on Alex's gdb/next branch
>
>
> Cheers,
> Gustavo
>
> Gustavo Romero (9):
>   gdbstub: Clean up process_string_cmd
>   gdbstub: Move GdbCmdParseEntry into a new header file
>   gdbstub: Add support for target-specific stubs
>   target/arm: Fix exception case in allocation_tag_mem_probe
>   target/arm: Make some MTE helpers widely available
>   target/arm: Factor out code for setting MTE TCF0 field
>   gdbstub: Make get cpu and hex conversion functions non-internal
>   gdbstub: Add support for MTE in user mode
>   tests/tcg/aarch64: Add MTE gdbstub tests
>
>  configs/targets/aarch64-linux-user.mak |   2 +-
>  gdb-xml/aarch64-mte.xml                |  11 ++
>  gdbstub/gdbstub.c                      | 211 +++++++++++----------
>  gdbstub/internals.h                    |  24 ---
>  gdbstub/syscalls.c                     |   7 +-
>  gdbstub/system.c                       |   7 +-
>  gdbstub/user-target.c                  |  25 +--
>  gdbstub/user.c                         |   7 +-
>  include/exec/gdbstub.h                 |   5 +
>  include/gdbstub/commands.h             | 102 ++++++++++
>  linux-user/aarch64/target_prctl.h      |  22 +--
>  target/arm/cpu.c                       |   1 +
>  target/arm/gdbstub.c                   | 253 +++++++++++++++++++++++++
>  target/arm/internals.h                 |   2 +
>  target/arm/mte.h                       |  53 ++++++
>  target/arm/tcg/mte_helper.c            | 181 +-----------------
>  target/arm/tcg/mte_helper.h            | 211 +++++++++++++++++++++
>  tests/tcg/aarch64/Makefile.target      |  11 +-
>  tests/tcg/aarch64/gdbstub/test-mte.py  |  86 +++++++++
>  tests/tcg/aarch64/mte-8.c              | 102 ++++++++++
>  20 files changed, 975 insertions(+), 348 deletions(-)
>  create mode 100644 gdb-xml/aarch64-mte.xml
>  create mode 100644 include/gdbstub/commands.h
>  create mode 100644 target/arm/mte.h
>  create mode 100644 target/arm/tcg/mte_helper.h
>  create mode 100644 tests/tcg/aarch64/gdbstub/test-mte.py
>  create mode 100644 tests/tcg/aarch64/mte-8.c

-- 
Alex Bennée
Virtualisation Tech Lead @ Linaro


  parent reply	other threads:[~2024-06-14 15:50 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-13 17:20 [PATCH v2 0/9] Add MTE stubs for aarch64 user mode Gustavo Romero
2024-06-13 17:20 ` [PATCH v2 1/9] gdbstub: Clean up process_string_cmd Gustavo Romero
2024-06-14 11:24   ` Alex Bennée
2024-06-13 17:20 ` [PATCH v2 2/9] gdbstub: Move GdbCmdParseEntry into a new header file Gustavo Romero
2024-06-14 11:25   ` Alex Bennée
2024-06-13 17:20 ` [PATCH v2 3/9] gdbstub: Add support for target-specific stubs Gustavo Romero
2024-06-14 11:27   ` Alex Bennée
2024-06-17  6:33     ` Gustavo Romero
2024-06-17  9:41       ` Alex Bennée
2024-06-13 17:20 ` [PATCH v2 4/9] target/arm: Fix exception case in allocation_tag_mem_probe Gustavo Romero
2024-06-14 11:29   ` Alex Bennée
2024-06-13 17:20 ` [PATCH v2 5/9] target/arm: Make some MTE helpers widely available Gustavo Romero
2024-06-13 17:32   ` Philippe Mathieu-Daudé
2024-06-13 18:13     ` Gustavo Romero
2024-06-14 12:34       ` Philippe Mathieu-Daudé
2024-06-17  6:37         ` Gustavo Romero
2024-06-13 17:21 ` [PATCH v2 6/9] target/arm: Factor out code for setting MTE TCF0 field Gustavo Romero
2024-06-13 17:35   ` Philippe Mathieu-Daudé
2024-06-13 18:15     ` Gustavo Romero
2024-06-14  9:02       ` Philippe Mathieu-Daudé
2024-06-17  6:56         ` Gustavo Romero
2024-06-14 11:21   ` Alex Bennée
2024-06-13 17:21 ` [PATCH v2 7/9] gdbstub: Make get cpu and hex conversion functions non-internal Gustavo Romero
2024-06-14 11:34   ` Alex Bennée
2024-06-13 17:21 ` [PATCH v2 8/9] gdbstub: Add support for MTE in user mode Gustavo Romero
2024-06-14 10:51   ` Alex Bennée
2024-06-14 16:16     ` Gustavo Romero
2024-06-13 17:21 ` [PATCH v2 9/9] tests/tcg/aarch64: Add MTE gdbstub tests Gustavo Romero
2024-06-14 11:42   ` Alex Bennée
2024-06-14 15:58     ` Gustavo Romero
2024-06-14 15:49 ` Alex Bennée [this message]
2024-06-14 16:01   ` [PATCH v2 0/9] Add MTE stubs for aarch64 user mode Gustavo Romero
2024-06-17  7:02   ` Gustavo Romero
2024-06-17  9:50     ` Alex Bennée
2024-06-24  5:40       ` Gustavo Romero

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=87ed8zttge.fsf@draig.linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=gustavo.romero@linaro.org \
    --cc=peter.maydell@linaro.org \
    --cc=philmd@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=richard.henderson@linaro.org \
    /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 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.