On The Performance of ARM TrustZone
Pith reviewed 2026-05-25 17:02 UTC · model grok-4.3
The pith
TrustZone adds measurable time and energy costs for world switches and secure storage when used via OP-TEE.
A machine-rendered reading of the paper's core claim, the machinery that carries it, and where it could break.
Core claim
Using a combination of emulated and hardware measurements, the study shows that world switches and secure-storage accesses inside OP-TEE carry quantifiable performance and energy penalties that can be directly observed on contemporary ARM platforms.
What carries the argument
The OP-TEE framework's secure-world kernel and its world-switch mechanism, whose latency and energy cost are measured through targeted benchmarks.
If this is right
- Application designers can use the reported switch costs to decide whether to place sensitive code inside the secure world.
- Energy budgets for mobile or embedded devices can now include explicit TrustZone overhead terms.
- Implementers of TEE frameworks can target the measured switch path for optimization.
Where Pith is reading between the lines
- Similar measurement campaigns on other TEEs could reveal whether the overhead profile is architecture-specific.
- The numbers could serve as a baseline for future hardware changes that reduce world-switch latency.
Load-bearing premise
The chosen benchmarks and hardware platforms produce overhead numbers that generalize to other TrustZone deployments and real applications.
What would settle it
Repeating the same benchmarks on a different ARM platform or with production workloads yields overhead values that differ by more than a small constant factor.
Figures
read the original abstract
The TrustZone technology, available in the vast majority of recent ARM processors, allows the execution of code inside a so-called secure world. It effectively provides hardware-isolated areas of the processor for sensitive data and code, i.e., a trusted execution environment (TEE). The OP-TEE framework provides a collection of toolchain, open-source libraries and secure kernel specifically geared to develop applications for TrustZone. This paper presents an in-depth performance- and energy-wise study of TrustZone using the OP-TEE framework, including secure storage and the cost of switching between secure and unsecure worlds, using emulated and hardware measurements.
Editorial analysis
A structured set of objections, weighed in public.
Referee Report
Summary. The paper presents an empirical performance and energy study of ARM TrustZone using the OP-TEE framework. It reports measurements of secure storage operations and the overhead of switching between secure and non-secure worlds, performed on both emulated and physical hardware platforms.
Significance. If the reported measurements are reproducible and include appropriate controls, the work supplies concrete overhead numbers for a widely deployed TEE technology. Such data can guide developers in assessing when TrustZone is suitable for sensitive workloads.
major comments (1)
- [Abstract and §3] Abstract and §3 (Methodology): the description of the measurement campaign provides no information on the specific workloads or benchmarks executed, the number of repetitions, statistical methods for aggregating results, error bars, or baseline comparisons against non-TrustZone execution. Without these details the reliability of the reported performance and energy numbers cannot be assessed.
Simulated Author's Rebuttal
We thank the referee for the constructive review and positive recommendation. We address the single major comment below.
read point-by-point responses
-
Referee: [Abstract and §3] Abstract and §3 (Methodology): the description of the measurement campaign provides no information on the specific workloads or benchmarks executed, the number of repetitions, statistical methods for aggregating results, error bars, or baseline comparisons against non-TrustZone execution. Without these details the reliability of the reported performance and energy numbers cannot be assessed.
Authors: We agree that the abstract and §3 do not supply these details. The experimental campaign did execute concrete workloads (secure storage operations and world-switch micro-benchmarks) on both QEMU and hardware, with multiple repetitions, but the presentation omitted the required methodological information. In the revised manuscript we will expand the abstract and §3 to describe the exact workloads and benchmarks, the number of repetitions performed, the statistical methods used to aggregate results, the inclusion of error bars, and direct baseline comparisons against equivalent non-TrustZone execution paths. revision: yes
Circularity Check
No significant circularity identified
full rationale
The paper is a purely empirical measurement study of TrustZone/OP-TEE performance and energy costs on emulated and real hardware. It reports benchmark results for secure storage and world-switch overheads without any derivations, first-principles predictions, fitted parameters presented as predictions, or load-bearing self-citations. The central claim is simply that the authors performed and documented these measurements; no quantitative generalization or model is asserted that would require the results to reduce to their own inputs.
Axiom & Free-Parameter Ledger
Reference graph
Works this paper leans on
-
[1]
http://infocenter.arm.com/ help/index.jsp?topic=/com.arm.doc.den0024a/ch10s02s04.html
AArch64 Exception Handling - System calls to EL2/EL3. http://infocenter.arm.com/ help/index.jsp?topic=/com.arm.doc.den0024a/ch10s02s04.html
-
[2]
https://source.android.com/security/trusty
Android Trusty TEE. https://source.android.com/security/trusty
- [3]
-
[4]
https://hexus.net/static/arm-everywhere/
ARM Everywhere. https://hexus.net/static/arm-everywhere/
-
[5]
https://www.arm.com/company/investors/ financial-results
ARM Financial Results. https://www.arm.com/company/investors/ financial-results
-
[6]
ARM Inside The Numbers - 100bn. https://community.arm.com/processors/b/blog/ posts/inside-the-numbers-100-billion-arm-based-chips-1345571105
-
[7]
https://developer.arm.com/technologies/trustzone
ARM TrustZone Developer. https://developer.arm.com/technologies/trustzone
-
[8]
ARM1176JZF-S Technical Reference Manual - 2.12.13. Secure Monitor Call (SMC). http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0301h/ ch02s12s13.html
-
[9]
https://github.com/OP-TEE/optee_os/blob/master/ documentation/benchmark.md
Benchmark framework. https://github.com/OP-TEE/optee_os/blob/master/ documentation/benchmark.md
-
[10]
https://linux.die.net/man/3/clock_gettime
clock gettime(3) - Linux man page. https://linux.die.net/man/3/clock_gettime
-
[11]
https://docs.microsoft.com/en-us/ dotnet/framework/interop/consuming-unmanaged-dll-functions
Consuming Unmanaged DLL Functions. https://docs.microsoft.com/en-us/ dotnet/framework/interop/consuming-unmanaged-dll-functions
-
[12]
Cortex-A9 Technical Reference Manual - 6.3. Memory Access Sequence. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0388f/ Ciheiecd.html. Accessed: 2018-12-09
work page 2018
-
[13]
https://nvd.nist.gov/vuln/detail/CVE-2017-5715
CVE-2017-5715. https://nvd.nist.gov/vuln/detail/CVE-2017-5715
work page 2017
-
[14]
https://nvd.nist.gov/vuln/detail/CVE-2017-5753
CVE-2017-5753. https://nvd.nist.gov/vuln/detail/CVE-2017-5753
work page 2017
-
[15]
https://nvd.nist.gov/vuln/detail/CVE-2017-5754
CVE-2017-5754. https://nvd.nist.gov/vuln/detail/CVE-2017-5754
work page 2017
-
[16]
https://nvd.nist.gov/vuln/detail/CVE-2018-3639
CVE-2018-3639. https://nvd.nist.gov/vuln/detail/CVE-2018-3639
work page 2018
- [17]
-
[18]
https://linux.die.net/man/2/gettimeofday
gettimeofday(2) - Linux man page. https://linux.die.net/man/2/gettimeofday
-
[19]
https://github.com/ OP-TEE/optee_os/issues/1396
Hikey: trying to allocate more physical memory to secure world. https://github.com/ OP-TEE/optee_os/issues/1396
-
[20]
https://github.com/OP-TEE/optee_os/ issues/2090
How to alloc 10M memory by TEE Malloc(). https://github.com/OP-TEE/optee_os/ issues/2090
work page 2090
- [21]
-
[22]
https://www.kingston.com/en/embedded/emmc
Kingston Embedded Solutions. https://www.kingston.com/en/embedded/emmc
-
[23]
https://github.com/Microsoft/openenclave
Microsoft OpenEnclave Framework. https://github.com/Microsoft/openenclave
-
[24]
https://github.com/OP-TEE/build
OP-TEE Build on Github. https://github.com/OP-TEE/build. Accessed: 2018-12-04
work page 2018
-
[25]
https://github.com/OP-TEE/OP-TEE_website/tree/ master/faq
OP-TEE FAQ on Github. https://github.com/OP-TEE/OP-TEE_website/tree/ master/faq. Accessed: 2018-12-04
work page 2018
-
[26]
https://github.com/OP-TEE/optee_os
OP-TEE OS on Github. https://github.com/OP-TEE/optee_os. Accessed: 2018-12-04
work page 2018
-
[27]
https://www.op-tee.org/ docs/rpi3/
OP-TEE Raspberry 3B platform specific documentation. https://www.op-tee.org/ docs/rpi3/
-
[28]
https://github.com/OP-TEE/optee_test
OP-TEE sanity testsuite on Github. https://github.com/OP-TEE/optee_test. Ac- cessed: 2018-12-04
work page 2018
-
[29]
https://github.com/OP-TEE/optee_os/blob/master/core/arch/ arm/kernel/generic_entry_a64.S
OP-TEE source. https://github.com/OP-TEE/optee_os/blob/master/core/arch/ arm/kernel/generic_entry_a64.S. Accessed: 2018-12-09
work page 2018
-
[30]
https://github.com/OP-TEE/optee_client/tree/ master/tee-supplicant
OP-TEE Supplicant on Github. https://github.com/OP-TEE/optee_client/tree/ master/tee-supplicant. Accessed: 2018-12-04
work page 2018
-
[31]
https://github.com/OP-TEE/optee_os/ blob/master/core/arch/arm/kernel/thread.c#L150
OPTEE-OS kernel thread.c init canaries. https://github.com/OP-TEE/optee_os/ blob/master/core/arch/arm/kernel/thread.c#L150. 18 Julien Amacher and Valerio Schiavoni
-
[32]
http://www.chargerlab.com/archives/536.html
POWER-Z KM001C. http://www.chargerlab.com/archives/536.html
- [33]
-
[34]
https://git.linaro.org/virtualization/ qemu-tz.git
QEMU with WIP TrustZone Support. https://git.linaro.org/virtualization/ qemu-tz.git
-
[35]
https://github.com/OP-TEE/optee_os/ issues/1523
Shared memory size bigger than 1MB. https://github.com/OP-TEE/optee_os/ issues/1523
-
[36]
https://kernel.ubuntu.com/˜cking/stress-ng/
Stress-NG. https://kernel.ubuntu.com/˜cking/stress-ng/. Accessed: 2019-20-01
work page 2019
-
[37]
https://github.com/ OP-TEE/optee_os/issues/2577
TEE BigIntAdd fails when dest=op OP-TEE OS Issue #2577. https://github.com/ OP-TEE/optee_os/issues/2577
-
[38]
https://www.trustonic.com/solutions/ trustonic-solutions-iot
TRUSTSONIC. https://www.trustonic.com/solutions/ trustonic-solutions-iot
-
[39]
https://github.com/OP-TEE/optee_os/ issues/2178
Using more than 1Mb with TEE Malloc. https://github.com/OP-TEE/optee_os/ issues/2178
-
[40]
https://www.vmware.com/products/esxi-and-esx.html
VMware ESXi. https://www.vmware.com/products/esxi-and-esx.html
-
[41]
https://www.ibm.com/developerworks/library/ l-cpufreq-3/
Workloads and governor effects. https://www.ibm.com/developerworks/library/ l-cpufreq-3/
-
[42]
ARM® CoreLink™ TZC-400 TrustZone®Address Space Controller
ARM. ARM® CoreLink™ TZC-400 TrustZone®Address Space Controller. 2014
work page 2014
-
[43]
SMC CALLING CONVENTION System Software on ARM® Platforms
ARM Limited. SMC CALLING CONVENTION System Software on ARM® Platforms. 2016
work page 2016
-
[44]
M. Barbosa, S. B. Mokhtar, P. Felber, F. Maia, M. Matos, R. Oliveira, E. Riviere, V . Schi- avoni, and S. V oulgaris. SAFETHINGS: Data Security by Design in the IoT. InDependable Computing Conference (EDCC), 2017 13th European, pages 117–120. IEEE, 2017
work page 2017
-
[45]
H. Cho, P. Zhang, D. Kim, J. Park, C.-H. Lee, Z. Zhao, A. Doup ´e, and G.-J. Ahn. Prime+Count: Novel Cross-world Covert Channels on ARM TrustZone. In Proceedings of the 34th Annual Computer Security Applications Conference , ACSAC ’18, pages 441–452, New York, NY , USA, 2018. ACM
work page 2018
-
[46]
CPU frequency and voltage scaling code in the Linux(tm) kernel
Dominik Brodowski. CPU frequency and voltage scaling code in the Linux(tm) kernel
-
[47]
Leading the IoT Gartner Insights on How to Lead in a Connected World
Gartner. Leading the IoT Gartner Insights on How to Lead in a Connected World. 2017
work page 2017
-
[48]
P. Greenhalgh. big.LITTLE processing with arm cortex-a15 & cortex-a7. ARM White paper, 17, 2011
work page 2011
-
[49]
Z. Hua, J. Gu, Y . Xia, H. Chen, B. Zang, and H. Guan. vTZ: Virtualizing ARM trustzone. In In Proc. of the 26th USENIX Security Symposium, 2017
work page 2017
- [50]
-
[51]
M. Lipp, M. T. Aga, M. Schwarz, D. Gruss, C. Maurice, L. Raab, and L. Lamster. Nethammer: Inducing Rowhammer Faults through Network Requests. arXiv preprint arXiv:1805.04956, 2018
work page internal anchor Pith review Pith/arXiv arXiv 2018
-
[52]
B. McGillion, T. Dettenborn, T. Nyman, and N. Asokan. Open-TEE–An Open Virtual Trusted Execution Environment. In Proceedings of the 2015 IEEE Trustcom/BigDataSE/ISPA-Volume 01, pages 400–407. IEEE Computer Society, 2015
work page 2015
-
[53]
Implementing practical electrical glitching attacks, 2015
ncc group. Implementing practical electrical glitching attacks, 2015
work page 2015
-
[54]
TRUSTED LITTLE KERNEL (TLK) FOR TEGRA: FOSS EDITION
nVidia. TRUSTED LITTLE KERNEL (TLK) FOR TEGRA: FOSS EDITION. 2015
work page 2015
-
[55]
A. K. Reddy, P. Paramasivam, and P. B. Vemula. Mobile secure data protection using eMMC RPMB partition. In Computing and Network Communications (CoCoNet), 2015 Interna- tional Conference on, pages 946–950. IEEE, 2015
work page 2015
- [56]
-
[57]
G. Technology. TEE Internal Core API Specification Version 1.1.2.50. 2018. On The Performance of ARM TrustZone 19 A Appendix: Extending the Kernel First, a new file containing the syscall used to retrieve the processor temperaturegetc- putemp is created. 1 // populates temp with the CPU temperature in [m degC] 2 SYSCALL_DEFINE1(getcputemp, unsigned long *, ...
work page 2018
discussion (0)
Sign in with ORCID, Apple, or X to comment. Anyone can read and Pith papers without signing in.