From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: Cpupools and pdata_alloc Date: Tue, 11 May 2010 06:48:49 +0200 Message-ID: <4BE8E1B1.2030305@ts.fujitsu.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: George Dunlap Cc: xen-devel@lists.xensource.com, Keir Fraser List-Id: xen-devel@lists.xenproject.org On 05/10/2010 07:47 PM, George Dunlap wrote: > It appears that in the new cpupools code: > * pdata_allocate is called from alloc_vcpu() with that cpu for the first time. > * this happens usually when dom0's cpus are allocated, as it cycles > through all of the cpus No. It happens when idle vcpus are allocated. At this time there is no cpupool existing, all physical cpus are marked as "free", e.g. they are in no pool at all. Dom0 vcpus are allocated in Pool-0. This pool is created after allocation of the idle vcpus. > > This seems a bit strange to me. Wouldn't it make more sense to pass, > or to make available, a cpumask of the cpus in a pool to the init > function? No. A cpupool is created without any cpu in the beginning. Whenever a cpu is added to a cpupool, alloc_pdata is called for this cpu. BTW: Allocating the percpu data of the scheduler during the allocation of the first vcpu on this cpu was in sched_credit.c before cpupools were introduced. > > Also, is there documentation of the cpupool lifecycle anywhere, to > help scheduler writers understand what's going on? Not yet. I'll write something up in the next days. Juergen -- Juergen Gross Principal Developer Operating Systems TSP ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967 Fujitsu Technology Solutions e-mail: juergen.gross@ts.fujitsu.com Domagkstr. 28 Internet: ts.fujitsu.com D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html