[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen: sched: avoid races on time values read from NOW()
>>> On 19.05.16 at 10:11, <dario.faggioli@xxxxxxxxxx> wrote: > --- a/xen/common/sched_rt.c > +++ b/xen/common/sched_rt.c > @@ -1198,7 +1198,7 @@ static void > rt_vcpu_wake(const struct scheduler *ops, struct vcpu *vc) > { > struct rt_vcpu * const svc = rt_vcpu(vc); > - s_time_t now = NOW(); > + s_time_t now; > bool_t missed; > > BUG_ON( is_idle_vcpu(vc) ); > @@ -1225,6 +1225,7 @@ rt_vcpu_wake(const struct scheduler *ops, struct vcpu > *vc) > * If a deadline passed while svc was asleep/blocked, we need new > * scheduling parameters (a new deadline and full budget). > */ > + now = NOW(); > > missed = ( now >= svc->cur_deadline ); > if ( missed ) > @@ -1394,7 +1395,7 @@ rt_dom_cntl( > * from the replq and does the actual replenishment. > */ > static void repl_timer_handler(void *data){ > - s_time_t now = NOW(); > + s_time_t now; > struct scheduler *ops = data; > struct rt_private *prv = rt_priv(ops); > struct list_head *replq = rt_replq(ops); > @@ -1406,6 +1407,8 @@ static void repl_timer_handler(void *data){ > > spin_lock_irq(&prv->lock); > > + now = NOW(); > + > /* > * Do the replenishment and move replenished vcpus > * to the temporary list to tickle. While backporting this for 4.6 (which required substantial adjustment to the sched_rt.c part) I noticed that there's another of the cases mentioned in the description in rt_vcpu_insert(). The commit message doesn't mention why this was left unchanged, so was not fixing this perhaps just an oversight? Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |