[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
Description: This is a digitally signed message part

_______________________________________________
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®.