<커널: v5.10>
부팅 과정에서 ftrace 로깅이 될 때 ftrace ring-buffer 사이즈가 충분해야 부팅 과정의
메시지를 ftrace에 저장할 수 있습니다. ring-buffer 사이즈가 작으면 메시지가 overwritten됩니다.
본 페이지에 소개된 패치를 적용하면 부팅 과정에서 ftracing ring-buffer 사이즈를 키울 수 있습니다.
commit 0deada593566918d6ac4a3e8df7bca8584fd83e1 (HEAD -> rpi-5.10.y)
Author: Austin Kim <austindh.kim@gmail.com>
Date: Mon Sep 20 14:52:54 2021 +0900
tracing: increase ftrace ring-buffer size
In case ftrace ring-buffer size is small,
ftrace message could be overwritten. As a result of this,
the useful ftrace message can be lost.
With this commit, we could increase ftrace ring-buffer size.
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
old mode 100644
new mode 100755
index b09c59806..8cb872543
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -6541,6 +6541,8 @@ tracing_entries_read(struct file *filp, char __user *ubuf,
return ret;
}
+#define TRACING_FTRACE_MAX_BUFFER_SIZE (4096 * 2)
+
static ssize_t
tracing_entries_write(struct file *filp, const char __user *ubuf,
size_t cnt, loff_t *ppos)
@@ -6558,6 +6560,10 @@ tracing_entries_write(struct file *filp, const char __user *ubuf,
if (!val)
return -EINVAL;
+ if( val < TRACING_FTRACE_MAX_BUFFER_SIZE ) {
+ val = TRACING_FTRACE_MAX_BUFFER_SIZE;
+ }
+
/* value is in KB */
val <<= 10;
ret = tracing_resize_ring_buffer(tr, val, tracing_get_cpu(inode));
'Core BSP 분석 > 리눅스 커널 핵심 분석' 카테고리의 다른 글
[리눅스커널] kimage_voffset를 T32으로 디버깅하기 (0) | 2023.05.07 |
---|---|
[리눅스커널] tracing: 파일 오픈 내역 확인하기 (0) | 2023.05.07 |
[리눅스커널] tracing: 부팅 과정에서 자동으로 ftrace 활성화하기 (0) | 2023.05.06 |
[리눅스커널] 커맨드 라인 추가 (0) | 2023.05.06 |
[리눅스커널] 라즈비안: 전체 ftrace 이벤트(Armv8: Aarch64) (0) | 2023.05.06 |