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

Re: [Xen-devel] Credit scheduler



Hi, Prabha

pak333@xxxxxxxxxxx wrote:

[snip]

> > >Also, if the IO VM requests an IO, it will block and dom0 wakes up 
> > >and gets scheduled to run to service the IO. Will it preempt the cpu 
> > >intensive VM. If so why? Shouldn't the cpuintensiveV M get its 
> > >quantum of time. 
> > >Or does the IOVM get higher priority to preempt the cpu intensive 
> > >VM. How does the scheduler pick which cpu to run dom0 on ( if all 
> > >the vcpus running are cpu intensive)? If there is a mix of cpu-vcpus 
> > >and Io-vcpus, which will be the victim 
> > 
> > 
> > The whole idea of having separate queues for IO and CPU intensive VMs 
> > (or processes in a normal kernel scenario) is to allow the 
> > IO-intensive tasks to avoid waiting for the next time-slot when a 
> > CPU-hogging VM/process is running [1]. The normal behaviour for the 
> > scheduler is to determine dynamically if the current VM/process is IO 
> > or CPU intensive. 
> > 
> > Unless Dom0 is used for doing some silly CPU-intensive task 
> > (calculating PI with a million decimal points or compiling Xen + 
> > Linux kernel, for example), it will most likely look to the scheduler 
> > like a IO-intensive VM. So it will have the same priority as any 
> > other IO-intensive VM (assuming Dom0 has equal scheduler parameters 
> > as other guests, which I'm pretty sure is the default behaviour). 
> > 
> Does dom0 have a higher pritority than any CPU intensive VM

Easy way is to set higher weight to dom0.
(This makes get higher priority like I/O intensive domain for domain 
dispatch) 

If you want to set higher priority of Dom0 see follow patch.
(This is sample patch for boost Dom0 only not boost I/O intensive.)
http://lists.xensource.com/archives/html/xen-devel/2007-05/msg00529.html

Or just set  CSCHED_PRI_TS_BOOST   for domain0
in case dom0 priority is  CSCHED_PRI_TS_UNDER.


> > If, like in your example, there are a number of processors busy with 
> > CPU-intensive tasks, and others with IO-intensive tasks, the most 
> > likely scenario is that any new IO-request will go be run on a 
> > "previously CPU-intensive" CPU - but on the other hand, if you have a 
> > lot of IO-intensive processing, there should be some processor(s) 
> > that are "asleep" - unless all CPU's are busy running CPU-intensive 
> > tasks... 
> But will it preempt a CPU intensive vcpu if no cpu is available

[snip] 

> > 
> > [1] The idea being that if we process the IO-request that just 
> > completed, we can set up another IO-request, and this will get better 
> > IO-throughput than waiting a long time (relatively speaking 30ms is 
> > an eternity to the processor). 
> Don't understand what you mean here.

I guess Mats suggests to use AIO.

Thanks
Atsushi SAKAI




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