2

我有一个需要从用户空间读写的 PCI 设备。我正在尝试使用零拷贝;有没有办法完全在用户空间内分配、固定和获取用户空间地址的物理地址,或者我是否需要一个内核模块,比如调用 virt_to_phys 或 get_user_pages?设备的内存通过 MMIO 映射到用户空间内存,因此我可以将任何需要的数据传递给它。谢谢。

4

2 回答 2

1

这完全是一次黑客攻击,但我将 Linux 限制在一定范围内的内存,并使用 MMIO 为我的设备分配内核不知道的内存。

于 2012-03-03T23:40:53.773 回答
0

基本上,您需要内存能够进行 DMA,据我所知,只有内核模块可以做到这一点。请参阅http://lxr.free-electrons.com/source/Documentation/PCI/PCI-DMA-mapping.txt

于 2012-06-08T12:00:59.030 回答