[PATCH 2/5] ARM: KVM: arch_timers: zero CNTVOFF upon return to host

Mark Rutland mark.rutland at arm.com
Thu Apr 4 05:29:39 EDT 2013


Hi Christoffer,

On Thu, Apr 04, 2013 at 12:39:27AM +0100, Christoffer Dall wrote:
> On Wed, Mar 27, 2013 at 10:11 AM, Mark Rutland <mark.rutland at arm.com> wrote:
> > To use the virtual counters from the host, we need to ensure that
> > CNTVOFF doesn't change unexpectedly. When we change to a guest, we
> > replace the host's CNTVOFF, but we don't restore it when returning to
> > the host.
> >
> > As the host sets CNTVOFF to zero, and never changes it, we can simply
> > zero CNTVOFF when returning to the host. This patch adds said zeroing to
> > the return to host path.
> >
> > Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> > Acked-by: Marc Zyngier <marc.zyngier at arm.com>
> > Cc: Christoffer Dall <cdall at cs.columbia.edu>
> > ---
> >  arch/arm/kvm/interrupts_head.S | 4 ++++
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/arch/arm/kvm/interrupts_head.S b/arch/arm/kvm/interrupts_head.S
> > index 3c8f2f0..d43cfb5 100644
> > --- a/arch/arm/kvm/interrupts_head.S
> > +++ b/arch/arm/kvm/interrupts_head.S
> > @@ -497,6 +497,10 @@ vcpu       .req    r0              @ vcpu pointer always in r0
> >         add     r5, vcpu, r4
> >         strd    r2, r3, [r5]
> >
> > +       @ Ensure host CNTVCT == CNTPCT
> > +       mov     r2, #0
> > +       mcrr    p15, 4, r2, r2, c14     @ CNTVOFF
> > +
> >  1:
> >  #endif
> >         @ Allow physical timer/counter access for the host
> > --
> > 1.8.1.1
> >
> >
> 
> looks good to me.
> 
> Merged into kvm-arm-fixes.

As this patch depends on the previous patch (which sets CNTVOFF to 0 in the hyp
stub), and the rest of the patches depend on both this patch and the previous
for correct operation, the series really needs to be taken together.

Would you be able to give your ack instead?

This patch is only required because the later patches in this series need it to
allow the host to use virtual counters, nothing else requires the host's
CNTVOFF to be 0 at the moment as both physical counters and timers are used by
the host.

Thanks,
Mark.



More information about the linux-arm-kernel mailing list