From: Catalin Marinas <catalin.marinas@arm.com>
To: Szabolcs Nagy <szabolcs.nagy@arm.com>
Cc: Peter Collingbourne <pcc@google.com>,
Will Deacon <will@kernel.org>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
Evgenii Stepanov <eugenis@google.com>,
Linux ARM <linux-arm-kernel@lists.infradead.org>,
Tejas Belagod <Tejas.Belagod@arm.com>
Subject: Re: [PATCH v5] arm64: mte: allow async MTE to be upgraded to sync on a per-CPU basis
Date: Fri, 25 Jun 2021 13:01:37 +0100 [thread overview]
Message-ID: <20210625120137.GC20835@arm.com> (raw)
In-Reply-To: <20210625092253.GJ13058@arm.com>
On Fri, Jun 25, 2021 at 10:22:53AM +0100, Szabolcs Nagy wrote:
> The 06/24/2021 17:52, Catalin Marinas wrote:
> > Thanks. Is there any MTE support in mainline glibc? If not, we may have
> > another chance of adjusting the ABI.
>
> glibc exposed heap tagging via an env var mechanism that can change
> between glibc releases, i.e. not abi stable, and we have no real
> contract about how the prctl can be used on top of glibc (see e.g. the
> multi-thread issue).
>
> we don't expect the async mode to be very useful on glibc based linux
> systems.
>
> changing async mode is unlikely to affect anything in userspace at
> this point.
Thanks, that's useful. I guess since the _MTAG_ENABLE tunable is not
ABI, the user app can't rely on what the glibc has configured. Arguably,
since it's driven from outside the application (env), we could say the
same for sysfs, though for the glibc case, the user app is still be able
to override it before the first thread is created (or per-thread). I
assume glibc only issues the prctl() once, not for every new thread.
> > The proposed interface is sysfs. I think that's not relevant to the user
> > application since it wouldn't have control over it anyway. What's
> > visible is that it cannot rely on the mode it requested, not even for
> > the lifetime of a thread (as it may migrate between CPUs). Do you see
> > any issues with this? For Android, it's probably fine but if other
> > programs cannot cope (or need the specific mode requested), we'd need a
> > new control (for opt-in or opt-out).
>
> i don't see any issues with changing async mode.
>
> i assume the prctl get operation would return whatever was the prctl
> setting for the thread and not try to expose the per cpu architectural
> state.
Yes.
> i assume async vs sync fault can be distinguished via the
> SEGV_MTE{A,S}ERR si_code.
Indeed.
So we can document that the mode requested by the app is an indication,
the system may change it to another value (and back-port documentation
to 5.10). If we get a request from developers to honour a specific mode,
we can add a new PR_MTE_TCF_EXACT bit or something but it's not
essential we do it now.
So if we allow the kernel to change the user requested mode (via sysfs),
I think we still have two more issues to clarify:
1. Do we allow only "upgrade" (for some meaning of this) or sysfs can
downgrade to a less strict mode. I'd go for upgrade here to a
stricter check as in Peter's patch.
2. Should the sysfs upgrade the PR_MTE_TCF_NONE? _MTAG_ENABLE does that,
so I'd say yes.
Any other thoughts are welcome.
--
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:[~2021-06-25 12:03 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-15 20:38 [PATCH v5] arm64: mte: allow async MTE to be upgraded to sync on a per-CPU basis Peter Collingbourne
2021-06-17 21:58 ` Will Deacon
2021-06-17 22:13 ` Peter Collingbourne
2021-06-18 15:09 ` Catalin Marinas
2021-06-19 0:45 ` Peter Collingbourne
2021-06-21 12:39 ` Will Deacon
2021-06-21 15:18 ` Catalin Marinas
2021-06-21 17:39 ` Will Deacon
2021-06-21 18:50 ` Catalin Marinas
2021-06-22 18:37 ` Peter Collingbourne
2021-06-23 8:55 ` Szabolcs Nagy
2021-06-23 17:15 ` Peter Collingbourne
2021-06-24 16:52 ` Catalin Marinas
2021-06-25 9:22 ` Szabolcs Nagy
2021-06-25 12:01 ` Catalin Marinas [this message]
2021-06-25 12:39 ` Will Deacon
2021-06-25 13:53 ` Catalin Marinas
2021-06-28 10:14 ` Will Deacon
2021-06-28 15:20 ` Catalin Marinas
2021-06-29 10:46 ` Will Deacon
2021-06-29 13:58 ` Szabolcs Nagy
2021-06-29 14:31 ` Tejas Belagod
2021-06-29 15:54 ` Catalin Marinas
2021-06-29 19:11 ` Peter Collingbourne
2021-06-30 15:19 ` Catalin Marinas
2021-06-30 23:39 ` Peter Collingbourne
2021-07-07 10:30 ` Will Deacon
2021-07-07 12:55 ` Catalin Marinas
2021-07-07 14:11 ` Will Deacon
2021-06-25 14:14 ` Szabolcs Nagy
2021-06-25 16:21 ` Tejas Belagod
2021-06-28 10:17 ` Will Deacon
2021-06-28 17:21 ` Szabolcs Nagy
2021-06-25 16:52 ` Peter Collingbourne
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=20210625120137.GC20835@arm.com \
--to=catalin.marinas@arm.com \
--cc=Tejas.Belagod@arm.com \
--cc=eugenis@google.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=pcc@google.com \
--cc=szabolcs.nagy@arm.com \
--cc=vincenzo.frascino@arm.com \
--cc=will@kernel.org \
/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 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.