summaryrefslogtreecommitdiff
path: root/src/scheduler_mp.c
AgeCommit message (Collapse)Author
2024-05-28[arm64] add hw thread self (#8942)Shell
* [libcpu] arm64: Add hardware thread_self support This patch introduces hardware-based thread self-identification for the AArch64 architecture. It optimizes thread management by using hardware registers to store and access the current thread's pointer, reducing overhead and improving overall performance. Changes include: - Added `ARCH_USING_HW_THREAD_SELF` configuration option. - Modified `rtdef.h`, `rtsched.h` to conditionally include `critical_switch_flag` based on the new config. - Updated context management in `context_gcc.S`, `cpuport.h` to support hardware-based thread self. - Enhanced `scheduler_mp.c` and `thread.c` to leverage the new hardware thread self feature. These modifications ensure better scheduling and thread handling, particularly in multi-core environments, by minimizing the software overhead associated with thread management. Signed-off-by: Shell <[email protected]> * fixup: address suggestion * fixup: rt_current_thread as global * scheduler: add cpu object for UP scheduler Also, maintain the rt_current_thread in cpu object on UP scheduler. --------- Signed-off-by: Shell <[email protected]>
2024-05-16[libcpu/arm64] add C11 atomic ticket spinlock (#8882)Shell
* [libcpu/arm64] add C11 atomic ticket spinlock Replace the former implementation of flag-based spinlock which is unfair Besides, C11 atomic implementation is more readable (it's C anyway), and maintainable. Cause toolchain can use their builtin optimization and tune for different micro-architectures. For example armv8.5 introduces a better instruction. The compiler can help with that when it knows your target platform in support of it. Signed-off-by: Shell <[email protected]> * fixup: RT_CPUS_NR --------- Signed-off-by: Shell <[email protected]>
2024-04-28[src][thread]bind cpu fixup (#8872)zms123456
bind cpu fixup
2024-04-19fixup: add Kconfig optionShell
2024-03-20[kernel] remove redundant _scheduler_stack_checkShell
2024-03-02[fixup] check NULL pointer before access (#8573)Shell
Signed-off-by: Shell <[email protected]>
2024-02-23🎯 Sync smart & scheduler codes (#8537)Shell
Signed-off-by: Shell <[email protected]> Co-authored-by: xqyjlj <[email protected]>
2024-02-20[ci] fix errors under strick compiling modeMeco Man
2024-01-09[kernel] fixup of data racing accessing percpu objects (#8475)Shell
Signed-off-by: Shell <[email protected]>
2024-01-02[kernel] support for hook listShell
Signed-off-by: Shell <[email protected]>
2023-12-27🐞 fix: fix rt_thread_delay, assert, deadlock (#8366)xqyjlj
2023-12-22✨ feat: spinlock should lock sched (#8360)xqyjlj
2023-10-30实现MPU抽象层 (#8080)tangzz98
- 为RT-Thread设计MPU抽象层,支持ARMV7-M,ARMV8-M架构,让用户使用MPU检测栈溢出等内存问题,实现线程内存隔离 - 在components/mp目录下提供通用的API,libcpu目录下提供各处理器架构的具体实现 - 在STM32U575 NUCLEO, STM32H75 NUCLEO开发板测试通过
2023-10-25🎈 perf: perf rt_hw_interrupt_disable/enable (#8042)xqyjlj
Signed-off-by: Shell <[email protected]> Co-authored-by: Shell <[email protected]>
2023-07-09[debug] remove RT_DEBUG_xxxMeco Man
remove RT_DEBUG_THREAD RT_DEBUG_SCHEDULER RT_DEBUG_IPC RT_DEBUG_TIMER RT_DEBUG_IRQ RT_DEBUG_MEM RT_DEBUG_SLAB RT_DEBUG_MEMHEAP
2023-06-29[include][dbg]update: no longer use RT_DEBUG_LOG in rtdebug.h (#7750)Shicheng Chu
2023-04-14[HUST CSE][document] Fix some comments, invalid grouping commands and ↵Xu Biang
warnings in Doxygen. 将Doxygen输入文件(由Doxyfile中的INPUT定义)中的失效Doxygen分组指令(如/*@*/和/*@}*/)更改为有效的分组指令(如/**@*/和/**@}*/);(此处只对INPUT中的文件做了修改,bsp目录下和libcpu目录下存在近万个失效的Doxygen分组指令,但由于不作为文档的输入文件且这些文件过于庞大老旧,没有对这些文件中的无效指令做修改) 将图片文件统一放入了images目录下; 修改了Doxyfile和部分Doxygen注释,使得Doxyfile能够定位到新的代码路径且不受重复实现的影响; 解决了一些注释中的参数名不匹配、参数多余/缺失等问题。
2023-04-04[kernel] 将rt_thread结构体改为显式继承rt_object (#7131)Shicheng Chu
2023-03-29[src][scheduler] Split scheduler.c (#7103)螺丝松掉的人