zephyr/arch/arm64/core
Henri Xavier 45af717a66 arch/arm64: Implement ASID support in ARM64 MMU
Improves context-switch performance.

TLB invalidation and the nG bit are used conservatively. This could
be improved in future work.

Tested with tests/benchmarks/sched_userspace:

BEFORE:
```
Swapping  2 threads: 161562583 cyc & 1000000 rounds ->   1615 ns per ctx
Swapping  8 threads: 161569289 cyc & 1000000 rounds ->   1615 ns per ctx
Swapping 16 threads: 161649163 cyc & 1000000 rounds ->   1616 ns per ctx
Swapping 32 threads: 163487880 cyc & 1000000 rounds ->   1634 ns per ctx
```

AFTER:
```
Swapping  2 threads: 18129207 cyc & 1000000 rounds ->    181 ns per ctx
Swapping  8 threads: 49702891 cyc & 1000000 rounds ->    497 ns per ctx
Swapping 16 threads: 55898650 cyc & 1000000 rounds ->    558 ns per ctx
Swapping 32 threads: 58059704 cyc & 1000000 rounds ->    580 ns per ctx
```

Signed-off-by: Henri Xavier <datacomos@huawei.com>
2022-12-13 17:21:11 +09:00
..
cortex_r arch: arm64: mpu: remove unnecessary include 2022-06-05 14:48:40 +02:00
offsets arch: migrate includes to <zephyr/...> 2022-05-06 19:57:22 +02:00
xen asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
boot.h
cache.c arm64: cache: Rework cache API 2022-12-01 13:40:56 -05:00
CMakeLists.txt cache: Rework cache API 2022-12-01 13:40:56 -05:00
cpu_idle.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
fatal.c arm64: implement arch_system_halt 2022-11-23 11:37:08 +01:00
fpu.c smp: Move for loops to use arch_num_cpus instead of CONFIG_MP_NUM_CPUS 2022-10-21 13:14:58 +02:00
fpu.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
header.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
irq_init.c arch: migrate includes to <zephyr/...> 2022-05-06 19:57:22 +02:00
irq_manage.c arch: migrate includes to <zephyr/...> 2022-05-06 19:57:22 +02:00
irq_offload.c arch: migrate includes to <zephyr/...> 2022-05-06 19:57:22 +02:00
isr_wrapper.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
Kconfig arch: arm64: init VMPIDR_EL2 in z_arm64_el2_init 2022-09-09 16:36:37 +00:00
macro_priv.inc arm64: Add comment that arch_curr_cpu and get_cpu must be synced 2022-11-02 16:08:00 -05:00
mmu.c arch/arm64: Implement ASID support in ARM64 MMU 2022-12-13 17:21:11 +09:00
mmu.h
mmu.S arch/arm64: Implement ASID support in ARM64 MMU 2022-12-13 17:21:11 +09:00
prep_c.c smp: Convert #if to use CONFIG_MP_MAX_NUM_CPUS 2022-10-20 22:04:10 +09:00
reset.c arch: arm64: init VMPIDR_EL2 in z_arm64_el2_init 2022-09-09 16:36:37 +00:00
reset.S smp: Convert #if to use CONFIG_MP_MAX_NUM_CPUS 2022-10-20 22:04:10 +09:00
semihost.c
smccc-call.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
smp.c arm64: cache: Rework cache API 2022-12-01 13:40:56 -05:00
switch.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
thread.c arch: migrate includes to <zephyr/...> 2022-05-06 19:57:22 +02:00
tls.c arch: migrate includes to <zephyr/...> 2022-05-06 19:57:22 +02:00
userspace.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00
vector_table.S asm: update files with <zephyr/...> include prefix 2022-05-09 12:45:29 -04:00