提交 d9752abc 编写于 作者: O openharmony_ci 提交者: Gitee

!736 支持产品定制化hilog内核缓存大小

Merge pull request !736 from shenchenkai/OpenHarmony-3.0-LTS
......@@ -80,3 +80,19 @@ config HRTIMER_ENABLE
help
Enable High-resolution timer support
config HILOG
tristate "Hilog support"
default y
help
hilog buffer manager.
Hilog is a simple log manager for OpenHarmonyOS.
log string write to /dev/hilog, and the hilog driver copy it
to the ring buffer. Ring buffer can be read from userspace.
config HILOG_BUFFER_SIZE
int "hilog buffer size"
default 4096
help
Define the default ring buffer size of hilog
......@@ -41,7 +41,7 @@
#include "los_vm_lock.h"
#include "user_copy.h"
#define HILOG_BUFFER 4096
#define HILOG_BUFFER LOSCFG_HILOG_BUFFER_SIZE
#define DRIVER_MODE 0666
#define HILOG_DRIVER "/dev/hilog"
......@@ -255,6 +255,7 @@ static void HiLogCoverOldLog(size_t bufLen)
int retval;
struct HiLogEntry header;
size_t totalSize = bufLen + sizeof(struct HiLogEntry);
int dropLogLines = 0;
while (totalSize + g_hiLogDev.size > HILOG_BUFFER) {
retval = HiLogReadRingBuffer((unsigned char *)&header, sizeof(header));
......@@ -262,9 +263,13 @@ static void HiLogCoverOldLog(size_t bufLen)
break;
}
dropLogLines++;
HiLogBufferDec(sizeof(header));
HiLogBufferDec(header.len);
}
if (dropLogLines > 0) {
dprintf("hilog ringbuffer full, drop %d line(s) log", dropLogLines);
}
}
int HiLogWriteInternal(const char *buffer, size_t bufLen)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册