将using_dma设置为1(打开) - 失败

时间:2014-11-16 17:14:29

标签: io c++

场合

对于我的一个项目,我想绕过几乎所有的io缓存。因此我使用标志O_DIRECT来访问我的硬盘。程序代码与此类似:

 int fd = open64("/dev/sdb", O_DIRECT  | O_RDWR |  O_LARGEFILE |  O_SYNC);
  • O_DIRECT - 绕过几乎所有缓存
  • O_RDWR - 读写权限
  • O_SYNC - 同步。写

一般程序是我无法使用标记O_DIRECT访问硬盘。因此,我做了一些研究,发现DMA has to be activated.

可以使用以下命令完成此操作:

(sudo) hdparm -d1 /dev/sdb

结果是:

/dev/sdb:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Invalid argument
HDIO_GET_DMA failed: Invalid argument

问题

如何为本地硬盘启用DMA?

0 个答案:

没有答案