lkml.org 
[lkml]   [2015]   [Jun]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 14/15] KVM: MTRR: do not map huage page for non-consistent range


On 04/06/2015 10:23, Xiao Guangrong wrote:
>>
>> So, why do you need to always use IPAT=0? Can patch 15 keep the current
>> logic for RAM, like this:
>>
>> if (is_mmio || kvm_arch_has_noncoherent_dma(vcpu->kvm))
>> ret = kvm_mtrr_get_guest_memory_type(vcpu, gfn) <<
>> VMX_EPT_MT_EPTE_SHIFT;
>> else
>> ret = (MTRR_TYPE_WRBACK << VMX_EPT_MT_EPTE_SHIFT)
>> | VMX_EPT_IPAT_BIT;
>
> Yeah, it's okay, actually we considered this way, however
> - it's light enough, it did not hurt guest performance based on our
> benchmark.
> - the logic has always used for noncherent_dma case, extend it to
> normal case should have low risk and also help us to check the logic.

But noncoherent_dma is not the common case, so it's not necessarily true
that the risk is low.

> - completely follow MTRRS spec would be better than host hides it.

We are a virtualization platform, we know well when MTRRs are necessary.

Tis a risk from blindly obeying the guest MTRRs: userspace can see stale
data if the guest's accesses bypass the cache. AMD bypasses this by
enabling snooping even in cases that ordinarily wouldn't snoop; for
Intel the solution is that RAM-backed areas should always use IPAT.

Paolo


\
 
 \ /
  Last update: 2015-06-04 11:01    [W:1.008 / U:0.068 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site