rt-thread-official/libcpu/aarch64/common/include
Shell 5796e0d646 feat: arm64: update thread self on sp-switch
This patch improves the atomicity of context switching by ensuring that
the stack pointer (sp) and thread self updates occur simultaneously.
This enhancement is crucial for maintaining thread safety and
preventing potential inconsistencies during context switches.

Changes:
- Modified `cpuport.h` to use `ARM64_THREAD_REG` for thread self access.
- Added an `update_tidr` macro in `context_gcc.S` to streamline thread ID
  updates.
- Adjusted `rt_hw_context_switch_to` and `rt_hw_context_switch` to call
  `update_tidr`, ensuring atomic updates during context switches.
- Cleaned up `scheduler_mp.c` by removing redundant thread self
  assignments.

Signed-off-by: Shell <smokewood@qq.com>
2024-10-11 00:09:01 -04:00
..
armv8.h feat: arm64: update thread self on sp-switch 2024-10-11 00:09:01 -04:00
asm-fpu.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
asm-generic.h feat: arm64: generic implementation of vector irq (#9336) 2024-08-27 00:45:12 -04:00
cache.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
context_gcc.h [libcpu/arm64] feat: Trimming General Context 2024-07-18 17:41:48 +08:00
cp15.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
cpu.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
cpu_ops_common.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
cpuport.h feat: arm64: update thread self on sp-switch 2024-10-11 00:09:01 -04:00
entry_point.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
gic.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
gicv3.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
gtimer.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
hypercall.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
interrupt.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
mmu.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
psci.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
setup.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
smccc.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
tlb.h [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
vector_gcc.h feat: smart: user space context optimization 2024-09-19 23:02:39 -04:00