`mount -oloop` 默认情况下是否使用直接 IO(当内核足够新时)?

`mount -oloop` 默认情况下是否使用直接 IO(当内核足够新时)?

由于内核开始支持它,losetup因此被修改为默认启用直接IO。这可以避免冗余的页面缓存,并且还具有性能优势。

http://man7.org/linux/man-pages/man8/losetup.8.html

--direct-io[=开|关]

启用或禁用备份文件的直接 I/O。可选参数可以是 on 也可以是 off。如果省略该参数,则默认为 on。

我注意到,当内核添加这个功能时,一次提交提到专门添加一项功能mount -oloop。是否也被mount -oloop修改为默认启用直接IO(如果内核足够新)?我找不到文档中提到的内容。

http://man7.org/linux/man-pages/man8/mount.8.html

答案1

不,我认为到目前为止这还没有实现(util-linux v2.31.1)。

mountlosetup使用通用代码创建循环设备,但该loopcxt_set_dio()函数仅在main()的函数内部调用losetup.c

https://github.com/karelzak/util-linux/search?q=loopcxt_set_dio

https://github.com/karelzak/util-linux/search?q=LOOP_SET_DIRECT_IO

相关内容