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

Re: [Xen-devel] CPU and scheduler init, Part 2


  • To: George Dunlap <dunlapg@xxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • From: Keir Fraser <keir@xxxxxxx>
  • Date: Thu, 09 Dec 2010 14:16:52 +0000
  • Cc:
  • Delivery-date: Thu, 09 Dec 2010 06:18:04 -0800
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=sender:user-agent:date:subject:from:to:message-id:thread-topic :thread-index:in-reply-to:mime-version:content-type :content-transfer-encoding; b=pJu2M8wjqihfOo5Wa6em7aSdBY7cGE64m5r74xRq8mAL90ZEpCAatefKTgpmoy5GFS 16el3jIS0KCEfRSWFaGi9IzyTibIWVaycr8H2iXRGVUmH/z626vIYYSu98OibQW+xMmz Jy52RMG1zA72E0svH0+kEuK70rTiaq8aA+LF4=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>
  • Thread-index: AcuXq7mlXDRUlsbA4UW8k8SpsJeo3Q==
  • Thread-topic: [Xen-devel] CPU and scheduler init, Part 2

On 09/12/2010 12:49, "George Dunlap" <dunlapg@xxxxxxxxx> wrote:

> Keir,
> 
> I made a cpu status notifier for sched_credit2() to actually read an
> arrange the runqueue information, and found the next niggle: the
> callbacks are not guaranteed to finish before the cpu tried to go
> through the scheduler.  The callback notifiers are handled on the cpu
> that issues the boot command (i.e., cpu 0 during boot), and there's no
> interlock to prevent the booted cpu from continuing until the
> notifiers have completed execution.
> 
> Making a simple interlock (similar to the one in __cpu_up()) allows
> the system to boot properly.  Another possibility would be to run the
> notifiers on the freshly booted cpu before calling into the scheduler,
> rather than on the cpu that issued the cpu boot sequence.

I could bring Linux's CPU_STARTING notifier over into Xen. Runs in context
of new CPU before it is fully online (e.g., before interrupts are enabled).
So you couldn't do any allocations there, or anything else that can fail.
This might require some juggling to pre-allocate memory (e.g., for
possibly-required new runqueue) on CPU_UP_PREPARE/alloc_pdata, and
potentially free that memory if unused on CPU_ONLINE. Or not, if actually
you require no dynamic memory allocation.

This might be the best solution overall I think? I can knock up a patch for
CPU_STARTING if that sounds good.

 -- Keir

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



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