xuxingliang
46b1c8605a
sched/note: add note for wdog module
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-10-25 19:04:02 +08:00
xuxingliang
dceb26c7b2
drivers/segger: add heap data plot
...
Add heap current used to note.
Plot it in segger sysview data plot.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2024-10-25 19:04:02 +08:00
xuxingliang
c2bcc56546
sched/note: specify note event for heap instrumentation
...
1. Add NOTE_HEAP_ prefix for heap note event.
2. Use note type as heap instrumentation parameter.
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2024-10-25 19:04:02 +08:00
yinshengkai
2c0e2ac36b
note: add memory tracing event support
...
Record all memory allocation and release, save to ram, used to analyze memory allocation rate and memory usage
Its absolute value is not trustworthy because the memory will be allocated in thread A and released in thread B
netinit-5 [0] 0.105984392: tracing_mark_write: C|5|Heap Usage|96|free: heap: 0x606000000020 size:24, address: 0x603000000370
netinit-5 [0] 0.105996874: tracing_mark_write: C|5|Heap Usage|24|free: heap: 0x606000000020 size:72, address: 0x6070000008e0
nsh_main-4 [0] 3.825169408: tracing_mark_write: C|4|Heap Usage|2177665|free: heap: 0x606000000020 size:424, address: 0x614000000840
nsh_main-4 [0] 3.825228525: tracing_mark_write: C|4|Heap Usage|14977|free: heap: 0x606000000020 size:2162688, address: 0x7f80a639f800
nsh_main-4 [0] 3.825298789: tracing_mark_write: C|4|Heap Usage|15189|malloc: heap: 0x606000000020 size:20, address: 0x6030000003a0
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
2024-10-25 19:04:02 +08:00
xuxingliang
17cbaadce8
task: use get_task_name where possible
...
Signed-off-by: xuxingliang <xuxingliang@xiaomi.com>
2024-10-25 19:04:02 +08:00
yinshengkai
1c8d0bfdc7
note: add ringbuffer aligned access handle
...
Fix ubsan warning that writes need to be aligned to memory boundaries when writing data
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2024-10-25 19:04:02 +08:00
hujun5
a4fece3450
spin_lock: inline spin_lock
...
test:
We can use qemu for testing.
compiling
make distclean -j20; ./tools/configure.sh -l qemu-armv8a:nsh_smp ;make -j20
running
qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic -machine virt,virtualization=on,gic-version=3 -net none -chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline -kernel ./nuttx
2024-07-15 02:29:30 +08:00
YAMAMOTO Takashi
81996900db
fix build with CONFIG_SCHED_INSTRUMENTATION_FUNCTION
2024-01-22 19:30:40 +08:00
anjiahao
7dfbd14eba
libc: add instrument api support
...
Add registration function instrumentation API,
which can achieve instrumentation of entering and
exiting functions through the compiler's functionality.
We can use CONFIG_ARCH_INSTRUMENT_ALL to add instrumentation for all
source, or add '-finstrument-functions' to CFLAGS for Part of the
source.
Notice:
1. use CONFIG_ARCH_INSTRUMENT_ALL must mark _start or entry noinstrument_function,
becuase bss not set.
2. Make sure your callbacks are not instrumented recursively.
use instrument_register to register entry function and exit function.
They will be called by the instrumented function
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2023-12-11 02:06:51 -08:00
yinshengkai
c3009d46e9
note: delete sched_note_flatten
...
When we record data and dump data, they are all executed within the system,
and there is no need to consider the issue of big or small endianness.
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-11-12 23:52:10 -08:00
yinshengkai
58c6b60df5
note: remove remaining event code
...
Some event-related codes were missed in the previous modification and have not been deleted.
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-10-17 09:07:06 +08:00
Xiang Xiao
f196d108bf
drivers/note: Change 0/1 to false/true
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-10-13 14:38:51 -04:00
yinshengkai
9c59ee7c58
note: optimize note performance and reduce lib_sprintf calls
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-10-12 00:15:14 +08:00
yinshengkai
ddb87d3b86
clock: replace all up_perf_xx with perf_xx
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-10-02 16:11:43 +02:00
dongjiuzhu1
29ddfd44a0
driver/note: dump irq handler address to trace
...
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2023-08-19 01:42:17 +08:00
yinshengkai
b106f032cb
drivers/note: add maximum channel number check
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-08-14 13:41:00 +08:00
yinshengkai
4cb2d7dc25
note: directly returns the taskname pointer
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-08-11 13:27:17 +08:00
yinshengkai
3ab4d4a113
drivers/noteram: reduce global variable references
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-08-04 06:48:48 -07:00
raiden00pl
7f6cb66dc0
note_driver.c: fix warning
...
CC: note/note_driver.c note/note_driver.c:180:19: warning: 'g_note_lock' defined but not used [-Wunused-variable]
180 | static spinlock_t g_note_lock;
|
2023-08-02 08:05:37 -07:00
yinshengkai
a297ff61f5
drivers/note: replace sched_note_filter_dump to sched_note_filter_tag
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-04-19 02:53:34 +08:00
yinshengkai
b3e1004658
sched_note: add function auto-tracing
...
After enabling this option, you can automatically trace the function instrumentation without adding tracepoint manually.
This is similar to the Function Trace effect of the linux kernel
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-04-10 11:04:24 -03:00
yinshengkai
9ecaa022c8
note: fix assignment warning
...
note/note_driver.c:154:7: warning: unsigned conversion from ‘int’ to ‘unsigned char’ changes value from ‘65535’ to ‘255’ [-Woverflow]
154 | , CONFIG_SCHED_INSTRUMENTATION_CPUSET
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-03-21 12:13:38 -03:00
yinshengkai
d73fb5ca21
note: fix sched_note_suspend logic error
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-03-21 12:13:38 -03:00
yinshengkai
67461175fe
note: support note filtering at runtime
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-03-01 22:09:41 +08:00
yinshengkai
9ed1519cea
note: handle tcb is empty, so that it can also record before the driver initialization
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-02-24 14:07:33 +08:00
yinshengkai
29a7d267fb
note: correct systime with perf count
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-02-23 22:30:07 +08:00
yinshengkai
55ce5d0511
note: remove SCHED_INSTRUMENTATION_HIRES
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-02-23 22:30:07 +08:00
chao an
ee1e1108a7
drivers/note: fix build break by note rename change
...
Regression by:
| commit ee24396d77
| Author: Xiang Xiao <xiaoxiang@xiaomi.com>
| Date: Tue Feb 14 01:11:48 2023 +0800
|
| drivers/note: Change DRIVER_NOTExxx to DRIVERS_NOTExxx
|
| follow other driver config style
|
| Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Signed-off-by: chao an <anchao@xiaomi.com>
2023-02-20 16:19:57 +08:00
pengyiqiang
b1773934fe
note_driver: fix build error
...
note/note_driver.c: In function 'note_isenabled':
note/note_driver.c:278:7: error: invalid type argument of unary '*' (have 'int')
278 | if (CPU_ISSET(&g_note_filter.mode.cpuset, this_cpu()) == 0)
| ^~~~~~~~~
note/note_driver.c:278:7: error: invalid operands to binary << (have 'int' and 'volatile cpu_set_t *' {aka 'volatile unsigned char *'})
278 | if (CPU_ISSET(&g_note_filter.mode.cpuset, this_cpu()) == 0)
| ^~~~~~~~~
| |
| volatile cpu_set_t * {aka volatile unsigned char *}
Signed-off-by: pengyiqiang <pengyiqiang@xiaomi.com>
2023-02-01 14:30:33 +08:00
yinshengkai
77466742c7
drivers/segger: register sysview to note drivers list
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-01-05 22:04:52 +08:00
Xiang Xiao
98ab55ef68
drivers/note: Replace the scritical section with spin_xxx_wo_note
...
to avoid to generate the unexpected schedule information
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2023-01-04 00:21:18 +02:00
Xiang Xiao
cc9166274a
drivers/note: Fix the mismatch of va_end call
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-31 14:57:47 +02:00
yinshengkai
64b6df42a4
drivers/note: register notelog device
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-30 22:21:12 +08:00
yinshengkai
bc7c520eca
drivers/note: add note_syscall_enter parameter list
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-29 09:25:54 -03:00
yinshengkai
dd32eccfc3
drivers/note: Move taskname related functions to note_driver.c
...
so all note drivers can retrieve the task name even after the task exit
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-26 15:03:57 +08:00
yinshengkai
6f66c0ea0b
drivers/note: sched_note support mulit-channel
...
call callbacks for different channels in sched_note_*
noteram channel is enabled by default
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-17 19:41:21 +08:00
Xiang Xiao
06842c824a
sched/note: Change sched_note_[begin|end] to macro
...
improve the speed
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-16 12:20:53 +02:00
yinshengkai
552cf4b549
merge sched_note_spinxx into sched_note_spincommon
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2022-12-16 17:03:53 +08:00
Xiang Xiao
03f07effc9
drivers/note: Fix the style issue
...
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-14 21:24:13 +02:00
Xiang Xiao
126c93015f
drivers/node: Rename sched_note.c to to note_driver.c
...
prepare to support the multiple note driver
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-14 21:24:13 +02:00
Xiang Xiao
d7307ef26c
drivers/node: Rename note_register to note_initialize
...
prepare to support the multiple note driver
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-14 21:24:13 +02:00
chao.an
e04ccba78a
note/sysview: add Segger System View support
...
Reference:
https://www.segger.com/products/development-tools/systemview
https://github.com/SEGGERMicro/SystemView
https://github.com/SEGGERMicro/RTT
Signed-off-by: chao.an <anchao@xiaomi.com>
2022-01-29 17:26:04 +08:00
Nakamura, Yuuichi
6efecd2105
Add notectl driver
2020-10-06 03:26:46 +08:00
Xiang Xiao
77ae03788a
note: Rename note driver to noteram driver
...
to reflect this is just a normal note driver with ram buffer
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-09-15 14:55:22 +08:00
Xiang Xiao
0c3930ba11
sched: Rename note_add to sched_note_add
...
to better match other sched_note_* function
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-09-12 08:42:30 -07:00
Xiang Xiao
952af92690
sched/note: Move the circle buffer code to driver
...
so the format code can be shared by different transport
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-09-07 11:54:10 +08:00
Xiang Xiao
f99719e260
Move note driver from drivers/syslog to drivers/note
...
it's better to put the note transport layer into a common folder
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-09-07 11:54:10 +08:00