Description:[feature] support customized hilog ring buffer size
Change-Id: I5d23deaada5939bbb6fb57505f72c2348bd6afe9 Signed-off-by: shenchenkai <shenchenkai@huawei.com>
This commit is contained in:
parent
62aa4aa0b1
commit
12cc392f46
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue