From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ryan Harper Subject: scheduler independent forced vcpu selection Date: Tue, 17 May 2005 15:48:32 -0500 Message-ID: <20050517204832.GH7305@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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? -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx (512) 838-9253 T/L: 678-9253 ryanh@us.ibm.com