我一直在使用Windows应用程序,该应用程序从“非分页池”中读取以提高性能。在这种情况下,非分页池是内存区域,网络驱动程序在将数据从线路中抓取时写入数据。
Linux如何处理需要高速独占访问RAM的网络驱动程序(或其他驱动程序)的内存,并提出“我如何直接从非分页池中读取?”的问题。应用于Linux时甚至有意义吗?
非常感谢
答案 0 :(得分:3)
Infiniband等网络支持RDMA,这需要能够阻止对进程中某些页面的分页。请参阅mlock(),mlockall(),munlock(),munlockall()函数。
除此之外,我认为本身并不存在“非分页池”的概念。通常,内核内存是AFAIK不可分页,但除了用mlock()等锁定的内存以外的所有用户内存都是。