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

Re: [Xen-devel] Re: credit scheduler: the policy of credit assignment

Hi Emmanuel,

> > Hi Emmanuel,
> > 
> > I looked into the code of the credit scheduler and one question
> > has come up.
> > 
> > I'm not sure whether it is your intention that once the value of
> > credit_balance, which is the sum of credit of all domains on Xen,
> > goes to zero it may be stuck at zero. It will happen all of them
> > are cpu intensive domains and some of them turn into idle.
> > 
> > Every 30 msec, the credit scheduler gives them csched_priv.credit
> > milliseconds --- 30 msec * number of physical cpus ---. 30 msec later,
> > you will find they have consumed all of the time they gave, which
> > leads the value of credit_balance will keep zero. This means some
> > domains are assigned credit with negative value every time.
> > 
> > I know even in this case it will be balanced between domains
> > based on the weights but it would take quite long time to be balanced.
> > I feel the scheduler should give each domains larger credit than now
> > when credit_balance is small.
> > 
> > Am I something wrong about this?
> Credit_balance only comes into play when active domains with positive
> credit go idle. It's a mechanism to converge the system towards its
> stable state.

Yes, I think I understand the intention.
However, I don't think the mechanism is effective enough.

> Are you suggesting that credit_balance, as it is used, should be the
> sum of credit *prior* to incrementing active domains' credits?

I think it would be better.

> I'm not really sure I understand what you're concerned about here.
> Can you elaborate and use a specific example to illustrate?

Please suppose the system has 1 cpu and the sum of the credit goes
down to zero or quite small value unluckily.

Domain A     20
Domain B    -10        
Domain C    -10

30msec later, the domains consumed 30msec if they are cpu intensive
domains. The credits may become:

Domain A     0
Domain B    -15
Domain C    -15

Then, the credit scheduler divides 30 msec and gives it to each domains.
The credits may become:

Domain A     15
Domain B    -5
Domain C    -10

The sum of the credit keeps the same value.
I think there will be a chance to optimize it.

Hirokazu Takahashi.

Xen-devel mailing list



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