사용자 공간에서 읽고 쓸 필요가있는 PCI 장치가 있습니다. 제로 복사를 사용하려고합니다. 할당하고, 핀을 할당하고, 사용자 공간 주소의 물리적 주소를 사용자 공간 내에서 완전히 가져 오는 방법이 있을까요? 아니면 virt_to_phys 또는 get_user_pages를 호출하는 커널 모듈이 필요합니까? 장치의 메모리는 MMIO를 통해 사용자 공간 메모리에 매핑되므로 필요한 모든 데이터를 전달할 수 있습니다. 감사.Linux Zero Copy
2
A
답변
1
총 해킹 이었지만 Linux를 메모리 범위로 제한하고 커널이 인식하지 못한 장치에 MMIO를 사용하여 메모리를 할당했습니다.
0
기본적으로 DMA를 사용할 수있는 메모리가 필요하며 커널 모듈 만이 할 수 있습니다. http://lxr.free-electrons.com/source/Documentation/PCI/PCI-DMA-mapping.txt
을 참조하십시오.