From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id c4dLB48rzl8aRAAAWB0awg (envelope-from ) for ; Mon, 07 Dec 2020 08:18:07 -0500 Received: by simark.ca (Postfix, from userid 112) id 11C441F096; Mon, 7 Dec 2020 08:18:07 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RDNS_NONE,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 11A091EFBB for ; Mon, 7 Dec 2020 08:18:06 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7541E3857806; Mon, 7 Dec 2020 13:18:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7541E3857806 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1607347085; bh=tgGjwOrBYsWXXOjxhyIsYwwgBMJ7MowyH3nuTw9qe70=; h=Subject:To:References:Date:In-Reply-To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=wLlCFzbJNLNs9EqaJSrru9mXPiqXzGejTdWmFhWC07TocbFJqFzGnQ+4ISFU0nWk2 uP0ZVn9vEwGGOclPPWXQABYJPv4wA+0wIvQOZkxrnBefXShxyu5cdrvzRu7H94IJ64 /GXw4OsdDRdUVZtquSyK6dGA+WyY12DynAqEod68= Received: from mail-qv1-xf41.google.com (mail-qv1-xf41.google.com [IPv6:2607:f8b0:4864:20::f41]) by sourceware.org (Postfix) with ESMTPS id 1B1873857806 for ; Mon, 7 Dec 2020 13:18:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 1B1873857806 Received: by mail-qv1-xf41.google.com with SMTP id g19so6442456qvy.2 for ; Mon, 07 Dec 2020 05:18:02 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=tgGjwOrBYsWXXOjxhyIsYwwgBMJ7MowyH3nuTw9qe70=; b=K9IHtAvox/FVQVVyAI6CcUasz6vD+Y24ujIw5/7vwQ4AVFh7ddqCq+s+YJ/zslGE8Y DfzTMGoNsvzgNUkih9bMXNCSnVFksfGDI9fZxs5zenjrr3/vLZmkC5ZsG67Xybp87Z6P WUG777fzpmoyhZG+LZp69LqWGV7It8NiV7VjvyP9dsfnf5dGK29Gfg70kIHh+w+za+cS FE0JeQXpgrvV3ClQQzjCVROiw1szlElPiqajNsI5MdoNiMn2MhWYllQlWEoFMBqETL0e uqPTeVRpuIXOqyBKg+l8uC4FL4wPjhIZD++7yHzVVgU0gahMIX/hrjFQgZ60mkPj8B7R nZ4Q== X-Gm-Message-State: AOAM530OpcVxetXATPY0bJYoIQQYs+DF0aiYu84Nd3Iae7ekrJziqdJy eix8cN8p7UBT8raZKhZ4f4I3SVKSFT29SQ== X-Google-Smtp-Source: ABdhPJyYXW+DRy3Z4W0OlW5fmOsjPLGQireFNrFYoxS3t9GNhlJgn2ZVqgxmiO2IwN89OvuuJ9uXXQ== X-Received: by 2002:a0c:d407:: with SMTP id t7mr21195463qvh.21.1607347081544; Mon, 07 Dec 2020 05:18:01 -0800 (PST) Received: from ?IPv6:2804:7f0:8284:370e:2cb7:754f:737c:109f? ([2804:7f0:8284:370e:2cb7:754f:737c:109f]) by smtp.gmail.com with ESMTPSA id c65sm11684558qkf.47.2020.12.07.05.17.59 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 07 Dec 2020 05:18:00 -0800 (PST) Subject: Re: [PATCH v3 00/24] Memory Tagging Support + AArch64 Linux implementation To: gdb-patches@sourceware.org References: <20201109170435.15766-1-luis.machado@linaro.org> <67cfe571-e00e-e9b2-0ad1-ad369b30ef29@linaro.org> <659e98aa-2934-5e2e-98cc-f3c122c587f4@linaro.org> Message-ID: Date: Mon, 7 Dec 2020 10:17:57 -0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <659e98aa-2934-5e2e-98cc-f3c122c587f4@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Luis Machado via Gdb-patches Reply-To: Luis Machado Cc: david.spickett@linaro.org Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" 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//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 >>>>