内存管理的硬件痛点

2014 LSMM峰会上的讨论

H. Peter Anvin提出了一个问题:如果硬件可以增加某些功能来让内存管理变得更简单一些,那么这些功能应该是什么呢?

开发者起初抱怨不同架构之间的差异太大,内核软件不得不为他们定制单独的模块,Rik

van Riel指出, PowerPC没有TLB

Flush的功能,其他一些架构(如SPARC)也有这一限制,这使得通用代码无法完成他们本应该完成的事情,如果该功能由硬件来完成,那么平台无关的代码(通用部分)将更容易地完成页表刷新的工作.

Peter Zijlstra希望x86能有使某一区域页表失效(Invalidate)的功能.

另一个普遍的需求是x86能提供64KB大小的页(目前只有4KB,2MB和1GB).

Mel Gorman提出是否有让页面快速填0的方法(memset(addr,0,size)的性能在很多时候是瓶颈),尤其是使用大页时显得尤其有必要,填满一整个页面往往需要不短的一段时间。有人提出使用non-temporal的技术来解决该问题,即fill page时不需要使CPU

cache失效的技术。还有人提出在CPU的空闲时间来完成fill page的工作,但Christoph Lameter表示他已经尝试过了这个方法,但效果很不理想

有人提出希望有更快速的iret指令,以便更快速地进行缺页处理;

再有就是关于用CPU间传递消息以及响应事件所引起开销的讨论,人们觉得可以运行在用户态的mwait指令或许能有所帮助。

开发者们的愿望清单,硬件厂商的开发人员是否都看到了呢?

原文链接:Hardware pain points for memory management

    原文作者:yuwh_507
    原文地址: https://www.jianshu.com/p/226604cbfa89
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞