On 10/27/2017 10:25 AM, Haozhong Zhang wrote:
[I just copy the commit message from patch 3] By default, KVM treats a reserved page as for MMIO purpose, and maps it to guest with UC memory type. However, some reserved pages are not for MMIO, such as pages of DAX device (e.g., /dev/daxX.Y). Mapping them with UC memory type will harm the performance. In order to exclude those cases, we check the host cache mode in addition and only treat UC/UC- pages as MMIO.
I am afraid that is not only a performance issue but also a architecture bug - it could trigger MCE as there is alias memory mapping (a page mapped as both WB and UC). It may hurt mdev device as well as the device memory may be both mapped at host and VM.