Re: [Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-16 Thread Dario Faggioli
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 @@ DEF

Re: [Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-16 Thread Stefano Stabellini
On Fri, 16 Jun 2017, Dario Faggioli wrote: > On Fri, 2017-06-16 at 02:54 -0600, Jan Beulich wrote: > > > > > On 14.06.17 at 18:53, wrote: > > > > > > --- a/xen/arch/x86/domain.c > > > +++ b/xen/arch/x86/domain.c > > > @@ -112,12 +112,18 @@ static void play_dead(void) > > >   > > >  static void id

Re: [Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-16 Thread Jan Beulich
>>> On 16.06.17 at 15:34, wrote: > Assuming answers are 'no' and 'yes', I think I'd leave > cpu_is_haltable() as it is Agreed, you analysis was quite helpful. Jan ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel

Re: [Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-16 Thread Dario Faggioli
On Fri, 2017-06-16 at 05:47 -0600, Jan Beulich wrote: > > On Fri, 2017-06-16 at 02:54 -0600, Jan Beulich wrote: > > > > > > On 14.06.17 at 18:53, wrote: > > > >  unsigned long *work_to_do = &per_cpu(tasklet_work_to_do, > > > > cpu); > > > >  struct list_head *list = &per_cpu(tasklet_list,

Re: [Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-16 Thread Jan Beulich
>>> On 16.06.17 at 12:44, wrote: > On Fri, 2017-06-16 at 02:54 -0600, Jan Beulich wrote: >> > > > On 14.06.17 at 18:53, wrote: >> > >> > --- a/xen/arch/x86/domain.c >> > +++ b/xen/arch/x86/domain.c >> > @@ -112,12 +112,18 @@ static void play_dead(void) >> > >> > static void idle_loop(void) >>

Re: [Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-16 Thread Dario Faggioli
On Fri, 2017-06-16 at 02:54 -0600, Jan Beulich wrote: > > > > On 14.06.17 at 18:53, wrote: > > > > --- a/xen/arch/x86/domain.c > > +++ b/xen/arch/x86/domain.c > > @@ -112,12 +112,18 @@ static void play_dead(void) > >   > >  static void idle_loop(void) > >  { > > +unsigned int cpu = smp_proces

Re: [Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-16 Thread Jan Beulich
>>> On 14.06.17 at 18:53, wrote: > --- a/xen/arch/x86/domain.c > +++ b/xen/arch/x86/domain.c > @@ -112,12 +112,18 @@ static void play_dead(void) > > static void idle_loop(void) > { > +unsigned int cpu = smp_processor_id(); > + > for ( ; ; ) > { > -if ( cpu_is_offline(smp_

[Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-14 Thread Dario Faggioli
In fact, there exists two kind of tasklets: vCPU and softirq context tasklets. When we want to do vCPU context tasklet work, we force the idle vCPU (of a particular pCPU) into execution, and run it from there. This means there are two possible reasons for choosing to run the idle vCPU: 1) we want

[Xen-devel] [PATCH] xen: idle_loop: either deal with tasklets or go idle

2017-06-14 Thread Dario Faggioli
Hi, following up on this: https://lists.xen.org/archives/html/xen-devel/2017-06/msg01260.html I did make a patch that moves do_tasklet() up a bit, within idle_loop(). While there, I did a bit more than that... let's see what you guys think. :-D I've verified that this builds on ARM too, but h