[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 1/7] xen: sched_rt: avoid ASSERT()ing on runq dump if there are no domains



On 03/16/2015 05:04 PM, Dario Faggioli wrote:
> being serviced by the RTDS scheduler, as that is a
> legit situation to be in: think, for instance, of a
> newly created RTDS cpupool, with no domains migrated
> to it yet.
> 
> Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
> Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> Cc: Meng Xu <xumengpanda@xxxxxxxxx>
> Cc: Jan Beulich <JBeulich@xxxxxxxx>
> Cc: Keir Fraser <keir@xxxxxxx>

You're not going to mention fixing a race condition while you're at it? :-)

Acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>

> ---
>  xen/common/sched_rt.c |   10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/xen/common/sched_rt.c b/xen/common/sched_rt.c
> index df4adac..055a50f 100644
> --- a/xen/common/sched_rt.c
> +++ b/xen/common/sched_rt.c
> @@ -264,18 +264,17 @@ rt_dump(const struct scheduler *ops)
>      struct list_head *iter_sdom, *iter_svc, *runq, *depletedq, *iter;
>      struct rt_private *prv = rt_priv(ops);
>      struct rt_vcpu *svc;
> -    cpumask_t *online;
>      struct rt_dom *sdom;
>      unsigned long flags;
>  
> -    ASSERT(!list_empty(&prv->sdom));
> +    spin_lock_irqsave(&prv->lock, flags);
> +
> +    if (list_empty(&prv->sdom))
> +        goto out;
>  
> -    sdom = list_entry(prv->sdom.next, struct rt_dom, sdom_elem);
> -    online = cpupool_scheduler_cpumask(sdom->dom->cpupool);
>      runq = rt_runq(ops);
>      depletedq = rt_depletedq(ops);
>  
> -    spin_lock_irqsave(&prv->lock, flags);
>      printk("Global RunQueue info:\n");
>      list_for_each( iter, runq )
>      {
> @@ -303,6 +302,7 @@ rt_dump(const struct scheduler *ops)
>          }
>      }
>  
> +out:
>      spin_unlock_irqrestore(&prv->lock, flags);
>  }
>  
> 


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.