rt-thread-official/libcpu/aarch64/common
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
..
include feat: arm64: update thread self on sp-switch 2024-10-11 00:09:01 -04:00
mp feat: arm64: update thread self on sp-switch 2024-10-11 00:09:01 -04:00
up feat: smart: user space context optimization 2024-09-19 23:02:39 -04:00
SConscript [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
atomic_aarch64.c [libcpu/aarch64]修改atomic实现 2024-09-03 18:14:06 -04:00
backtrace.c [libcpu/arm64] feat: Trimming General Context 2024-07-18 17:41:48 +08:00
cache.S [fixup] add cache maintenance ops; 2023-02-21 08:48:49 +08:00
cache_ops.c [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
cpu.c [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
cpu_gcc.S [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
cpu_psci.c [libcpu][aarch64] 使用设备树对CPU进行初始化 (#8221) 2023-11-28 14:20:11 +08:00
cpu_spin_table.c [libcpu][aarch64] 使用设备树对CPU进行初始化 (#8221) 2023-11-28 14:20:11 +08:00
cpuport.c [DM] Extended drivers MISC interface 2024-09-06 17:45:03 -04:00
exception.c Sync dfs lwp (#8123) 2023-10-17 13:07:59 +08:00
gic.c [fix]:修复GICv2、GICv3中断触发模式设置无效的问题 (#7358) 2023-04-24 17:06:31 +08:00
gicv3.c [bsp/phytium]中断相关修改 (#8742) 2024-04-11 00:09:17 +08:00
gtimer.c 🐞 fix(ktime): fix wrong boottime 2023-07-27 11:35:29 +08:00
hypercall.c [smart/aarch64] code sync (#6750) 2022-12-20 17:49:37 +08:00
interrupt.c [components][drivers] fix posix tty, and add more baudrate (#8683) 2024-04-01 21:23:04 +08:00
mmu.c [libcpu][aarch64]mmu log fixup (#9078) 2024-06-26 14:37:05 +08:00
psci.c [libcpu][aarch64] 使用设备树对CPU进行初始化 (#8221) 2023-11-28 14:20:11 +08:00
setup.c smp 2024-09-24 09:56:30 +08:00
smccc.S [smart/aarch64] code sync (#6750) 2022-12-20 17:49:37 +08:00
stack.c [libcpu/arm64] feat: Trimming General Context 2024-07-18 17:41:48 +08:00
stack_gcc.S [libcpu/arm64] feat: Trimming General Context 2024-07-18 17:41:48 +08:00
startup_gcc.S [format] cleanup libcpu/aarch64 (#8950) 2024-06-28 00:23:09 +08:00
trap.c [kservice] Enhance support for backtrace service (#9037) 2024-06-13 08:55:53 +08:00
vector_gcc.S feat: smart: user space context optimization 2024-09-19 23:02:39 -04:00