更改perf_event_mlock_kb的后果

时间:2019-03-31 02:29:40

标签: linux performance linux-kernel perf

我试图了解更改/proc/sys/kernel/perf_event_mlock_kb的确切结果。

  • 性能man page表示

      

    非特权用户可以锁(2)的最大页面数。默认值为516(kB)。

  • kernel documentation

      

    每个cpu环形缓冲区的控制大小不再计入mlock限制。   默认值为512 + 1页

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

我的理解是正确的,该措辞暗示该数字应按页面大小而定,如果我在具有两个vCPU的计算机上将文件设置为8046,则perf最多可以为该事件占用16Mb的内存缓冲区?

1 个答案:

答案 0 :(得分:3)

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

应为512 kiB + 1页= 516 kiB,匹配文件名和性能手册页。如果实际的文件名具有不同的单位,则仍不会命名为_kb

我系统上的

cat /proc/sys/kernel/perf_event_mlock_kb显示516,因此几乎可以确认它在kiB中。

  

数字应根据页面大小而定

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

如果不是,则内核大概四舍五入,IDK取整。