From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 46E86C433EF for ; Mon, 18 Jul 2022 17:48:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DC15C6B0073; Mon, 18 Jul 2022 13:48:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D71CA8E0001; Mon, 18 Jul 2022 13:48:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C39DB6B0075; Mon, 18 Jul 2022 13:48:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id B33976B0073 for ; Mon, 18 Jul 2022 13:48:21 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 874EA345D1 for ; Mon, 18 Jul 2022 17:48:21 +0000 (UTC) X-FDA: 79700954802.11.AD20887 Received: from mail-yb1-f178.google.com (mail-yb1-f178.google.com [209.85.219.178]) by imf08.hostedemail.com (Postfix) with ESMTP id 34D2B160058 for ; Mon, 18 Jul 2022 17:48:21 +0000 (UTC) Received: by mail-yb1-f178.google.com with SMTP id f73so22053708yba.10 for ; Mon, 18 Jul 2022 10:48:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=caFOqr1U4vrdWB17XNCka0fWyoHQsm0XjApla3yJuwA=; b=Yb8Yj7VjlgSVPJEAAdy4IaVbW2J6e7WVqpwdRT9IKSFT8M1CLxtNlD0pMViZ4Xf+BT 0LPfYOPqDA6Tmpx09ngaxfwGleK/m3cvBcGKiApkEiD6iKhfU64w1iCuxMzsXr70xQ7w +elXPAy5KF3ZFyJ7ncERl5K8pQO1D6RFYD9+n5geoUKAnp+lMLbrL1NM+iHkMmtOsgVN VjW3WV88vNlMh1L5KYse/TZKHVY+v+X/2avyzqx0R/lFeH4M3RlVthYtu6USgdG3bItr M0ua1tIVDSHRorijPGNi9Hz/Y0aQVOltKVbr9uy95TUhCCXlkCJf2LSnd7ZwiU7dvzaD +HFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=caFOqr1U4vrdWB17XNCka0fWyoHQsm0XjApla3yJuwA=; b=eCbMaIq2W/9VG72smZlb316xq8mKhPZMb1h1zkEwfquCxxNY18RmzE9VYAc7QGjlE1 mveHLffipg3wrU2SgQAOutOmnQNT6J3/LLTUE5Zm8A6OBF1NYSFTWnqYDVVp0JTXI3q/ AHd1SLokmGCxevtSLzTwTy9WXHAy+AQEnS8GSpYxBC5Yiely1rovL9/XVItFB0cSJj5C oZvc7H8QQdGnJdTFI/jtUdzIkkovG21U6R+OLPsi3MUUC7wK/5EcCrztAZpdtaupXBy0 sIRPlFZs4BCVghtBMf+9QGeWH8cY43el5odur8hmpcuL/PWsUrSTyxbCpCW39MamQGGT FWOQ== X-Gm-Message-State: AJIora9oncSc0wr6a95V1GfSjYxaoptZ6t5ZIt6wOVhKeUsyytnB4Aif iodUn9eAU4CNBnQw0KmBae5LmIqCJ6obatoYu10IVw== X-Google-Smtp-Source: AGRyM1t1LJfusrpACSngJeznuQh2iagg/Sj+RaajoHLn1mxcjxHabvK36GbLRvLZ5t+9UH1n4ggUjrphnPZz1hMXBdk= X-Received: by 2002:a25:6847:0:b0:66e:b676:834c with SMTP id d68-20020a256847000000b0066eb676834cmr28383606ybc.5.1658166500300; Mon, 18 Jul 2022 10:48:20 -0700 (PDT) MIME-Version: 1.0 References: <20220712231328.5294-1-kirill.shutemov@linux.intel.com> <20220712231328.5294-7-kirill.shutemov@linux.intel.com> In-Reply-To: <20220712231328.5294-7-kirill.shutemov@linux.intel.com> From: Alexander Potapenko Date: Mon, 18 Jul 2022 19:47:44 +0200 Message-ID: Subject: Re: [PATCHv5 06/13] x86/mm: Provide ARCH_GET_UNTAG_MASK and ARCH_ENABLE_TAGGED_ADDR To: "Kirill A. Shutemov" Cc: Dave Hansen , Andy Lutomirski , Peter Zijlstra , "the arch/x86 maintainers" , Kostya Serebryany , Andrey Ryabinin , Andrey Konovalov , Taras Madan , Dmitry Vyukov , "H . J . Lu" , Andi Kleen , Rick Edgecombe , Linux Memory Management List , LKML Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1658166501; h=from:from:sender: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:dkim-signature; bh=caFOqr1U4vrdWB17XNCka0fWyoHQsm0XjApla3yJuwA=; b=liGXYoh+9+Q8RvKpB/xYW4HCXLONUggB8yUyFG6ZPayVtouCxYWJdVTUvNVif6metDUq8j PDQDe/EnYhcoUtd7Mn85q04b7d4Fxf8DdScI4Tpmk8gvG1q3A7+/YjLHWCjE9Oz6mfgfot oKYuQRM9HSR1ire6gOj8O8JXdj9kr8M= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1658166501; a=rsa-sha256; cv=none; b=wEvct6eyN4fvYssGZVxMVHJPbWiKqdxpVZxrbjXR0yYc/ZDN9dTZcQxRt1ly7fsd8u+nf3 LFlBIzoyBx15EF1aa7a/FTMgQ85I4O/ZcLxOslmFSwe3nIXOE30jIroTYzWiaGufMfIuS8 OW17CdrEmN+RNVNNeCp5i8YCc1b0IOI= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Yb8Yj7Vj; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf08.hostedemail.com: domain of glider@google.com designates 209.85.219.178 as permitted sender) smtp.mailfrom=glider@google.com X-Stat-Signature: e4ueoiriissxkweukjog8scdsiyzz8sn X-Rspam-User: X-Rspamd-Queue-Id: 34D2B160058 X-Rspamd-Server: rspam10 Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Yb8Yj7Vj; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf08.hostedemail.com: domain of glider@google.com designates 209.85.219.178 as permitted sender) smtp.mailfrom=glider@google.com X-HE-Tag: 1658166501-461775 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On Wed, Jul 13, 2022 at 1:13 AM Kirill A. Shutemov wrote: > > Add a couple of arch_prctl() handles: > > - ARCH_ENABLE_TAGGED_ADDR enabled LAM. The argument is required number > of tag bits. It is rounded up to the nearest LAM mode that can > provide it. For now only LAM_U57 is supported, with 6 tag bits. > > - ARCH_GET_UNTAG_MASK returns untag mask. It can indicates where tag > bits located in the address. > > Signed-off-by: Kirill A. Shutemov > --- > arch/x86/include/uapi/asm/prctl.h | 3 ++ > arch/x86/kernel/process_64.c | 60 ++++++++++++++++++++++++++++++- > 2 files changed, 62 insertions(+), 1 deletion(-) > + > +static int prctl_enable_tagged_addr(struct mm_struct *mm, unsigned long = nr_bits) > +{ > + int ret =3D 0; > + > + if (!cpu_feature_enabled(X86_FEATURE_LAM)) > + return -ENODEV; Hm, I used to think ENODEV is specific to devices, and -EINVAL is more appropriate here. On the other hand, e.g. prctl(PR_SET_SPECULATION_CTRL) can also return ENOD= EV... > long do_arch_prctl_64(struct task_struct *task, int option, unsigned lon= g arg2) > { > int ret =3D 0; > @@ -829,7 +883,11 @@ long do_arch_prctl_64(struct task_struct *task, int = option, unsigned long arg2) > case ARCH_MAP_VDSO_64: > return prctl_map_vdso(&vdso_image_64, arg2); > #endif > - > + case ARCH_GET_UNTAG_MASK: > + return put_user(task->mm->context.untag_mask, > + (unsigned long __user *)arg2); Can we have ARCH_GET_UNTAG_MASK return the same error value (ENODEV or EINVAL) as ARCH_ENABLE_TAGGED_ADDR in the case the host doesn't support LAM? After all, the mask does not make much sense in this case. > + case ARCH_ENABLE_TAGGED_ADDR: > + return prctl_enable_tagged_addr(task->mm, arg2); > default: > ret =3D -EINVAL; > break; > -- > 2.35.1 > --=20 Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Liana Sebastian Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg