1

我想在 Android 设备(Nexus 5)上为我的日志记录需要一个大的日志缓冲区。我已经通过更改为 22 并编译内核将日志缓冲区大小增加到 4MiB CONFIG_LOG_BUF_SHIFT,一切正常。但是,如果我将此值设置为 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
4

1 回答 1

0

SLUB 内核分配器的大小限制(1UL << (PAGE_SHIFT + MAX_ORDER - 1)) = (1UL << 22)为 4MB。为了分配更多空间,您应该增加 2 个定义之一。第一个可以通过在内核配置中启用 64K 页面从 12 提高到 16,第二个可以通过使用 64K 页面和配置从 11 提高到 14 TRANSPARENT_HUGEPAGE

于 2018-06-19T15:47:16.213 回答