From: Juergen Gross <juergen.gross@ts.fujitsu.com>
To: George Dunlap <George.Dunlap@eu.citrix.com>
Cc: xen-devel@lists.xensource.com, Keir Fraser <keir.fraser@eu.citrix.com>
Subject: Re: Cpupools and pdata_alloc
Date: Wed, 12 May 2010 06:52:49 +0200 [thread overview]
Message-ID: <4BEA3421.6040300@ts.fujitsu.com> (raw)
In-Reply-To: <AANLkTilmTmETcKO4aBLseQULUOUwTqP9QXOI3YPgq3YE@mail.gmail.com>
On 05/11/2010 07:25 PM, George Dunlap wrote:
> On Mon, May 10, 2010 at 11:48 PM, Juergen Gross
> <juergen.gross@ts.fujitsu.com> wrote:
>> 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.
>
> Yeah, I spent some time tracing through the init code yesterday and
> figured that out. So it appears that at init time, regarding cpupools
> and schedulers:
> * init_idle_domain() calls schedule_init(), which calls ops->init()
> with a sort of "default" ops pointer. It also calls sched_init_vcpu()
> for idle domain's vcpu 0, which will call ops->alloc_pdata for cpu 0.
> * smp_prepare_cpus will eventually call do_boot_cpu for each online
> cpu. do_boot_cpu will initialize the idle_domain vcpu for that cpu,
> which will call ops->alloc_pdata for that cpu (again, with cpu 0
> - At this point, all online cpus have had alloc_pdata called, albeit
> for the "default" ops structure in the scheduler
> * cpupool_create will create cpupool 0, calling sched_init(), which
> calls ops->init with the cpupool0 ops structure.
> * cpupool0_cpu_assign will then un-assign all online cpus from the
> "default" ops structure and re-assign them into cpupool 0.
> Re-assigning looks like this:
> - First call alloc_pdata and then alloc_vdata for the new cpupool ops
> structure, for the physical cpu and idle vcpu respectively.
> - Ticks will be disabled on the old ops structure, then resumed on
> the new ops structure
> - The idle vcpu is added to the new pool
> - Calls free_vdata and free_pdata on the old cpupool ops structure
> for the idle vcpu and physical cpu, respectively.
>
> Now all online cpus have idle vcpus and pdatas initialized, and set up
> for cpupool 0.
>
> Is that a pretty accurate picture?
Yes, this sounds correct.
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
prev parent reply other threads:[~2010-05-12 4:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-10 17:47 Cpupools and pdata_alloc George Dunlap
2010-05-11 4:48 ` Juergen Gross
2010-05-11 17:25 ` George Dunlap
2010-05-11 18:41 ` Keir Fraser
2010-05-11 18:52 ` George Dunlap
2010-05-11 18:55 ` Keir Fraser
2010-05-12 4:52 ` Juergen Gross [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BEA3421.6040300@ts.fujitsu.com \
--to=juergen.gross@ts.fujitsu.com \
--cc=George.Dunlap@eu.citrix.com \
--cc=keir.fraser@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.