On 05.09.2013, at 22:17, Paul Mackerras wrote: > This allows guests to have a different timebase origin from the host. > This is needed for migration, where a guest can migrate from one host > to another and the two hosts might have a different timebase origin. > However, the timebase seen by the guest must not go backwards, and > should go forwards only by a small amount corresponding to the time > taken for the migration. > > Therefore this provides a new per-vcpu value accessed via the one_reg > interface using the new KVM_REG_PPC_TB_OFFSET identifier. This value > defaults to 0 and is not modified by KVM. On entering the guest, this > value is added onto the timebase, and on exiting the guest, it is > subtracted from the timebase. > > This is only supported for recent POWER hardware which has the TBU40 > (timebase upper 40 bits) register. Writing to the TBU40 register only > alters the upper 40 bits of the timebase, leaving the lower 24 bits > unchanged. This provides a way to modify the timebase for guest > migration without disturbing the synchronization of the timebase > registers across CPU cores. The kernel rounds up the value given > to a multiple of 2^24. > > Timebase values stored in KVM structures (struct kvm_vcpu, struct > kvmppc_vcore, etc.) are stored as host timebase values. The timebase > values in the dispatch trace log need to be guest timebase values, > however, since that is read directly by the guest. This moves the > setting of vcpu->arch.dec_expires on guest exit to a point after we > have restored the host timebase so that vcpu->arch.dec_expires is a > host timebase value. > > Signed-off-by: Paul Mackerras <paulus@xxxxxxxxx> Thanks, applied to kvm-ppc-queue. Alex -- 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