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

Re: [Xen-devel] scheduler independent forced vcpu selection

* Stephan Diestelhorst <sd386@xxxxxxxxxxxx> [2005-05-19 09:04]:
> Ryan Harper schrieb:
> > * Stephan Diestelhorst <sd386@xxxxxxxxxxxx> [2005-05-18 09:04]:
> > 
> >>>I'm working on a new hypercall, do_confer, which allows the directed
> >>>yielding of a vcpu to another vcpu.  It is mainly used when a vcpu fails
> >>>to acquire a spinlock, yielding to the lock holder instead of spinning. I
> >>>ported the ppc64 spinlock implementation for the i386 linux portion.  In
> >>>implementing the hypercall, I've been trying to figure out how to get
> >>>the scheduler (I've only played with bvt) to run the vcpu passed in the
> >>>hypercall (after some validation) but I've run into various bad state
> >>>situations (do_softirq pending != 0 assert, '!active_ac_timer(timer)'
> >>>failed , and __task_on_runqueue(prev) failed) which tells me I
> >>>don't fully understand all of the book-keeping that is needed.  Has
> >>>anyone thought about how to do this with either BVT or the new EDF
> >>>scheduler?
> > 
> > 
> > After some thought, domain_wake(), followed by
> > raise_softirq(SCHEDULE_SOFTIRQ) does what I want and removes the huge
> > mess I was making in __enter_scheduler().  
> Are you waking up the domain that holds the lock? Then you would rely on
> the scheduler to give the woken domain a high "priority" (whatever this
> means for the current scheduler) and should start that domain
> immediatelly, right?

I noticed your comments in sched_sedf.c about domain waking.

* 3. Unconservative (i.e. incorrect)
*     -to boost the performance of I/O dependent domains it would be possible
*      to put the domain into the runnable queue immediately, and let it run
*      for the remainder of the slice of the current period
*      (or even worse: allocate a new full slice for the domain)
*     -either behaviour can lead to missed deadlines in other domains as
*      opposed to approaches 1,2a,2b

Giving the remainder of the current slice to the domain we are waking
*sounds* like what I wanted, but you are concerned that it causes missed
deadlines.  Could you elaborate when we would have such a case?  If we are
only running in the remaining timeslice (which would expire before the
next deadline) then why would such behaviour lead to missing deadlines?

Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
(512) 838-9253   T/L: 678-9253

Xen-devel mailing list



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