3 ms·
> It's possible to enable reserving the tag memory for MTE via `fastboot oem mte on`, boot a non-stock kernel ignoring arm64.nomte and use MTE. What I'd like t
by eigenform 1mo ago
> It's possible to enable reserving the tag memory for MTE via `fastboot oem mte on`, boot a non-stock kernel ignoring arm64.nomte and use MTE.
What I'd like to know is, is it not sufficient to just check the feature bits in ID_AA64PFR1_EL1? (Isn't this the first thing you'd try when trying to determine if the hardware supports some feature?)
If they were making the determination solely based on the fact that `arm64.nomte` is being passed to the kernel (or based on what features are exposed by kernel interfaces), it may have been better to say "MTE is seemingly disabled in the current Android release" rather than claiming that it's simply not present in hardware. If you're asking the Linux kernel about hardware features, maybe it takes cmdline arguments into account when presenting that info to userspace.
The TRM[^1] mentions that some of the feature bits depend on BROADCASTMTE (presumably some CPU input pin), but maybe that signal isn't constant and is allowed to change based on what happens in firmware/the bootloader?
Also, why the claim about the lack of hardware acceleration for MTE in the caches, is there evidence for that, or is this also a misunderstanding?
I think it's reasonable to assume that the perf impact of MTE is non-negligible (on cores in older Pixel devices[^2], MTE apparently suffers from the fact that checked stores are serializing!), but it's entirely possible that this does not follow from some physical design concession when implementing the SoC. The characterization of all this as some kind of cost-cutting measure is not necessarily accurate.
[^1]: https://support.arm.com/documentation/108014/0101/?lang=en https://support.arm.com/documentation/108014/0101/?lang=en
[^2]: https://arxiv.org/pdf/2601.11786 https://arxiv.org/pdf/2601.11786
- yaro330 1mo agoA "Google bad" essay gets a lot more clicks.
- yxuehr 1mo agoID_AA64PFR1_EL1 was discussed five days ago https://discuss.grapheneos.org/d/41564-pixel-11-doesnt-meet-the-grapheneos-security-standards-and-may-be-skipped/40 https://discuss.grapheneos.org/d/41564-pixel-11-doesnt-meet-...
- eigenform 1mo agoFascinating, thank you. It seems strange that the C1-Pro/C1-Ultra TRM mention that ID_AA64PFR1_EL1[11:8] should still be non-zero even when BROADCASTMTE is low. edit: Oh, I guess Linux does emulate the feature registers, doh. Since that user is booting with arm64.nomte, the kernel is changing those feature bits to zero! This probably explains the confusion here about hardware support: in Linux userspace, you still trap for system register reads, and this is just abstracted away from you... https://github.com/torvalds/linux/blob/841e384b841a3d89c50b4b2d6c5bb6abab1a7e39/arch/arm64/kernel/pi/idreg-override.c#L257 https://github.com/torvalds/linux/blob/841e384b841a3d89c50b4...
- grapheneos 26d agoThat's disabled unless the firmware sets up MTE and doesn't disable it for the OS. The Pixel 11 shipped with MTE hard-wired to disabled via the firmware with no way to enable it. The initial August 2026 update and the early non-QPR1 September 2026 update didn't enable it either. Android 16 QPR2 Beta 4 was released around 2 days after we made our initial thread and added back partial firmware support for MTE. It's now possible to enable it again via a fastboot command, but not via the OS using Android Advanced Protection Mode or developer options. It's still disabled from the OS perspective but it can be forcibly used after enabling it in the firmware using ADB. The way it shipped was that it was entirely unavailable due to the firmware not having support for setting it up for usage. It's not present in the OS in the way it is for the Pixel 8 through Pixel 10a either. It's now usable with the Android 16 QPR2 Beta 4 firmware but it appears there's something wrong with it, otherwise it wouldn't be disabled tghis way.