改变 perf_event_mlock_kb 的后果

The consequences of changing perf_event_mlock_kb

我正在尝试了解更改 /proc/sys/kernel/perf_event_mlock_kb 的确切后果。

让我感到困惑的是,这两个来源都使用了两个不同的单位——页数和内存 Kb。同时,名称的后缀_kb暗示该文件定义了Kb的个数。

我的理解是否正确,该措辞暗示该数字应该由页面大小决定,如果我在具有两个 vCPU 的机器上将文件设置为 8046,那么 perf 将能够占用多达 16Mb 的内存事件缓冲区?

我认为内核文档缺少一个单元。

应该是 512 kiB + 1 页 = 516 kiB,匹配文件名和 perf 手册页。如果单位不同,实际的文件名将不会仍然命名为 _kb

cat /proc/sys/kernel/perf_event_mlock_kb 在我的系统上显示 516,所以这几乎可以确认它在 kiB 中。

number should be devisable by the page size

是的,在 x86 上,该数字应能被 4 整除,以使大小能被 4k 页面大小整除。

如果不是,内核可能会向上或向下舍入,IDK which.