Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp601488img; Mon, 18 Mar 2019 10:01:47 -0700 (PDT) X-Google-Smtp-Source: APXvYqycyWHgddToJgxudksykv2CyRi1UEQACQm17iCQqXdEDOo3s8wZ3H98POltSCDbDNiABkoF X-Received: by 2002:a63:f850:: with SMTP id v16mr1776658pgj.448.1552928507139; Mon, 18 Mar 2019 10:01:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552928507; cv=none; d=google.com; s=arc-20160816; b=cxEtIIx/D+B+J8iG8XmxUB4bg2g5yhm8eUrs5hptILFBnN9qFUQxQdtd5vkde30LRL 2yyhyu+hmQlvBg/dfXB/1jEDAKXsApevKCM8hFB4OLNN7Z3ByShArjpzeuCZt8bTY5B8 dvlScNAzbW2/0rxDfOjWrvzqzcb2F1v6N3oNdi+If3U+fKIjhRw59rgZpDU1SXUQhpVs POlxAdXLeZ/V3w4hgc9tlZ/EuTHf9R/dJkgfZjz9UP44DjYUba/OseDJMgYC4ysejPBR fgx34plcw/x9Ht8HvICDdM+DqW7bvhfbLtQeb9Z6yRfffp41MbZ2we+ABeygO/ckRPiV Wtww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=1qSGcK0R5KM+dkjWC/kauJx8/g6gKZLlVh+46+vQTpk=; b=KZEVYCvaneE+4LSbrvwBJ08846K0JYHcZ+uFIfXVqpFb9BKN5W48Fzj6RWetXp6EzO 7Cs3y0gQQK6nF/DpN5U7J9XxhguYnZXpIkil9K69lvUUhMsoyAYXxc6FfJOpZCCjBhaP ePFytpBRH4comuzKnJTr8w6gAWgsuoz6TAeAFq9a2FAcgGSKpGUB2m/Onj2B1npHNXqm oY9Wj4qN5xmKQ/5/61CR5oDbMP3KX8w+tQH0hriiTxqSL2tOBhXyNlV0yMalmEYzy2Zk ClP1Z9kNsucuJkzGzC2Fv5z/BfXwEZPMjzF7p6mAARI3ENYhLEshs9Zkbp5UNHSwmtn0 zywg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=PM9OGKhX; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id cs11si10642925plb.248.2019.03.18.10.01.31; Mon, 18 Mar 2019 10:01:47 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=PM9OGKhX; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727808AbfCRQ7R (ORCPT + 99 others); Mon, 18 Mar 2019 12:59:17 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:35403 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726983AbfCRQ7Q (ORCPT ); Mon, 18 Mar 2019 12:59:16 -0400 Received: by mail-pg1-f194.google.com with SMTP id g8so1144886pgf.2 for ; Mon, 18 Mar 2019 09:59:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1qSGcK0R5KM+dkjWC/kauJx8/g6gKZLlVh+46+vQTpk=; b=PM9OGKhXVFOScoA0U0eJfjlATm68hBokDH3xW76dl2UrhKuLtWfcahYPG5tZzJpWHy qPRj7SaRW915MTLp3nmMfjCTbwM9k49VLoIXbp7+HUtgJEDn41oJRmFHkmNkl0nGtUoV uL6n5VvrW/nx/l25G3MiK/Y64jrg/oh9SDiXRheAs6X+GRPwJ/gs16ooPLZIU4YLCmlF cuz29jZ/UPZ9B4rkBDhhfIYLxO4XIPmsS9g8nQNx0IIiabynJxMZ0OMey+jIZbTbZxlh G7oAucvMP+3PhykgPsXecAODKhmrvPM7d48t1eWOqIDKXZrebPqEJ53C0aOsLnrMiwEC GWyg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1qSGcK0R5KM+dkjWC/kauJx8/g6gKZLlVh+46+vQTpk=; b=AxGpv150QEsIrZ/3wm0po+FT9V/TSAULKFRuEUy0Qfm547BcRShSP2LJVyx4MAowPG De+mQCkd1ZgJdT+sI/fJJSnSwPLeWPPHAX4pk1Gdb5X4BkbhYKIcseRUgS2ETwgbhrLl a7XuQuP5a8+E7iZRGH1t4qmLQPs7A0i9xTnKxcQ2AZ+Z70a8v23n/w//INEZ/QlnhEdn QmU7fwv9v7lnfrO2ULjj5WzyEMFspzTUaa9MoAp8nHnWdGUrOdMsMxHFhYNEJxYoFOZn MyHQORpF3yuECIgmZVSITbvTc48ArC3ERcb3oap6e8p2yI3P0HY9pxkqVu1tMwZPQwj5 3oYw== X-Gm-Message-State: APjAAAUTENzhrGFQGQqOUR7nq/m5FjK/RtRWEtceT4e27OsHUrBb4QL3 Zvw8eUQGL4gT2H5e+5VhIrwQIuNwY2S9Sze0odCkxQ== X-Received: by 2002:a17:902:8203:: with SMTP id x3mr20736629pln.159.1552928355544; Mon, 18 Mar 2019 09:59:15 -0700 (PDT) MIME-Version: 1.0 References: <81bc3110-b638-4545-1270-26baec3d59e7@arm.com> In-Reply-To: <81bc3110-b638-4545-1270-26baec3d59e7@arm.com> From: Andrey Konovalov Date: Mon, 18 Mar 2019 17:59:04 +0100 Message-ID: Subject: Re: [PATCH v11 13/14] arm64: update Documentation/arm64/tagged-pointers.txt To: Kevin Brodsky Cc: Catalin Marinas , Will Deacon , Mark Rutland , Robin Murphy , Kees Cook , Kate Stewart , Greg Kroah-Hartman , Andrew Morton , Ingo Molnar , "Kirill A . Shutemov" , Shuah Khan , Vincenzo Frascino , Eric Dumazet , "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Arnaldo Carvalho de Melo , Linux ARM , "open list:DOCUMENTATION" , Linux Memory Management List , linux-arch , netdev , bpf , "open list:KERNEL SELFTEST FRAMEWORK" , LKML , Dmitry Vyukov , Kostya Serebryany , Evgeniy Stepanov , Lee Smith , Ramana Radhakrishnan , Jacob Bramley , Ruben Ayrapetyan , Chintan Pandya , Luc Van Oostenryck , Dave Martin , Szabolcs Nagy Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 18, 2019 at 2:26 PM Kevin Brodsky wrote: > > On 15/03/2019 19:51, Andrey Konovalov wrote: > > This patch is a part of a series that extends arm64 kernel ABI to allow to > > pass tagged user pointers (with the top byte set to something else other > > than 0x00) as syscall arguments. > > > > Document the ABI changes in Documentation/arm64/tagged-pointers.txt. > > > > Signed-off-by: Andrey Konovalov > > --- > > Documentation/arm64/tagged-pointers.txt | 18 ++++++++---------- > > 1 file changed, 8 insertions(+), 10 deletions(-) > > > > diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt > > index a25a99e82bb1..07fdddeacad0 100644 > > --- a/Documentation/arm64/tagged-pointers.txt > > +++ b/Documentation/arm64/tagged-pointers.txt > > @@ -17,13 +17,15 @@ this byte for application use. > > Passing tagged addresses to the kernel > > -------------------------------------- > > > > -All interpretation of userspace memory addresses by the kernel assumes > > -an address tag of 0x00. > > +The kernel supports tags in pointer arguments (including pointers in > > +structures) of syscalls, however such pointers must point to memory ranges > > +obtained by anonymous mmap() or brk(). > > > > -This includes, but is not limited to, addresses found in: > > +The kernel supports tags in user fault addresses. However the fault_address > > +field in the sigcontext struct will contain an untagged address. > > > > - - pointer arguments to system calls, including pointers in structures > > - passed to system calls, > > +All other interpretations of userspace memory addresses by the kernel > > +assume an address tag of 0x00, in particular: > > > > - the stack pointer (sp), e.g. when interpreting it to deliver a > > signal, > > @@ -33,11 +35,7 @@ This includes, but is not limited to, addresses found in: > > > > Using non-zero address tags in any of these locations may result in an > > error code being returned, a (fatal) signal being raised, or other modes > > -of failure. > > - > > -For these reasons, passing non-zero address tags to the kernel via > > -system calls is forbidden, and using a non-zero address tag for sp is > > -strongly discouraged. > > +of failure. Using a non-zero address tag for sp is strongly discouraged. > > I don't understand why we should keep such a limitation. For MTE, tagging SP is > something we are definitely considering. This does bother userspace software in some > rare cases, but I'm not sure in what way it bothers the kernel. I don't mind allowing tagged sp as well, but it seems that it's another ABI relaxation that needs to be handled separately. I'm not sure if we want to include that into this patchset, which is supposed to allow tagged pointers to be passed to syscalls. > > Kevin > > > > > Programs maintaining a frame pointer and frame records that use non-zero > > address tags may suffer impaired or inaccurate debug and profiling >