From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx2.freebsd.org (mx2.freebsd.org [96.47.72.81]) by sourceware.org (Postfix) with ESMTPS id 8AD013858D28 for ; Tue, 11 Apr 2023 15:50:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8AD013858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=FreeBSD.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [96.47.72.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits)) (Client CN "mx1.freebsd.org", Issuer "R3" (verified OK)) by mx2.freebsd.org (Postfix) with ESMTPS id 4Pwr0K1r58z3WGX; Tue, 11 Apr 2023 15:50:41 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Pwr0K0yLSz44Gd; Tue, 11 Apr 2023 15:50:41 +0000 (UTC) (envelope-from jhb@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681228241; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=a1yPM8KINWf1vwaiJRdc0zjYQ8//pdfQyNOOPYNUJXg=; b=jVU2ZGld2qMGCfDlXNgFOcBdQiigHAb/St53Rgk+PIPWThf83Qe4Vd9nKLYuJ1nCB0W8YS eSyuHidhPkWP5n4qvGu4BrUieeIvcbhfe7AM6sqvkTDZT4oTIyg665OHJxm2Za3/s+3uD0 V7iJBgqktNXo0xohVnYpPI1uZmzZkKBoDZlLxHj8hf37Q7va4mHgvXQkwRJi/xrIPFL/Uq jVXIYkrKYA76Of8OzN+Cs6HLBpvlifiWhVIhiLPEl43Evno9JZTS495TphB0HF2BcdCXhP /QJbEzRzg2baX7xZ0xWUYWywZTQ7mjkR7/GklHQa4fSUtxK7CT24VJO47UPtqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1681228241; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=a1yPM8KINWf1vwaiJRdc0zjYQ8//pdfQyNOOPYNUJXg=; b=YLW4Q9/ceWxN7LFx+ycs0Xh72n0vmRH10rUqpQ6WewN3kOeYNZKDcxc3ipOVOFzOlpzMQe +Pw+oLRNpla8d6nQA8Avq5iV2PQ1cZkdfLyUIcH4okj9RDetkOBAq7cun0Sr189d37cgC9 GPZQ7awcvnKVhdkW2qDBZeRg6QWkRI7kxc7t+PJB/goa7cl+Pm3uDDdOoilUW2Obm50jl/ HZ/L12bEBus3153oEfO/IIkLL/d3G2yP3XKJnE2Bjb9YnOwIJQQ6SPfet6YFEhNvKj8bIY DTbHKywecOdFql34AY7lNuQV+kFxc+qojJVuh1+vZx/F7FcWsKlOeT9Nauo29A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1681228241; a=rsa-sha256; cv=none; b=HjXISMSIptei/37olAXtTIXeXU111/cvV81VrEDPsGe64zVpHLa4mRMQtA6EXjOi/0UTIl GViCJ6qTVPQDC7Jv/ejvXECQB/mh1Ya7uJ7Q2mmMm9hBtl8NQR9e6zSX+nHHppFezbUw8a L1/8BktVUcbv+wNfeV6Fp/+BU2+vwykclHaXnxh6akWnu9CMh5VZOFDdlRQReYvBi+0CWi RYRavy1tcSeC+EuFMBJWLPndBMmnrWjlRDCTFJE0H1p/o2isudTqi/ztedwuxH+cFeg1vM 1dhv5JZWuixWixMfnxcUdqZD/Y4DenM/GH2SSJioRygFMo47FyVvcyuw1n6RUQ== Received: from [IPV6:2601:648:8680:16b0:14bb:55bb:f654:b139] (unknown [IPv6:2601:648:8680:16b0:14bb:55bb:f654:b139]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: jhb) by smtp.freebsd.org (Postfix) with ESMTPSA id 4Pwr0J4ZXSz13b1; Tue, 11 Apr 2023 15:50:40 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Message-ID: <71bf117d-78e3-5ae9-56c7-48824a0f5537@FreeBSD.org> Date: Tue, 11 Apr 2023 08:50:39 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.9.1 Subject: Re: [PATCH 00/17] SME support for AArch64 gdb/gdbserver on Linux. Content-Language: en-US To: Luis Machado , gdb-patches@sourceware.org References: <20230411042658.1852730-1-luis.machado@arm.com> From: John Baldwin Cc: "Willgerodt, Felix" In-Reply-To: <20230411042658.1852730-1-luis.machado@arm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: 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