zephyr/arch
Jaxson Han 0f7bbff050 arch: arm64: Refine v8R AArch64 MPU regions switch
The current mechanism of the MPU region switching configures and
reprograms the regions (including inserting, splitting the dynamic
region, and flushing the regions to the registers) every time during the
context switch. This, not only causes a large usage of the kernel stack
but also a lower performance.

To improve it, move the configuration operations ahead to make sure the
context swtich only flushes the current thread regions to the registers
and does not configure the regions anymore. To achieve this, configure
the regions during any operations related to partitions (partition
add/remove, and domain add/remove thread), flush the sys_dyn_regions if
the current thread is the privileged thread, and flush the thread's own
regions if it's a user thread.

Signed-off-by: Jaxson Han <jaxson.han@arm.com>
2023-08-21 13:27:07 +02:00
..
arc kernel: spinlock: LOCKED -> K_SPINLOCK 2023-07-10 09:27:21 +02:00
arm arm: cortex_r: support recoverable data abort 2023-08-21 10:07:29 +02:00
arm64 arch: arm64: Refine v8R AArch64 MPU regions switch 2023-08-21 13:27:07 +02:00
common arch: common: use zephyr_library for all source files 2023-08-16 15:00:49 +02:00
mips include: types: remove ulong_t 2022-09-06 18:16:33 +02:00
nios2 arch: nios2: Remove unused absolute symbols 2023-04-18 10:51:28 -04:00
posix POSIX arch: Fix literal floating comparison in 32bit targets 2023-08-14 13:37:27 +00:00
riscv riscv: renames shadow variables 2023-08-10 08:14:12 +00:00
sparc arch: sparc: Remove unused absolute symbols 2023-04-18 10:51:28 -04:00
x86 x86-64: Early TLS initialization 2023-08-08 19:08:04 -04:00
xtensa arch: xtensa: Implement arch_float_enable&disable 2023-08-21 10:10:06 +02:00
CMakeLists.txt
Kconfig kernel: canaries: Allow using TLS to store it 2023-08-08 19:08:04 -04:00