Commit Graph

1013 Commits

Author SHA1 Message Date
wdfk-prog 8e54e31c74
[IDLE] 修改注释,避免造成歧义 (#9010) 2024-05-29 22:18:13 +08:00
Shell f17f994f8c
[arm64] add hw thread self (#8942)
* [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 <smokewood@qq.com>

* 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 <smokewood@qq.com>
2024-05-28 14:27:55 +08:00
Shell 6b12bce22f
[quality] fixup compiler warning (#8961)
Signed-off-by: Shell <smokewood@qq.com>
2024-05-21 19:47:42 +08:00
zms123456 6101f1fd29
[components][driver]add isr statistics (#8955)
add isr statistics
2024-05-21 09:01:42 +08:00
Shell e82c53559b
[utest] add device find (#8959)
* [utest] add device find

Signed-off-by: Shell <smokewood@qq.com>

* fixup: add test

* fixup: ptr aliasing

* quality: meaning parameter

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-21 08:56:35 +08:00
Shell f2d6325b43
[smart] select console device dynamically (#8949)
* [smart] select console device dynamically

- Fixed compiler warning on terminal subsystem for
  `components/lwp/terminal/terminal.h`
- Updated default console setup to dynamically select an appropriate tty
  device based on the configured console device name.

Signed-off-by: Shell <smokewood@qq.com>

* fixup: remove useless codes

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-17 13:19:00 +08:00
Shell e25fc8b511
[libcpu/arm64] add C11 atomic ticket spinlock (#8882)
* [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 <smokewood@qq.com>

* fixup: RT_CPUS_NR

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-16 15:45:12 +08:00
Shell 989cc61f48
[hrtimer] fixup use-after-free (#8928)
Signed-off-by: Shell <smokewood@qq.com>
2024-05-11 08:53:42 +08:00
Shell 017b2a5a44
[smart] fixup arm64 aspace switch (#8925)
* [smart] fixup arm64 aspace switch

Signed-off-by: Shell <smokewood@qq.com>

* fixup: arm add arch_kernel_mmu_table_get

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-10 09:17:19 +08:00
geniusgogo f770f543a6 fix RT_DEBUGING_ASSERT 2024-05-09 00:33:32 -04:00
Meco Man 0871140759 [kernel][timer] remove wordy logs 2024-05-07 21:50:52 -04:00
wdfk-prog 7879986e38
[timer] The rt_timer_check and _soft_timer_check functions are merged (#8884) 2024-05-08 09:27:38 +08:00
Shell 48bd0e49f2
[ipc] support of lockless rt_completion (#8887)
* [ipc] lockless rt_completion implementation

The new rt_completion implemented by lockless algorithm can improve timer resolution for up to ~12%, compare to sem IPC.

Signed-off-by: Shell <smokewood@qq.com>

* fixup: error

* remove useless changes

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-08 09:25:57 +08:00
Shell 6977cf9101
[src] add rt_hw_cpu_id() wrapper API (#8894)
* [src] add rt_hw_cpu_id() wrapper API

rt_hw_cpu_id() is an unsafe API which should not be used by most codes
directly. It's error-prone because it must be used in proper context,
otherwise it can lead to errors and unpredictable behavior.

This patch adds a wrapper API for rt_hw_cpu_id() to address this risk.
It includes the context-checking functionality and provides a safer
alternative for obtaining CPU IDs, ensuring that it is used correctly
within the appropriate context.

Signed-off-by: Shell <smokewood@qq.com>

* fixup UMP

* update API & comment

* ci: cpp_check

---------

Signed-off-by: Shell <smokewood@qq.com>
2024-05-08 09:22:09 +08:00
zms123456 9112dffec8
[src][Kconfig]make RT_ASSERT independent of RT_USING_DEUBG 2024-05-06 20:40:30 -04:00
Shell 2c9b7c10b9
[kernel] add rt_thread_close()
* [thread] Add rt_thread_close()

This patch introduces a new function `rt_thread_close()` to enhances the
usability and maintainability by providing a dedicated mechanism for
closing threads.

- A new function `rt_thread_close()` is added to the API, providing a
  standardized approach for closing threads.
- The `rt_thread_close()` function removes a thread from the thread
  queue, updates its status to indicate closure, and performs the thread
  timer detaching which is a embedded timer in thread object.
- Additionally, the `rt_thread_detach()` function is modified to utilize
  `rt_thread_close()` internally, streamlining the thread detachment
  process.

Signed-off-by: Shell <smokewood@qq.com>
2024-05-01 00:49:09 -04:00
zms123456 fa1c473a96
[src][thread]bind cpu fixup (#8872)
bind cpu fixup
2024-04-28 15:19:50 +08:00
wdfk-prog 52ebdf6bdb
[mem]When using SLAB, calls to memcheck and memtrace will be abnormal (#8862)
* [mem]When using SLAB, calls to memcheck and memtrace will be abnormal

* [mem]The memtrace printing system does not match the display
2024-04-27 18:27:33 +08:00
Meco Man d68e47eb25 [klibc] organize and renmae macros, and add CI check 2024-04-20 21:52:49 -04:00
Meco Man 792c3c0603 [kernel] move errno functions into klibc 2024-04-20 00:57:17 -04:00
Shell d1bb01621b fixup: add Kconfig option 2024-04-19 21:30:12 -04:00
Shell 8c4db32d04 fixup: debug 2024-04-19 21:30:12 -04:00
Shell 451ac03965 add cpu up 2024-04-19 21:30:12 -04:00
wdfk-prog d8dcc05174 [mem] Remove useless code And Update mem documentation 2024-04-18 20:04:15 -04:00
Meco Man a0735dcb11 upgrade RT-Thread version to v5.2.0 2024-04-16 23:04:24 -04:00
Yaochenger 46f464a5e0
[fix] 添加创建线程函数时间片参数检查 (#8807) 2024-04-16 21:59:08 +08:00
zms123456 6ad0b2bd09
[components][drivers]fix workqueue bug
fix workqueue bug
2024-04-15 23:15:37 -04:00
wdfk-prog acf4487177 [mem] Modify macro definitions for better code reading 2024-04-13 08:04:32 -04:00
sp-cai e6a921d44a
[src][scheduler]修复 rt_exit_critical_safe 函数错误地使用了返回
函数 rt_exit_critical_safe 应是没有返回值的,rt_exit_critical() 也是没返回值的
2024-04-10 01:10:47 -04:00
posfilu c911ed4875 [kernel]SIGNAL节点分配失败应该返回错误 2024-04-02 20:32:39 -04:00
Meco Man efb7f2c1cf [gcc] add footprint information when compiling 2024-03-30 02:07:34 -04:00
Shell 83e95bdff4
sync smart & dfs (#8672)
Signed-off-by: xqyjlj <xqyjlj@126.com>
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-03-28 23:42:56 +08:00
Shell f143ea2b31
[kernel] remove redundant _scheduler_stack_check 2024-03-20 22:26:41 -04:00
Meco Man e81978c5dc [kernel] move std libc related to rtklibc.h 2024-03-20 22:26:11 -04:00
Meco Man 727629b86b [kernel] fix marcos warning in Keil5 2024-03-19 08:08:33 -04:00
Meco Man d3d4b44b92 [kernel][timer] remove unused _soft_timer_status
which caused warnings when using Keil5
2024-03-19 12:57:16 +08:00
Meco Man e0ce62e4ca [kernel][timer] remove _timerhead_idx which is unused 2024-03-06 20:38:06 -05:00
Meco Man c95ffcc494 [ci][kernel] only GCC use strict checking 2024-03-03 14:39:20 -05:00
BreederBai cb154ae30a
[kservice]:修复关闭RT_USING_CONSOLE和RT_USING_FINSH编译有警告的BUG (#8575) 2024-03-03 23:12:35 +08:00
Shell 53754ff50a
[fixup] check NULL pointer before access (#8573)
Signed-off-by: Shell <smokewood@qq.com>
2024-03-02 16:05:19 +08:00
Meco Man dee05d2c42
[kservice] 完善rt_vsnprintf (#8558) 2024-02-25 00:11:28 +08:00
Shell 71560bafb5
🎯 Sync smart & scheduler codes (#8537)
Signed-off-by: Shell <smokewood@qq.com>
Co-authored-by: xqyjlj <xqyjlj@126.com>
2024-02-23 17:49:15 +08:00
Yuqiang Wang c6bdee3c50
[ci] open ci check with function declaration warning (#8546) 2024-02-20 22:45:04 -05:00
Meco Man bd228eb9c5 [ci] fix errors under strick compiling mode 2024-02-20 08:39:05 +08:00
Meco Man 4bec5f9b8f [kernel][SConscript] add strict warning cflags 2024-02-20 08:39:05 +08:00
Meco Man 2748a6ada4 [kernel] fix some strict compiling warnings 2024-02-19 01:56:21 -05:00
Bernard Xiong 186fbbf851
Change copyright information to 2024 🐉 (#8532) 2024-02-10 00:19:13 +08:00
Shell e4be19eb8f [style] renaming to _console_take/release 2024-01-16 00:59:18 +08:00
Shell f6fce5f8d7 [kservice] MT-safe output support (kprintf/kputs)
Signed-off-by: Shell <smokewood@qq.com>
2024-01-16 00:59:18 +08:00
Shell 8da86e718f [cpu] remove assert for recursion for #8475
Signed-off-by: Shell <smokewood@qq.com>
2024-01-12 00:12:52 +08:00