[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] credit: track residual from divisions done during accounting
On Mon, 2013-02-18 at 12:37 +0000, Jan Beulich wrote: > --- a/xen/common/sched_credit.c > +++ b/xen/common/sched_credit.c > > @@ -242,6 +244,7 @@ __runq_remove(struct csched_vcpu *svc) > static void burn_credits(struct csched_vcpu *svc, s_time_t now) > { > s_time_t delta; > + uint64_t val; > unsigned int credits; > > /* Assert svc is current */ > @@ -250,7 +253,10 @@ static void burn_credits(struct csched_v > if ( (delta = now - svc->start_time) <= 0 ) > return; > > - credits = (delta*CSCHED_CREDITS_PER_MSEC + MILLISECS(1)/2) / > MILLISECS(1); > + val = delta * CSCHED_CREDITS_PER_MSEC + svc->residual; > + svc->residual = do_div(val, MILLISECS(1)); > + credits = val; > + ASSERT(credits == val); I may be missing something, but how can the assert ever be false, given the assignment right before it? 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 http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |