From: Omair Javaid <omair.javaid@linaro.org>
To: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Pedro Alves <palves@redhat.com>, Yao Qi <qiyaoltc@gmail.com>,
GDB Patches <gdb-patches@sourceware.org>
Subject: Re: [PATCH 0/3 v3] [AArch64] Support tagged pointer
Date: Tue, 24 Apr 2018 23:42:00 -0000 [thread overview]
Message-ID: <CANW4E-10ghR0tku39+QjTVuowpa+TCF5suaH9MfknvQE_51bLQ@mail.gmail.com> (raw)
In-Reply-To: <20180424160538.kxvorrhvku4ukpj6@holly.lan>
On 24 April 2018 at 21:05, Daniel Thompson <daniel.thompson@linaro.org> wrote:
> On Tue, Apr 24, 2018 at 12:48:19PM +0100, Pedro Alves wrote:
>> Hi,
>>
>> On 04/20/2018 03:33 PM, Omair Javaid wrote:
>>
>> > Pointer tagging information is stored in MMU registers so in linux
>> > user-space we cannot actually read if pointer tagging is enabled or not
>> > based on register bits.
>> > JTAG debuggers should be able to read MMU registers and know whether
>> > pointer tagging is enabled or not.
>> >
>> > Rationale behind adding a separate command is to allow other application to
>> > control pointer tagging for example bare-metal (non-linux OSes) which want
>> > to use pointer tagging can enable it. I must admit I dont know of any such
>> > use-case as of now.
>>
>> Alright, that's in line with what I was thinking. Though, bare metal
>> should have access to MMU registers too. Ideally, things would Just Work
>> without user intervention. But I don't mind starting by adding a
>> user-controllable knob, it might be a convenient escape hatch. We can always
>> extend it from "on/off" -> "on/off/auto" setting, with auto the default
>> in future.
>
> For bare metal cases this is not a simple on/off control!
>
> Top byte ignore (a.k.a. pointer tagging) has separate on/off switches
> for TTBR0 (0x0 upwards) and TTBR1 (0xffffffffffff downwards) *and* we
> have to know the respective sizes of TTBR0 and TTBR1 to be sure which
> table we are using.
>
>
>> > Also I am not sure about the timeline of Linux Kernel patches going into
>> > gdb and for now I thought of this command as the most suitable option.
>> > Moreover some users might also be interested in combination where pointer
>> > tagging is enabled but Linux Kernel threads support is disabled so I
>> > thought we should give the control to the user in cases where we cannot
>> > predict use-cases.
>>
>> If everyone agrees that proper Linux kernel support benefits from
>> its own osabi setting/name, then I don't see why we couldn't start by
>> adding the osabi setting as soon as we have a use for it, even if
>> the larger Linux Kernel patches aren't ready yet.
>
> Following on from the above, for aarch64-linux-tdep we can apply domain
> knowledge regarding how things are configured. Here we know that TTBR0
> is guaranteed to have top byte ignore set, TTBR1 does not *and* we
> also know (from memory-layout.txt) that TTBR0 is sufficiently small
> that bit 55 can be used to discriminate between the two cases.
>
> In others words regardless of whether we are running at EL0 or EL1 then
> I think we should mask the top byte from pointers if and only if bit 55
> is unset, otherwise leave them as they are.
What I am understanding here is that you are basing your decision on
the fact that:
"User addresses have bits 63:48 set to 0 while the kernel addresses have
the same bits set to 1. TTBRx selection is given by bit 63 of the
virtual address."
Sounds legitimate for now but are we ever going to use more than
48-bit virtual addresses in arm64 linux?
This actually means we wont need any set pointer-tagging command and
can modify existing implementation. Sounds good?
>
>
> Daniel.
next prev parent reply other threads:[~2018-04-24 23:42 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-08 10:04 Yao Qi
2017-12-08 10:04 ` [PATCH 3/3] Clear non-significant bits of address in watchpoint Yao Qi
2017-12-08 12:23 ` Pedro Alves
2017-12-08 10:04 ` [PATCH 2/3] Adjust breakpoint address by clearing non-significant bits Yao Qi
2017-12-08 12:22 ` Pedro Alves
2017-12-08 10:04 ` [PATCH 1/3] Clear non-significant bits of address on memory access Yao Qi
2017-12-08 12:22 ` Pedro Alves
2017-12-08 15:13 ` Ulrich Weigand
2017-12-08 15:36 ` Yao Qi
2017-12-19 13:50 ` Ulrich Weigand
2017-12-19 15:41 ` Yao Qi
2017-12-19 16:15 ` Ulrich Weigand
2017-12-20 9:57 ` Yao Qi
2017-12-20 13:03 ` [pushed] Fix Cell/B.E. regression (Re: [PATCH 1/3] Clear non-significant bits of address on memory access) Ulrich Weigand
2017-12-20 13:59 ` Yao Qi
2017-12-08 12:24 ` [PATCH 0/3 v3] [AArch64] Support tagged pointer Pedro Alves
2017-12-08 17:31 ` Yao Qi
2018-04-11 0:16 ` Omair Javaid
2018-04-11 0:37 ` Omair Javaid
2018-04-11 2:46 ` Simon Marchi
2018-04-11 10:14 ` Pedro Alves
2018-04-11 11:13 ` Omair Javaid
2018-04-11 11:19 ` Pedro Alves
2018-04-11 12:01 ` Omair Javaid
2018-04-11 18:27 ` Pedro Alves
2018-04-16 1:36 ` Omair Javaid
2018-04-16 22:57 ` Pedro Alves
2018-04-20 14:34 ` Omair Javaid
2018-04-20 16:13 ` Daniel Thompson
2018-04-23 7:50 ` Omair Javaid
2018-04-24 11:39 ` Pedro Alves
2018-04-24 15:44 ` Daniel Thompson
2018-04-24 11:48 ` Pedro Alves
2018-04-24 16:05 ` Daniel Thompson
2018-04-24 23:42 ` Omair Javaid [this message]
2018-04-25 0:09 ` Andrew Pinski
2018-04-25 8:04 ` Daniel Thompson
2018-04-26 8:11 ` Omair Javaid
2018-04-27 16:29 ` Daniel Thompson
2018-04-30 13:42 ` Omair Javaid
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=CANW4E-10ghR0tku39+QjTVuowpa+TCF5suaH9MfknvQE_51bLQ@mail.gmail.com \
--to=omair.javaid@linaro.org \
--cc=daniel.thompson@linaro.org \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
--cc=qiyaoltc@gmail.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox