我希望在Android设备(Nexus 5)上有一个大型日志缓冲区来满足我的日志记录需求。通过将CONFIG_LOG_BUF_SHIFT
更改为22并编译内核并且一切正常,我已经将日志缓冲区大小增加到4MiB。但是,如果我将此值设置为23或更多,我会在内核日志中收到这些错误消息:
<3>[ 831.843405] audit: *NO* daemon at audit_pid=3115
<4>[ 831.843468] audit: audit_lost=1 audit_rate_limit=4000 audit_backlog_limit=8192
<3>[ 831.843584] audit: auditd disappeared
似乎auditd不断重启:
<38>[ 18.793725] logd.auditd: start
<38>[ 23.835792] logd.auditd: start
<38>[ 28.854019] logd.auditd: start
答案 0 :(得分:0)
SLUB内核分配器的大小限制为(1UL << (PAGE_SHIFT + MAX_ORDER - 1)) = (1UL << 22)
,即4MB。为了分配更多空间,您应该增加2个定义之一。通过在内核配置中启用64K页,可以将第一个从12个增加到16个,使用64K页和配置TRANSPARENT_HUGEPAGE
,可以将第二个从11个增加到14个。