public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
From: "Willgerodt, Felix" <felix.willgerodt@intel.com>
To: Thiago Jung Bauermann <thiago.bauermann@linaro.org>,
	Luis Machado <luis.machado@arm.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: RE: [PATCH v3 0/8] gdbserver improvements for AArch64 SVE support
Date: Fri, 10 May 2024 13:47:11 +0000	[thread overview]
Message-ID: <MN2PR11MB45662ED826EFC2C57BE029E48EE72@MN2PR11MB4566.namprd11.prod.outlook.com> (raw)
In-Reply-To: <8734qth98m.fsf@linaro.org>

> -----Original Message-----
> From: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
> Sent: Dienstag, 7. Mai 2024 18:34
> To: Luis Machado <luis.machado@arm.com>
> Cc: Willgerodt, Felix <felix.willgerodt@intel.com>; gdb-patches@sourceware.org
> Subject: Re: [PATCH v3 0/8] gdbserver improvements for AArch64 SVE support
> 
> 
> Hello Felix, Hello Luis,
> 
> Luis Machado <luis.machado@arm.com> writes:
> 
> > Hi,
> >
> > On 5/7/24 15:29, Willgerodt, Felix wrote:
> >>> -----Original Message-----
> >>> From: Gdb-patches <gdb-patches-
> >>> bounces+felix.willgerodt=intel.com@sourceware.org> On Behalf Of Thiago
> Jung
> >>> Bauermann via Gdb-patches
> >>>
> >>> This is version 3 of the patch series adding support to gdbserver for
> >>> inferiors that change the SVE vector length at runtime. This is already
> >>> supported by GDB, but not by gdbserver. Version 2 was posted here:
> >>
> >> I wonder what happened to this series. Do you plan to revive it at some
> >> point? I realise this isn't an easy series to land. Tough it would be great
> >> to have in my view.
> >
> > I think it is an essential piece to make gdbserver work correctly for both
> > SVE and SME (and similar features on other architectures), as well as enabling
> > remote debugging stubs to support vector size changes mid-execution.
> >
> > Thiago was the last one to touch this code, so he may have better information
> on
> > future plans.
> >
> > Unfortunately I don't have cycles to get back to this particular feature at the
> > moment, but I'd gladly review future iterations of the series.
> 
> Thank you for your interest in this series! I think it's very important
> too, and it nags me that I haven't been able to finish it yet. I gave up
> on the approach from this patch series, which was to have a different
> target description for each register size, which implies a different
> target description for each inferior thread.
>
> I have a branch where I implemented support in the XML target
> description to specify a register whose size is given by a math
> expression involving other registers. This way, a single target
> description is enough for the whole duration of the inferior execution,
> and for all inferior threads. But it still has significant bugs, and
> only occasionally I have been able to get back to it and try to move it
> forward. I pushed what I have to the sve-tdesc-dynamic-size branch at
> this repo, if you would like to have a look:
> 
> https://git.linaro.org/people/thiago.bauermann/binutils-gdb.git
> 
> If you "git diff 1bdabb9e9fe8..<remote>/sve-tdesc-dynamic-size" you can
> see the code.
> 
> I think I will be able to work on it again in a month or two. If you
> think my approach is good and the branch is a good starting point for
> you, feel free to work on it. I'd be happy to collaborate.
> 

Thanks for the clarification.
I briefly looked at your branch, but I didn't have enough time to really
understand it yet. But I still wanted to give some feedback based on
my current knowledge and what you wrote.

On x86 we will also need resizable registers. Though on x86, the
sizing information is only partially found in other registers. Some of
the sizing information comes e.g. from the CPUID instruction
(basically an instruction to query features of your CPU, no idea if
there is an ARM equivalent). And x86 would also need the full
flexibility of adding or removing registers I think. So would the
Intel GPU port, that is currently still a downstream fork.

I realize that this is mainly our problem. We will start working on
This eventually.  Though I think any series touching generic code
should offer enough flexibility for all architectures. I wonder
if your new approach offers that (I actually don't know),
if it is only based on other registers and only offers resizing.
Though if it doesn't prevent adding additional input for re-sizing
and could live in parallel to adding/removing registers at runtime
it could be viewed as ok.

But it makes me wonder a bit if the older approach isn't more
flexible for future architectures that want to use it. And it also
seems to be closer to the way GDB has already implemented.
Of course that doesn't mean we can't switch GDB to
a better solution at some point.

So I am curious: What was your reason for switching to the
new approach?

Thanks,
Felix
Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Sean Fennelly, Jeffrey Schneiderman, Tiffany Doon Silva
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928

      reply	other threads:[~2024-05-10 13:47 UTC|newest]

Thread overview: 98+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-30  4:45 Thiago Jung Bauermann
2023-01-30  4:45 ` [PATCH v3 1/8] gdbserver: Add assert in find_register_by_number Thiago Jung Bauermann
2023-01-31 17:05   ` Simon Marchi
2023-01-31 19:49     ` Thiago Jung Bauermann
2023-02-01 15:43       ` Simon Marchi
2023-01-30  4:45 ` [PATCH v3 2/8] gdbserver: Add PID parameter to linux_get_auxv and linux_get_hwcap Thiago Jung Bauermann
2023-02-01  9:07   ` Luis Machado
2023-02-01 10:54   ` Andrew Burgess
2023-02-01 16:01     ` Simon Marchi
2023-02-01 19:33       ` Thiago Jung Bauermann
2023-02-01 19:53         ` Simon Marchi
2023-02-01 21:55           ` Thiago Jung Bauermann
2023-02-06 19:54   ` Pedro Alves
2023-02-06 20:16     ` Simon Marchi
2023-02-07 15:19       ` Pedro Alves
2023-02-07 21:47         ` Thiago Jung Bauermann
2023-02-09  1:31           ` Simon Marchi
2023-02-10  3:54             ` Thiago Jung Bauermann
2023-02-07 22:28     ` Thiago Jung Bauermann
2023-01-30  4:45 ` [PATCH v3 3/8] gdbserver/linux-aarch64: Factor out function to get aarch64_features Thiago Jung Bauermann
2023-02-01  8:59   ` Luis Machado
2023-02-01 16:04     ` Simon Marchi
2023-02-01 22:13       ` Thiago Jung Bauermann
2023-01-30  4:45 ` [PATCH v3 4/8] gdbserver/linux-aarch64: When thread stops, update its target description Thiago Jung Bauermann
2023-02-01  9:05   ` Luis Machado
2023-02-01 11:06   ` Andrew Burgess
2023-02-01 16:21     ` Simon Marchi
2023-02-01 16:32       ` Luis Machado
2023-02-02  2:54         ` Thiago Jung Bauermann
2023-02-02  3:47           ` Simon Marchi
2023-02-03  3:47             ` Thiago Jung Bauermann
2023-02-03 11:13               ` Luis Machado
2023-02-04 15:26                 ` Thiago Jung Bauermann
2023-02-03 11:11             ` Luis Machado
2023-02-04 15:21               ` Thiago Jung Bauermann
2023-02-06  9:07                 ` Luis Machado
2023-02-06 12:15                   ` Thiago Jung Bauermann
2023-02-06 20:29                 ` Pedro Alves
2023-02-07  8:11                   ` Luis Machado
2023-02-07 14:39                     ` Thiago Jung Bauermann
2023-02-03 10:57           ` Luis Machado
2023-02-04  6:18             ` Thiago Jung Bauermann
2023-02-06 20:26           ` Pedro Alves
2023-02-07 21:06             ` Thiago Jung Bauermann
2023-02-09  2:46               ` Simon Marchi
2023-02-10  3:29                 ` Thiago Jung Bauermann
2023-02-10 14:56                   ` Luis Machado
2023-02-10 15:04                     ` Tom Tromey
2023-02-10 15:28                       ` Luis Machado
2023-02-10 17:26                       ` Thiago Jung Bauermann
2023-02-10 21:01                         ` Simon Marchi
2023-01-30  4:45 ` [PATCH v3 5/8] gdbserver: Transmit target description ID in thread list and stop reply Thiago Jung Bauermann
2023-01-30 12:52   ` Eli Zaretskii
2023-01-30 14:05     ` Thiago Jung Bauermann
2023-02-01  9:39   ` Luis Machado
2023-02-01 12:07   ` Andrew Burgess
2023-02-01 13:03     ` Eli Zaretskii
2023-02-01 17:37     ` Simon Marchi
2023-02-02 20:36       ` Thiago Jung Bauermann
2023-02-02 20:56         ` Simon Marchi
2023-02-01 20:46     ` Simon Marchi
2023-02-02 21:43       ` Thiago Jung Bauermann
2023-02-01 14:51   ` Andrew Burgess
2023-02-01 17:03     ` Simon Marchi
2023-02-02 19:52       ` Thiago Jung Bauermann
2023-02-02 20:51         ` Simon Marchi
2023-02-03  2:44           ` Thiago Jung Bauermann
2023-02-03 16:29             ` Andrew Burgess
2023-02-04  6:08               ` Thiago Jung Bauermann
2023-02-03 11:22       ` Luis Machado
2023-02-03 12:50         ` Simon Marchi
2023-01-30  4:45 ` [PATCH v3 6/8] gdb/remote: Parse tdesc field in stop reply and threads list XML Thiago Jung Bauermann
2023-02-01  9:52   ` Luis Machado
2023-02-05  0:06     ` Thiago Jung Bauermann
2023-02-06  9:10       ` Luis Machado
2023-02-01 14:32   ` Andrew Burgess
2023-02-01 19:50     ` Simon Marchi
2023-02-01 20:16       ` Simon Marchi
2023-02-03 11:27         ` Luis Machado
2023-02-03 13:19           ` Simon Marchi
2023-02-03 16:33             ` Andrew Burgess
2023-01-30  4:45 ` [PATCH v3 7/8] gdb/aarch64: Detect vector length changes when debugging remotely Thiago Jung Bauermann
2023-02-01  9:58   ` Luis Machado
2023-02-01 15:26   ` Andrew Burgess
2023-02-01 20:20     ` Simon Marchi
2023-02-03 11:31       ` Luis Machado
2023-02-03 16:38       ` Andrew Burgess
2023-02-03 19:07         ` Simon Marchi
2023-01-30  4:45 ` [PATCH v3 8/8] gdb/testsuite: Add test to exercise multi-threaded AArch64 SVE inferiors Thiago Jung Bauermann
2023-02-01 10:10   ` Luis Machado
2023-02-06 19:11 ` [PATCH v3 0/8] gdbserver improvements for AArch64 SVE support Pedro Alves
2023-02-06 20:05   ` Simon Marchi
2023-02-06 21:06     ` Pedro Alves
2023-02-07 13:49       ` Simon Marchi
2024-05-07 14:29 ` Willgerodt, Felix
2024-05-07 14:43   ` Luis Machado
2024-05-07 16:34     ` Thiago Jung Bauermann
2024-05-10 13:47       ` Willgerodt, Felix [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=MN2PR11MB45662ED826EFC2C57BE029E48EE72@MN2PR11MB4566.namprd11.prod.outlook.com \
    --to=felix.willgerodt@intel.com \
    --cc=gdb-patches@sourceware.org \
    --cc=luis.machado@arm.com \
    --cc=thiago.bauermann@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 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).