Chia sẻ bộ nhớ: mmap, UIO, dma-buf¶
Ánh xạ bộ nhớ kernel hoặc thiết bị vào không gian user để truyền dữ liệu lớn, zero-copy.
mmap trong driver¶
TODO
- Callback
.mmap remap_pfn_range(),vm_insert_page()- Cache attribute:
pgprot_noncached,pgprot_writecombine
Buffer DMA¶
TODO
dma_alloc_coherent()vàdma_mmap_coherent()- Đồng bộ cache
UIO¶
TODO
- Driver ở user space
- Ví dụ với IP FPGA trên Zynq
- Xử lý interrupt qua
read()trên/dev/uioX
dma-buf¶
TODO
- Chia sẻ buffer giữa các driver và user space
Kernel bypass¶
TODO
- Mô hình của DPDK
Ví dụ chạy thử¶
TODO
- Driver mẫu mmap một buffer và chương trình user đọc/ghi
Khi nào dùng / không nên dùng¶
TODO
- Ưu điểm, hạn chế
- So sánh với các interface khác