Re: [PATCH v2] KVM: SVM: Sync g_pat with guest-written PAT value

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 21/04/2015 13:25, Jan Kiszka wrote:
> On 2015-04-21 13:09, Paolo Bonzini wrote:
>>
>>
>> On 20/04/2015 19:25, Jan Kiszka wrote:
>>> When hardware supports the g_pat VMCB field, we can use it for emulating
>>> the PAT configuration that the guest configures by writing to the
>>> corresponding MSR.
>>>
>>> Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx>
>>
>> I'm not sure about this.  The problem is that, unlike Intel, AMD has no
>> way for the host to force its PAT value and ignore the guest's.  I'm
>> worried about potential performance problems in the guest.
> 
> I think the guest needs to get what it requests - see my remark in
> http://thread.gmane.org/gmane.comp.emulators.kvm.devel/135271.
> 
>>
>> This is not as bad as on ARM, because the guest cannot disable the cache
> 
> You mean AMD, I guess.

No, I meant ARM. :)  On ARM the guest can even disable the cache
snooping protocol, making things particularly messy when QEMU accesses
the processor caches and the guest doesn't.  At least on AMD you cannot
do this.

>> snooping protocol and thus cache coherency is guaranteed (see tables
>> 7-10 and 15-20 in the AMD docs), but still I think I'd prefer having
>> some knob (module parameter) to enable/disable gPAT.  It's okay to make
>> it enabled by default.
> 
> I still don't get the scenario where we want to override the guest
> settings. Maybe you can help out - would be valuable for the reasoning
> in code or commit logs as well.

Basically it's an optimization.  The guest can set the UC memory type on
PCI BARs that are actually backed by RAM in QEMU, and then accesses to
these BARs will be unnecessarily slow.  It would be particularly bad if,
for example, access to ivshmem were slowed down because the guest PAT
says the memory is uncacheable.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux