OrangeDog Asked: 2019-02-13 09:53:51 +0800 CST2019-02-13 09:53:51 +0800 CST 2019-02-13 09:53:51 +0800 CST 获取 SuperPage 大小 772 似乎有些 BSD 系统的超级页面大小为 2MB,而另一些则为 4MB。我没见过其他人。有没有办法告诉可用的超级页面大小是多少?理想情况下从命令行,而不必启用它们。 osx freebsd 2 个回答 Voted Claus Andersen 2019-02-14T02:38:32+08:002019-02-14T02:38:32+08:00 Alan L. Cox 做了一些有趣的Opteron 基准测试,并且是原始超级页面论文(在 Usenix 2002 上发表)的合著者:实用、透明的操作系统对超级页面的支持 Superpages 于 2013 年在FreeBSD 7.2 for amd64 和 i386中引入 [amd64, i386] FreeBSD 虚拟内存子系统现在支持完全透明地使用超级页面作为应用程序内存;应用程序内存页面被动态提升或降级为超级页面,而无需对应用程序代码进行任何修改。此更改提供了大页面大小的好处,例如提高了虚拟内存效率和减少 TLB(翻译后备缓冲区)未命中,而没有应用程序更改和虚拟内存不灵活等缺点。这在默认情况下是禁用的,可以通过将 loader 可调参数设置vm.pmap.pg_ps_enabled为1. 2014 年,它被添加到FreeBSD 10.0 for ARMv6/v7。它动态支持 4KB 和 1MB 页面。修订版 25418声明vm.pmap.sp_enabled使用(设置在 中loader.conf)。如果您不使用 loader,请在sys/arm/arm/pmap-v6.c. Zbigniew Bodek 有一个很好的 BSDcan 演示文稿:Transparent Superpages Support for FreeBSD on ARM 您使用sysctl检查它: $ uname -rm 11.2-STABLE amd64 $ sysctl vm.pmap.pg_ps_enabled vm.pmap.pg_ps_enabled: 1 Linux 在 2011 年获得了内核版本 2.6.38的大页面(超级页面)支持。另请参阅巨页介绍。在 Linux 上(仅!)这是由hugeadm处理的,正如另一个答案中所暗示的那样。 至于 OS XI认为它是默认启用的,但我绝不是这方面的权威来源。似乎当他们测试时,他们只是尝试分配超级页面。我看不到检查是否启用了超级页面。 Best Answer OrangeDog 2019-02-14T04:52:41+08:002019-02-14T04:52:41+08:00 对于 XNU 和 Mach 内核(MacOS/Darwin),如果我正确读取标题,在 x86_64 上它始终为 2MB,否则不支持。 要动态执行此操作,您必须执行以下操作: echo "#include <mach/vm_statistics.h>" | gcc -dM -E - | grep VM_FLAGS_SUPERPAGE_SIZE_
Alan L. Cox 做了一些有趣的Opteron 基准测试,并且是原始超级页面论文(在 Usenix 2002 上发表)的合著者:实用、透明的操作系统对超级页面的支持
Superpages 于 2013 年在FreeBSD 7.2 for amd64 和 i386中引入
2014 年,它被添加到FreeBSD 10.0 for ARMv6/v7。它动态支持 4KB 和 1MB 页面。修订版 25418声明
vm.pmap.sp_enabled
使用(设置在 中loader.conf
)。如果您不使用 loader,请在sys/arm/arm/pmap-v6.c
. Zbigniew Bodek 有一个很好的 BSDcan 演示文稿:Transparent Superpages Support for FreeBSD on ARM您使用sysctl检查它:
Linux 在 2011 年获得了内核版本 2.6.38的大页面(超级页面)支持。另请参阅巨页介绍。在 Linux 上(仅!)这是由hugeadm处理的,正如另一个答案中所暗示的那样。
至于 OS XI认为它是默认启用的,但我绝不是这方面的权威来源。似乎当他们测试时,他们只是尝试分配超级页面。我看不到检查是否启用了超级页面。
对于 XNU 和 Mach 内核(MacOS/Darwin),如果我正确读取标题,在 x86_64 上它始终为 2MB,否则不支持。
要动态执行此操作,您必须执行以下操作: