我有一个Linux设备驱动程序,它与理论上可以使用64位地址执行DMA的设备接口。我想测试一下,看看这是否真的有效。
有什么简单的方法可以迫使Linux机器不要在物理地址4G下面使用任何内存?内核映像在内存不足的情况下是可以的;我只想强制这样一种情况:我知道所有动态分配的缓冲区,而分配给我的任何内核或用户缓冲区都不能在32位内寻址。这是一种小小的蛮力,但比我所能想到的任何东西都要全面。
这将帮助我捕获(1)没有正确配置或加载完整地址的硬件(或只是完全损坏的),以及(2)意外和不必要地使用弹跳缓冲区(因为没有地方可弹)。
clarification:我正在运行x86_64,所以我不关心大多数旧的32位解决问题。我只想测试一个驱动程序是否能够使用64位物理地址正确地与大量缓冲区进行接口。
https://stackoverflow.com/questions/1911473
复制相似问题