由于内核开始支持它,losetup
因此被修改为默认启用直接IO。这可以避免冗余的页面缓存,并且还具有性能优势。
http://man7.org/linux/man-pages/man8/losetup.8.html
--direct-io[=开|关]
启用或禁用备份文件的直接 I/O。可选参数可以是 on 也可以是 off。如果省略该参数,则默认为 on。
我注意到,当内核添加这个功能时,一次提交提到专门添加一项功能mount -oloop
。是否也被mount -oloop
修改为默认启用直接IO(如果内核足够新)?我找不到文档中提到的内容。
答案1
不,我认为到目前为止这还没有实现(util-linux v2.31.1)。
mount
并losetup
使用通用代码创建循环设备,但该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