试图关闭我的Linux机器上的DMA返回:
HDIO_GET_DMA failed: Inappropriate ioctl for device我记得这曾经是用来打开或关闭DMA的。我也尝试使用内核参数libata.dma=0,但没有效果!然而,ATA驱动程序和DMA似乎工作得很好。所以我只想知道我是否该担心这个问题,否则就不再支持了。
发行版是Ubuntu 12,内核是3.5.0-54-泛型。芯片组是
0:1 f.2 SATA控制器:英特尔公司7系列/C 210系列芯片组系列6-端口SATA控制器AHCI模式
发布于 2015-06-22 14:01:39
libata不支持HDIO_*_DMA。
请参见https://ata.wiki.kernel.org/index.php/Libata_常见问题:
旧的,不受支持的ioctls为什么HDIO_SET_DMA会失败?我想用DMA!为什么HDIO_SET_UNMASKINTR会失败?libata故意不支持由旧的HDIO_xxx驱动程序支持的所有ioctl。现在更倾向于使用SG_IO作为一个通用的ATA命令提交方法,而不是为每个特定目的创建无数个ioctls。这个设计决定只是为了支持其他程序大量使用的HDIO_xxx ioctls。通常,驱动程序总是自动地将硬件编程到其最大的能力,完全不需要用户的干预。因此,例如,大多数用户不需要HDIO_SET_DMA,因为DMA在可用的地方会自动启用和使用。
https://unix.stackexchange.com/questions/211346
复制相似问题