[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle
On Fri, 2017-06-16 at 10:41 -0700, Stefano Stabellini wrote: > On Fri, 16 Jun 2017, Dario Faggioli wrote: > > > > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c > > index 76310ed..86cd612 100644 > > --- a/xen/arch/arm/domain.c > > +++ b/xen/arch/arm/domain.c > > @@ -41,20 +41,28 @@ DEFINE_PER_CPU(struct vcpu *, curr_vcpu); > > > > void idle_loop(void) > > { > > + unsigned int cpu = smp_processor_id(); > > + > > for ( ; ; ) > > { > > - if ( cpu_is_offline(smp_processor_id()) ) > > + if ( cpu_is_offline(cpu) ) > > stop_cpu(); > > > > - local_irq_disable(); > > - if ( cpu_is_haltable(smp_processor_id()) ) > > + /* Are we here for running vcpu context tasklets, or for > > idling? */ > > + if ( cpu_is_haltable(cpu) ) > > { > > - dsb(sy); > > - wfi(); > > + local_irq_disable(); > > + /* We need to check again, with IRQ disabled */ > > + if ( cpu_is_haltable(cpu) ) > > + { > > + dsb(sy); > > + wfi(); > > + } > > + local_irq_enable(); > > } > > - local_irq_enable(); > > + else > > + do_tasklet(); > > > > - do_tasklet(); > > do_softirq(); > > Are you sure you want to check that cpu_is_haltable twice? It doesn't > make sense to me. > It's because of IRQ being disabled the first time. But anyway, discard this patch. I'll go back to (a slightly modified version of) the first one I sent, which defines a tasklet specific helper function. I'll send it on Monday. Regards, Dario -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |