|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v4 11/12] xen/arm: run the vtimer Xen timers on the pcpu the vcpu is running on
On Fri, 2013-04-26 at 16:28 +0100, Stefano Stabellini wrote:
> The Xen physical timer emulator and virtual timer driver use two
> internal Xen timers: initialize them on the pcpu the vcpu is running on,
> rather than the processor that it's creating the vcpu.
>
> On vcpu restore migrate the phys_timer and the virt_timer to the
> pcpu the vcpu is running on.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
In so far as I understand Xen's timer architecture:
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Changes in v4:
> - migrate Xen timers on virt_timer_restore.
> ---
> xen/arch/arm/vtimer.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c
> index 1cb365e..393aac3 100644
> --- a/xen/arch/arm/vtimer.c
> +++ b/xen/arch/arm/vtimer.c
> @@ -48,7 +48,7 @@ int vcpu_vtimer_init(struct vcpu *v)
> {
> struct vtimer *t = &v->arch.phys_timer;
>
> - init_timer(&t->timer, phys_timer_expired, t, smp_processor_id());
> + init_timer(&t->timer, phys_timer_expired, t, v->processor);
> t->ctl = 0;
> t->offset = NOW();
> t->cval = NOW();
> @@ -56,7 +56,7 @@ int vcpu_vtimer_init(struct vcpu *v)
> t->v = v;
>
> t = &v->arch.virt_timer;
> - init_timer(&t->timer, virt_timer_expired, t, smp_processor_id());
> + init_timer(&t->timer, virt_timer_expired, t, v->processor);
> t->ctl = 0;
> t->offset = READ_SYSREG64(CNTVCT_EL0) + READ_SYSREG64(CNTVOFF_EL2);
> t->cval = 0;
> @@ -95,6 +95,8 @@ int virt_timer_restore(struct vcpu *v)
> return 0;
>
> stop_timer(&v->arch.virt_timer.timer);
> + migrate_timer(&v->arch.virt_timer.timer, v->processor);
> + migrate_timer(&v->arch.phys_timer.timer, v->processor);
>
> WRITE_SYSREG64(v->arch.virt_timer.offset, CNTVOFF_EL2);
> WRITE_SYSREG64(v->arch.virt_timer.cval, CNTV_CVAL_EL0);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |