KVM: PPC: Use clockevent multiplier and shifter for decrementer
authorBharat Bhushan <r65777@freescale.com>
Wed, 18 Apr 2012 06:01:19 +0000 (06:01 +0000)
committerAlexander Graf <agraf@suse.de>
Sun, 6 May 2012 14:19:07 +0000 (16:19 +0200)
commit6e35994d1f6831af1e5577e28c363c9137d7d597
tree4c230223e9f76865a2bf01e4f4893b30fe2482b7
parentcc902ad4f2b7cd3dd2cc268c63f6fb99fb1abf0f
KVM: PPC: Use clockevent multiplier and shifter for decrementer

Time for which the hrtimer is started for decrementer emulation is calculated
using tb_ticks_per_usec. While hrtimer uses the clockevent for DEC
reprogramming (if needed) and which calculate timebase ticks using the
multiplier and shifter mechanism implemented within clockevent layer.

It was observed that this conversion (timebase->time->timebase) are not
correct because the mechanism are not consistent.
In our setup it adds 2% jitter.

With this patch clockevent multiplier and shifter mechanism are used when
starting hrtimer for decrementer emulation. Now the jitter is < 0.5%.

Signed-off-by: Bharat Bhushan <bharat.bhushan@freescale.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/include/asm/time.h
arch/powerpc/kernel/time.c
arch/powerpc/kvm/emulate.c