No description
This adds a new kconfig and corresponding code to allow flushing auto-refill data TLBs when page tables are swapped (e.g. during context switching). This is mainly used to avoid multi-hit TLB exception raised by certain memory access pattern. If memory is only marked for user mode access but not inside a memory domain, accessing that page in kernel mode would result in a TLB being filled with kernel ASID. When going back into user mode, access to the memory would result in another TLB being filled with the user mode ASID. Now there are two entries on the same memory page, and the multi-hit TLB exception will be raised if that memory page is accessed. This type of access is better served using memory partition and memory domain to share data. However, this type of access is not prohibited but highly discouraged. Wrapping the code in kconfig is simply because of the execution penalty as there will be unnecessary TLB refilling being done. So only enable this if necessary. Fixes #88772 Signed-off-by: Daniel Leung <daniel.leung@intel.com> |
||
---|---|---|
.github | ||
arch | ||
boards | ||
cmake | ||
doc | ||
drivers | ||
dts | ||
include/zephyr | ||
kernel | ||
lib | ||
misc | ||
modules | ||
samples | ||
scripts | ||
share | ||
snippets | ||
soc | ||
submanifests | ||
subsys | ||
tests | ||
.checkpatch.conf | ||
.clang-format | ||
.codechecker.yml | ||
.codecov.yml | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.gitlint | ||
.mailmap | ||
.ruff-excludes.toml | ||
.ruff.toml | ||
.yamllint | ||
CMakeLists.txt | ||
CODE_OF_CONDUCT.md | ||
CODEOWNERS | ||
CONTRIBUTING.rst | ||
Kconfig | ||
Kconfig.constants | ||
Kconfig.zephyr | ||
LICENSE | ||
MAINTAINERS.yml | ||
README.rst | ||
SDK_VERSION | ||
VERSION | ||
version.h.in | ||
west.yml | ||
zephyr-env.cmd | ||
zephyr-env.sh |
.. raw:: html <a href="https://www.zephyrproject.org"> <p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="doc/_static/images/logo-readme-dark.svg"> <source media="(prefers-color-scheme: light)" srcset="doc/_static/images/logo-readme-light.svg"> <img src="doc/_static/images/logo-readme-light.svg"> </picture> </p> </a> <a href="https://bestpractices.coreinfrastructure.org/projects/74"><img src="https://bestpractices.coreinfrastructure.org/projects/74/badge"></a> <a href="https://scorecard.dev/viewer/?uri=github.com/zephyrproject-rtos/zephyr"><img src="https://api.securityscorecards.dev/projects/github.com/zephyrproject-rtos/zephyr/badge"></a> <a href="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml?query=branch%3Amain"><img src="https://github.com/zephyrproject-rtos/zephyr/actions/workflows/twister.yaml/badge.svg?event=push"></a> The Zephyr Project is a scalable real-time operating system (RTOS) supporting multiple hardware architectures, optimized for resource constrained devices, and built with security in mind. The Zephyr OS is based on a small-footprint kernel designed for use on resource-constrained systems: from simple embedded environmental sensors and LED wearables to sophisticated smart watches and IoT wireless gateways. The Zephyr kernel supports multiple architectures, including ARM (Cortex-A, Cortex-R, Cortex-M), Intel x86, ARC, Tensilica Xtensa, and RISC-V, SPARC, MIPS, and a large number of `supported boards`_. .. below included in doc/introduction/introduction.rst Getting Started *************** Welcome to Zephyr! See the `Introduction to Zephyr`_ for a high-level overview, and the documentation's `Getting Started Guide`_ to start developing. .. start_include_here Community Support ***************** Community support is provided via mailing lists and Discord; see the Resources below for details. .. _project-resources: Resources ********* Here's a quick summary of resources to help you find your way around: Getting Started --------------- | 📖 `Zephyr Documentation`_ | 🚀 `Getting Started Guide`_ | 🙋🏽 `Tips when asking for help`_ | 💻 `Code samples`_ Code and Development -------------------- | 🌐 `Source Code Repository`_ | 📦 `Releases`_ | 🤝 `Contribution Guide`_ Community and Support --------------------- | 💬 `Discord Server`_ for real-time community discussions | 📧 `User mailing list (users@lists.zephyrproject.org)`_ | 📧 `Developer mailing list (devel@lists.zephyrproject.org)`_ | 📬 `Other project mailing lists`_ | 📚 `Project Wiki`_ Issue Tracking and Security --------------------------- | 🐛 `GitHub Issues`_ | 🔒 `Security documentation`_ | 🛡️ `Security Advisories Repository`_ | ⚠️ Report security vulnerabilities at vulnerabilities@zephyrproject.org Additional Resources -------------------- | 🌐 `Zephyr Project Website`_ | 📺 `Zephyr Tech Talks`_ .. _Zephyr Project Website: https://www.zephyrproject.org .. _Discord Server: https://chat.zephyrproject.org .. _supported boards: https://docs.zephyrproject.org/latest/boards/index.html .. _Zephyr Documentation: https://docs.zephyrproject.org .. _Introduction to Zephyr: https://docs.zephyrproject.org/latest/introduction/index.html .. _Getting Started Guide: https://docs.zephyrproject.org/latest/develop/getting_started/index.html .. _Contribution Guide: https://docs.zephyrproject.org/latest/contribute/index.html .. _Source Code Repository: https://github.com/zephyrproject-rtos/zephyr .. _GitHub Issues: https://github.com/zephyrproject-rtos/zephyr/issues .. _Releases: https://github.com/zephyrproject-rtos/zephyr/releases .. _Project Wiki: https://github.com/zephyrproject-rtos/zephyr/wiki .. _User mailing list (users@lists.zephyrproject.org): https://lists.zephyrproject.org/g/users .. _Developer mailing list (devel@lists.zephyrproject.org): https://lists.zephyrproject.org/g/devel .. _Other project mailing lists: https://lists.zephyrproject.org/g/main/subgroups .. _Code samples: https://docs.zephyrproject.org/latest/samples/index.html .. _Security documentation: https://docs.zephyrproject.org/latest/security/index.html .. _Security Advisories Repository: https://github.com/zephyrproject-rtos/zephyr/security .. _Tips when asking for help: https://docs.zephyrproject.org/latest/develop/getting_started/index.html#asking-for-help .. _Zephyr Tech Talks: https://www.zephyrproject.org/tech-talks