From: Catalin Marinas <catalin.marinas@arm.com> To: Vincenzo Frascino <vincenzo.frascino@arm.com> Cc: linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Will Deacon <will.deacon@arm.com>, Andrey Konovalov <andreyknvl@google.com>, Alexander Viro <viro@zeniv.linux.org.uk> Subject: Re: [PATCH v4 2/2] arm64: Relax Documentation/arm64/tagged-pointers.txt Date: Wed, 12 Jun 2019 16:56:52 +0100 [thread overview] Message-ID: <20190612155651.GM28951@C02TF0J2HF1T.local> (raw) In-Reply-To: <20190612142111.28161-3-vincenzo.frascino@arm.com> A couple of minor nits below. On Wed, Jun 12, 2019 at 03:21:11PM +0100, Vincenzo Frascino wrote: > --- a/Documentation/arm64/tagged-pointers.txt > +++ b/Documentation/arm64/tagged-pointers.txt > @@ -18,7 +18,8 @@ Passing tagged addresses to the kernel > -------------------------------------- > > All interpretation of userspace memory addresses by the kernel assumes > -an address tag of 0x00. > +an address tag of 0x00, unless the userspace opts-in the ARM64 Tagged > +Address ABI via the PR_SET_TAGGED_ADDR_CTRL prctl(). > > This includes, but is not limited to, addresses found in: > > @@ -31,18 +32,23 @@ This includes, but is not limited to, addresses found in: > - the frame pointer (x29) and frame records, e.g. when interpreting > them to generate a backtrace or call graph. > > -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. > +Using non-zero address tags in any of these locations when the > +userspace application did not opt-in to the ARM64 Tagged Address ABI, Nitpick: drop the comma after "ABI," since a predicate follows. > +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. > +For these reasons, when the userspace application did not opt-in, 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. > > Programs maintaining a frame pointer and frame records that use non-zero > address tags may suffer impaired or inaccurate debug and profiling > visibility. > > +A definition of the meaning of ARM64 Tagged Address ABI and of the > +guarantees that the ABI provides when the userspace opts-in via prctl() > +can be found in: Documentation/arm64/tagged-address-abi.txt. > + > > Preserving tags > --------------- > @@ -57,6 +63,9 @@ be preserved. > The architecture prevents the use of a tagged PC, so the upper byte will > be set to a sign-extension of bit 55 on exception return. > > +This behaviours are preserved even when the the userspace opts-in the ARM64 "These" ... "opts in to" > +Tagged Address ABI via the PR_SET_TAGGED_ADDR_CTRL prctl(). > + > > Other considerations > -------------------- > -- > 2.21.0 -- Catalin
WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com> To: Vincenzo Frascino <vincenzo.frascino@arm.com> Cc: linux-arch@vger.kernel.org, linux-doc@vger.kernel.org, Andrey Konovalov <andreyknvl@google.com>, Will Deacon <will.deacon@arm.com>, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexander Viro <viro@zeniv.linux.org.uk>, linux-kselftest@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v4 2/2] arm64: Relax Documentation/arm64/tagged-pointers.txt Date: Wed, 12 Jun 2019 16:56:52 +0100 [thread overview] Message-ID: <20190612155651.GM28951@C02TF0J2HF1T.local> (raw) In-Reply-To: <20190612142111.28161-3-vincenzo.frascino@arm.com> A couple of minor nits below. On Wed, Jun 12, 2019 at 03:21:11PM +0100, Vincenzo Frascino wrote: > --- a/Documentation/arm64/tagged-pointers.txt > +++ b/Documentation/arm64/tagged-pointers.txt > @@ -18,7 +18,8 @@ Passing tagged addresses to the kernel > -------------------------------------- > > All interpretation of userspace memory addresses by the kernel assumes > -an address tag of 0x00. > +an address tag of 0x00, unless the userspace opts-in the ARM64 Tagged > +Address ABI via the PR_SET_TAGGED_ADDR_CTRL prctl(). > > This includes, but is not limited to, addresses found in: > > @@ -31,18 +32,23 @@ This includes, but is not limited to, addresses found in: > - the frame pointer (x29) and frame records, e.g. when interpreting > them to generate a backtrace or call graph. > > -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. > +Using non-zero address tags in any of these locations when the > +userspace application did not opt-in to the ARM64 Tagged Address ABI, Nitpick: drop the comma after "ABI," since a predicate follows. > +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. > +For these reasons, when the userspace application did not opt-in, 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. > > Programs maintaining a frame pointer and frame records that use non-zero > address tags may suffer impaired or inaccurate debug and profiling > visibility. > > +A definition of the meaning of ARM64 Tagged Address ABI and of the > +guarantees that the ABI provides when the userspace opts-in via prctl() > +can be found in: Documentation/arm64/tagged-address-abi.txt. > + > > Preserving tags > --------------- > @@ -57,6 +63,9 @@ be preserved. > The architecture prevents the use of a tagged PC, so the upper byte will > be set to a sign-extension of bit 55 on exception return. > > +This behaviours are preserved even when the the userspace opts-in the ARM64 "These" ... "opts in to" > +Tagged Address ABI via the PR_SET_TAGGED_ADDR_CTRL prctl(). > + > > Other considerations > -------------------- > -- > 2.21.0 -- Catalin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-06-12 15:57 UTC|newest] Thread overview: 253+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-12 11:43 [PATCH v17 00/15] arm64: untag user pointers passed to the kernel Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` [PATCH v17 01/15] arm64: untag user pointers in access_ok and __uaccess_mask_ptr Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:26 ` Vincenzo Frascino 2019-06-12 14:26 ` Vincenzo Frascino 2019-06-12 14:26 ` Vincenzo Frascino 2019-06-12 11:43 ` [PATCH v17 02/15] lib, arm64: untag user pointers in strn*_user Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:28 ` Vincenzo Frascino 2019-06-12 14:28 ` Vincenzo Frascino 2019-06-12 14:28 ` Vincenzo Frascino 2019-06-12 11:43 ` [PATCH v17 03/15] arm64: Introduce prctl() options to control the tagged user addresses ABI Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:30 ` Vincenzo Frascino 2019-06-12 14:30 ` Vincenzo Frascino 2019-06-12 14:30 ` Vincenzo Frascino 2019-06-12 14:55 ` Catalin Marinas 2019-06-12 14:55 ` Catalin Marinas 2019-06-12 14:55 ` Catalin Marinas 2019-06-13 11:02 ` Dave Martin 2019-06-13 11:02 ` Dave Martin 2019-06-13 11:02 ` Dave Martin 2019-06-13 15:26 ` Catalin Marinas 2019-06-13 15:26 ` Catalin Marinas 2019-06-13 15:26 ` Catalin Marinas 2019-06-14 5:13 ` Kees Cook 2019-06-14 5:13 ` Kees Cook 2019-06-14 5:13 ` Kees Cook 2019-06-18 9:18 ` Dave Martin 2019-06-18 9:18 ` Dave Martin 2019-06-18 9:18 ` Dave Martin 2019-06-13 11:16 ` Dave Martin 2019-06-13 11:16 ` Dave Martin 2019-06-13 11:16 ` Dave Martin 2019-06-13 15:35 ` Catalin Marinas 2019-06-13 15:35 ` Catalin Marinas 2019-06-13 15:35 ` Catalin Marinas 2019-06-13 15:45 ` Vincenzo Frascino 2019-06-13 15:45 ` Vincenzo Frascino 2019-06-13 15:45 ` Vincenzo Frascino 2019-06-13 15:57 ` Catalin Marinas 2019-06-13 15:57 ` Catalin Marinas 2019-06-13 15:57 ` Catalin Marinas 2019-06-13 16:15 ` Vincenzo Frascino 2019-06-13 16:15 ` Vincenzo Frascino 2019-06-13 16:15 ` Vincenzo Frascino 2019-06-17 13:56 ` Catalin Marinas 2019-06-17 13:56 ` Catalin Marinas 2019-06-17 13:56 ` Catalin Marinas 2019-06-17 16:56 ` Szabolcs Nagy 2019-06-17 16:56 ` Szabolcs Nagy 2019-06-17 16:56 ` Szabolcs Nagy 2019-06-17 16:56 ` Szabolcs Nagy 2019-06-17 16:57 ` Evgenii Stepanov 2019-06-17 16:57 ` Evgenii Stepanov 2019-06-17 16:57 ` Evgenii Stepanov 2019-06-17 16:57 ` Evgenii Stepanov 2019-06-17 17:18 ` Catalin Marinas 2019-06-17 17:18 ` Catalin Marinas 2019-06-17 17:18 ` Catalin Marinas 2019-06-17 17:18 ` Catalin Marinas 2019-06-17 21:59 ` Evgenii Stepanov 2019-06-17 21:59 ` Evgenii Stepanov 2019-06-17 21:59 ` Evgenii Stepanov 2019-06-17 21:59 ` Evgenii Stepanov 2019-06-19 14:45 ` Andrey Konovalov 2019-06-19 14:45 ` Andrey Konovalov 2019-06-19 14:45 ` Andrey Konovalov 2019-06-19 14:45 ` Andrey Konovalov 2019-06-19 15:29 ` Catalin Marinas 2019-06-19 15:29 ` Catalin Marinas 2019-06-19 15:29 ` Catalin Marinas 2019-06-19 15:29 ` Catalin Marinas 2019-06-12 11:43 ` [PATCH v17 04/15] mm, arm64: untag user pointers passed to memory syscalls Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:31 ` Vincenzo Frascino 2019-06-12 14:31 ` Vincenzo Frascino 2019-06-12 14:31 ` Vincenzo Frascino 2019-06-19 15:55 ` Khalid Aziz 2019-06-19 15:55 ` Khalid Aziz 2019-06-19 15:55 ` Khalid Aziz 2019-06-19 16:46 ` Khalid Aziz 2019-06-19 16:46 ` Khalid Aziz 2019-06-19 16:46 ` Khalid Aziz 2019-06-24 14:22 ` Andrey Konovalov 2019-06-24 14:22 ` Andrey Konovalov 2019-06-24 14:22 ` Andrey Konovalov 2019-06-24 14:22 ` Andrey Konovalov 2019-06-12 11:43 ` [PATCH v17 05/15] mm, arm64: untag user pointers in mm/gup.c Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:33 ` Vincenzo Frascino 2019-06-12 14:33 ` Vincenzo Frascino 2019-06-12 14:33 ` Vincenzo Frascino 2019-06-19 16:41 ` Khalid Aziz 2019-06-19 16:41 ` Khalid Aziz 2019-06-19 16:41 ` Khalid Aziz 2019-06-12 11:43 ` [PATCH v17 06/15] mm, arm64: untag user pointers in get_vaddr_frames Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:34 ` Vincenzo Frascino 2019-06-12 14:34 ` Vincenzo Frascino 2019-06-12 14:34 ` Vincenzo Frascino 2019-06-19 16:48 ` Khalid Aziz 2019-06-19 16:48 ` Khalid Aziz 2019-06-19 16:48 ` Khalid Aziz 2019-06-12 11:43 ` [PATCH v17 07/15] fs, arm64: untag user pointers in copy_mount_options Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:35 ` Vincenzo Frascino 2019-06-12 14:35 ` Vincenzo Frascino 2019-06-12 14:35 ` Vincenzo Frascino 2019-06-19 20:01 ` Khalid Aziz 2019-06-19 20:01 ` Khalid Aziz 2019-06-19 20:01 ` Khalid Aziz 2019-06-12 11:43 ` [PATCH v17 08/15] userfaultfd, arm64: untag user pointers Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:40 ` Vincenzo Frascino 2019-06-12 14:40 ` Vincenzo Frascino 2019-06-12 14:40 ` Vincenzo Frascino 2019-06-12 11:43 ` [PATCH v17 09/15] drm/amdgpu, " Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` [PATCH v17 10/15] drm/radeon, arm64: untag user pointers in radeon_gem_userptr_ioctl Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` [PATCH v17 11/15] IB/mlx4, arm64: untag user pointers in mlx4_get_umem_mr Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` [PATCH v17 12/15] media/v4l2-core, arm64: untag user pointers in videobuf_dma_contig_user_get Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-19 20:05 ` Khalid Aziz 2019-06-19 20:05 ` Khalid Aziz 2019-06-19 20:05 ` Khalid Aziz 2019-06-12 11:43 ` [PATCH v17 13/15] tee/shm, arm64: untag user pointers in tee_shm_register Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` [PATCH v17 14/15] vfio/type1, arm64: untag user pointers in vaddr_get_pfn Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 14:41 ` Vincenzo Frascino 2019-06-12 14:41 ` Vincenzo Frascino 2019-06-12 14:41 ` Vincenzo Frascino 2019-06-12 15:58 ` Auger Eric 2019-06-12 15:58 ` Auger Eric 2019-06-12 15:58 ` Auger Eric 2019-06-12 11:43 ` [PATCH v17 15/15] selftests, arm64: add a selftest for passing tagged pointers to kernel Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 11:43 ` Andrey Konovalov 2019-06-12 12:30 ` Szabolcs Nagy 2019-06-12 12:30 ` Szabolcs Nagy 2019-06-12 12:30 ` Szabolcs Nagy 2019-06-12 12:30 ` Szabolcs Nagy 2019-06-12 15:00 ` Catalin Marinas 2019-06-12 15:00 ` Catalin Marinas 2019-06-12 15:00 ` Catalin Marinas 2019-06-19 14:42 ` Andrey Konovalov 2019-06-19 14:42 ` Andrey Konovalov 2019-06-19 14:42 ` Andrey Konovalov 2019-06-12 14:21 ` [PATCH v4 0/2] arm64 relaxed ABI Vincenzo Frascino 2019-06-12 14:21 ` Vincenzo Frascino 2019-06-12 14:21 ` [PATCH v4 1/2] arm64: Define Documentation/arm64/tagged-address-abi.txt Vincenzo Frascino 2019-06-12 14:21 ` Vincenzo Frascino 2019-06-12 15:35 ` Catalin Marinas 2019-06-12 15:35 ` Catalin Marinas 2019-06-13 10:15 ` Vincenzo Frascino 2019-06-13 10:15 ` Vincenzo Frascino 2019-06-13 10:15 ` Vincenzo Frascino 2019-06-13 11:37 ` Dave Martin 2019-06-13 11:37 ` Dave Martin 2019-06-13 11:37 ` Dave Martin 2019-06-13 12:28 ` Catalin Marinas 2019-06-13 12:28 ` Catalin Marinas 2019-06-13 12:28 ` Catalin Marinas 2019-06-13 13:23 ` Dave Martin 2019-06-13 13:23 ` Dave Martin 2019-06-13 15:39 ` Catalin Marinas 2019-06-13 15:39 ` Catalin Marinas 2019-06-12 16:30 ` Szabolcs Nagy 2019-06-12 16:30 ` Szabolcs Nagy 2019-06-12 16:30 ` Szabolcs Nagy 2019-06-13 9:20 ` Catalin Marinas 2019-06-13 9:20 ` Catalin Marinas 2019-06-13 9:20 ` Catalin Marinas 2019-06-13 9:20 ` Catalin Marinas 2019-06-13 10:14 ` Szabolcs Nagy 2019-06-13 10:14 ` Szabolcs Nagy 2019-06-13 10:14 ` Szabolcs Nagy 2019-06-13 10:14 ` Szabolcs Nagy 2019-06-13 11:16 ` Vincenzo Frascino 2019-06-13 11:16 ` Vincenzo Frascino 2019-06-13 11:16 ` Vincenzo Frascino 2019-06-13 11:16 ` Vincenzo Frascino 2019-06-13 12:28 ` Szabolcs Nagy 2019-06-13 12:28 ` Szabolcs Nagy 2019-06-13 12:28 ` Szabolcs Nagy 2019-06-13 12:28 ` Szabolcs Nagy 2019-06-13 14:03 ` Vincenzo Frascino 2019-06-13 14:03 ` Vincenzo Frascino 2019-06-13 14:03 ` Vincenzo Frascino 2019-06-13 14:03 ` Vincenzo Frascino 2019-06-13 15:32 ` Szabolcs Nagy 2019-06-13 15:32 ` Szabolcs Nagy 2019-06-13 15:32 ` Szabolcs Nagy 2019-06-13 15:35 ` Vincenzo Frascino 2019-06-13 15:35 ` Vincenzo Frascino 2019-06-13 15:35 ` Vincenzo Frascino 2019-06-12 14:21 ` [PATCH v4 2/2] arm64: Relax Documentation/arm64/tagged-pointers.txt Vincenzo Frascino 2019-06-12 14:21 ` Vincenzo Frascino 2019-06-12 15:56 ` Catalin Marinas [this message] 2019-06-12 15:56 ` Catalin Marinas 2019-06-12 16:37 ` Szabolcs Nagy 2019-06-12 16:37 ` Szabolcs Nagy 2019-06-12 16:37 ` Szabolcs Nagy 2019-06-13 15:51 ` [PATCH v5 0/2] arm64 relaxed ABI Vincenzo Frascino 2019-06-13 15:51 ` Vincenzo Frascino 2019-06-13 15:51 ` Vincenzo Frascino 2019-06-13 15:51 ` [PATCH v5 1/2] arm64: Define Documentation/arm64/tagged-address-abi.txt Vincenzo Frascino 2019-06-13 15:51 ` Vincenzo Frascino 2019-06-18 11:02 ` Szabolcs Nagy 2019-06-18 11:02 ` Szabolcs Nagy 2019-06-18 11:02 ` Szabolcs Nagy 2019-06-18 13:13 ` Kevin Brodsky 2019-06-18 13:13 ` Kevin Brodsky 2019-06-21 15:16 ` Catalin Marinas 2019-06-21 15:16 ` Catalin Marinas 2019-06-21 15:16 ` Catalin Marinas 2019-06-13 15:51 ` [PATCH v5 2/2] arm64: Relax Documentation/arm64/tagged-pointers.txt Vincenzo Frascino 2019-06-13 15:51 ` Vincenzo Frascino
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=20190612155651.GM28951@C02TF0J2HF1T.local \ --to=catalin.marinas@arm.com \ --cc=andreyknvl@google.com \ --cc=linux-arch@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-kselftest@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=vincenzo.frascino@arm.com \ --cc=viro@zeniv.linux.org.uk \ --cc=will.deacon@arm.com \ /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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.