简短:我无法找到mmap
O_WRONLY
打开文件的方法。
LONG:我正在寻找尽可能快地将DMA(s / g模式)提供的数据写入磁盘PARTITION(!),避免内核缓冲的方法。 O_DIRECT
不起作用,Linus禁止使用它
为此我mmap
每个DMA缓冲区都有MAP_FIXED和文件中相应的偏移量。但是如果文件以O_RDWR
打开,这会导致内核在使用文件数据填充输入RAM时与DMA竞争。在大多数情况下,内核获胜...... :)
所以,我需要向内核解释,它不应该触摸我的页面,只需在调用msync()
时将它们写入映射文件。怎么样?