Linux kernel 对ARMv5的Hugepage/Superpage支持

Linux kernel 对ARMv5的Hugepage/Superpage支持,linux-kernel,arm,mmu,Linux Kernel,Arm,Mmu,我查看了linux内核最近添加的一些代码,这些代码支持ARMv6和ARMv7的1MB页面,Freebsd自2013年以来也提供了内置支持,但也仅限于ARMv6和ARMv7。Linux还支持使用巨大的页面来映射ARMv5上的内核内存,但不支持用户空间 当我考虑在ARMv5上添加对用户空间Hugepages的支持时,我想知道是否有任何架构障碍使其无法实现 ARMv5上的用户空间应用程序不支持hugepages有什么原因吗?还是仅仅是一个“必须有人实施”的问题?在Linux上,我可以看到他们使用以前的

我查看了linux内核最近添加的一些代码,这些代码支持ARMv6和ARMv7的1MB页面,Freebsd自2013年以来也提供了内置支持,但也仅限于ARMv6和ARMv7。Linux还支持使用巨大的页面来映射ARMv5上的内核内存,但不支持用户空间

当我考虑在ARMv5上添加对用户空间Hugepages的支持时,我想知道是否有任何架构障碍使其无法实现


ARMv5上的用户空间应用程序不支持hugepages有什么原因吗?还是仅仅是一个“必须有人实施”的问题?在Linux上,我可以看到他们使用以前的访问权限/域位来保存一些额外的信息,这在ARMv5上是不可能的。但这是唯一的原因还是我可能遗漏了什么?

这个问题不适合StackOverflow。它没有一个“正确”的答案,即使你有一个答案,也不清楚它将如何帮助解决现实世界中的问题。@artlessnoise:如前所述,内核(对于v6+版本)中已经支持1MB映射,用户空间也可以使用它。现在我看不出它在ARMv5上不受支持的原因。我的应用程序可以从大型页面提供的TLB压力的降低中获益。@JimGarrison:嗯,我正在考虑实施支持,但我不想最后被困在一些别人可能已经知道的无法解决的架构问题上。没有技术理由不这样做。okl4准虚拟化使用许多技术来减少/优化ARMv5的MMU映射。但是,它通常是特定任务,一次只能为一个CPU工作。ARM Linux MMU支持非常通用,可以在具有相同运行时的多个ARM CPU上运行。请参阅:了解一些从未合并的ARMv5优化。注释而不是回答:没有硬件体系结构原因说明为什么ARMv5中不支持hugepages-当前代码不支持它,因为转换表格式在ARMv5和ARMv6之间发生了一些变化-操作转换的所有代码也是如此桌子。因此,可能存在软件架构方面的原因,使实现变得棘手。