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