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

AW: [Xen-devel] Question on Credit accounting in Credit Scheduler



> -----Ursprüngliche Nachricht-----
> Von: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-
> bounces@xxxxxxxxxxxxxxxxxxx] Im Auftrag von Thomas Pfeuffer
> Gesendet: Donnerstag, 29. Juli 2010 15:21
> An: xen-devel@xxxxxxxxxxxxxxxxxxx
> Betreff: [Xen-devel] Question on Credit accounting in Credit Scheduler
> 
> I have looked through the source code of Credit Scheduler.
> 
> In csched_acct(), the number of credits a domain gets (i.e
> credit_fair),
> is calculated as follows:
> 
>      credit_fair = ( ( credit_total * sdom->weight) + ( weight_total -
> 1)
>                   ) / weigth_total
> 
> But I would expect, that the Credits are calculated by
> 
>      credit_fair = (credit_total * sdom->weight) / weigth_total
> 
> Does anybody know, what function the term (weight_total -1) has?

Without knowing details of the Xen scheduling algorithm (i.e., I'm guessing
that the above is integer-only math), all it does is "round up" the (fair)
credits a domain gets [(x+y-1)/y means division with always rounding up,
think of the "Gaußklammer", don't know the german name, in reverse];
basically, if the above calculation is done for all domains, the respective
sum of all calculated credit_fair will always be equal to or higher than
credit_total, which wouldn't be the case (because of truncation when just
doing x/y) when using your function, i.e. the sum of all credit_fair might
be less than credit_total.

For a scheduling algorithm, you'll want to always give away _at least_ all
available credits, and this is a simple enough method to do just that
without resorting to floating point calculations.

--- Heiko.



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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