对linux内核DAX不支持arm的理解

前几天看内核代码,看到CONFIG_FS_DAX居然是depends on !(ARM || MIPS || SPARC),非常疑惑,于是简单的探究了一下:
查看内核提交记录,是Commit d92576f1引入的,提交记录如下:
对linux内核DAX不支持arm的理解
该提交在Documentation/filesystems/dax.txt加了一句话:
The DAX code does not work correctly on architectures which have virtually mapped caches such as ARM, MIPS and SPARC.

啥是virtually mapped caches?

网上搜了一下,发现和CPU的缓存实现方式相关:
https://blog.****.net/Q_AN1314/article/details/78980191

在使用VIVT的arm cpu上,会有缓存别名(cache aliasing)的问题,而在使用VIPT和PIPT的arm cpu上,不会有该问题。如果存在cache aliasing问题,就会造成DAX数据的cache一致性问题,所以才不允许arm架构使用DAX。但是,只要该arm cpu不使用VIVT的话,使用dax是没有问题的。