关于ODIRECT使用的某些限制
1:block device的限制:必须以扇区为单位
2:内存地址的限制
关于第一个限制,这个好理解。因为不经过page cache,直接和block 设备通信,而block的最小单元就是sector,所以起始地址和长度必须是以扇区为单位。
但是关于第二个限制,内存地址的限制,不是很理解。
1:http://www.quora.com/Why-does-O_DIRECT-require-I-O-to-be-512-byte-aligned#
2:http://lwn.net/Articles/348719/
A:DMA的限制