[Android-virt] [PATCH] ARM: KVM: Trap and propagate cache maintainance by set/way

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

 



On 31 May 2012 05:17, Marc Zyngier <marc.zyngier at arm.com> wrote:
> The ARM ARM says in bold (B1.14.4):
> "Virtualizing a uniprocessor system within an MP system, permitting a
> ?virtual machine to move between different physical processors, makes
> ?cache maintenance by set/way difficult. This is because a set/way
> ?operation might be interrupted part way through its operation, and
> ?therefore the hypervisor must reproduce the effect of the maintenance
> ?on both physical processors."
>
> The direct consequence of this is that we have to trap all set/way
> operations and make sure the other CPUs get the memo. In order to
> avoid performance degradation, we maintain a per vcpu cpumask that
> tracks the physcal CPUs on which the cache operation must be performed.

"physical"

> The remote operation is only executed when migrating the vcpu.
>
> On the receiving end, we simply clean+invalidate the whole data cache
> to avoid queuiing up individual set/way operations.

"queueing"

(my kernel patch review skills extend only to total trivia :-))

-- PMM



[Index of Archives]     [Linux KVM]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux