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

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

 



On Thu, May 31, 2012 at 10:04:14AM +0100, Marc Zyngier 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 physical CPUs on which the cache operation must be performed.
> The remote operation is only executed when migrating the vcpu.
> 
> On the receiving end, we simply clean+invalidate the whole data cache
> to avoid queueing up individual set/way operations.
> 
> Reported-by: Peter Maydell <peter.maydell at linaro.org>
> Cc: Will Deacon <will.deacon at arm.com>
> Cc: Rusty Russell <rusty.russell at linaro.org>
> Signed-off-by: Marc Zyngier <marc.zyngier at arm.com>

This looks good to me:

Acked-by: Will Deacon <will.deacon at arm.com>

Cheers,

Will


[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