Skip to contentSkip to conversation

Cpupools

PATCH Applied Juergen Gross 3 participants 4 messages Apr 21, 2010

lore
Share & tools
lore
#0 lore raw

cover Cpupools

Round 2 for cpupools patches.

Changes from 1st version:
- create all domains in Pool-0, move to specific pool afterwards
- don't use cpupool_lock for cpu add/remove. Races with hot swapping cpus are avoided by locking cpus to Pool-0 if necessary

libxl patches will be sent soon, I'm still working on them.

The physical cpus of a server are grouped in cpu-pools. Each physical CPU is assigned at most to one cpu-pool. Domains are each restricted to a single cpu-pool. Scheduling does not cross cpu-pool boundaries, so each cpu-pool has an own scheduler.

The cpu-pool of the domain Dom0 will be Pool-0, at boot-time we have to create this cpu-pool implicitly.

The creation of a cpu-pool is similar to the creation of a domain. In a first step the attributes of a cpu-pool have to be defined, in the second step the cpu-pool will be activated (started) by assigning the resources (CPUs) and initializing the scheduler. An activated cpu-pool owns at least one physical CPU.

A physical CPU may be removed from an activated cpu-pool. Further CPUs may be assigned to the cpu-pool. The CPU may be assigned to a cpu-pool only if that CPU is free (not assigned to any other activated cpu-pool). The free CPUs are internally managed.

The poolname will be added as an additional parameter to the configfile of a domain. If no poolname is specified the poolname is defaults to Pool-0. At domain start the domain is added to its cpu-pool, which must be activated.

A started domain can be moved to another activated cpu-pool.

A cpu-pool may be deactivated if there is no active domain assigned to it. A cpu-pool is deactivated by removing the resources (CPUs).

A cpu-pool may be deleted if it is deactivated.

The administration of the cpu-pools is done by xm subcommands.

Patch 1/6: hypervisor support of cpupools
Patch 2/6: support in libxc
Patch 3/6: changes in libxen
Patch 4/6: python stuff (xm, xend)
Patch 5/6: xm-test add-ons for cpupools
Patch 6/6: documentation changes

Juergen

Signature · 5 lines
Juergen Gross                 Principal Developer Operating Systems
TSP ES&S SWE OS6                       Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions              e-mail: [email protected]
Domagkstr. 28                           Internet: ts.fujitsu.com
D-80807 Muenchen                 Company details: ts.fujitsu.com/imprint.html
#1 lore raw
Quoted 4 lines

Round 2 for cpupools patches.

Changes from 1st version:
- create all domains in Pool-0, move to specific pool afterwards

Do you make sure that the domain is moved to the right pool *before* any memory is assigned to the domain? It's necessary that the CPU affinity mask gets set appropriately to ensure memory gets allocated from the right node.

Thanks,
Ian

#2 lore raw
Quoted 6 lines · Ian Pratt
Quoted 4 lines

Round 2 for cpupools patches.

Changes from 1st version:
- create all domains in Pool-0, move to specific pool afterwards

Do you make sure that the domain is moved to the right pool *before* any memory is assigned to the domain? It's necessary that the CPU affinity mask gets set appropriately to ensure memory gets allocated from the right node.

Yep. Right after creation the domain is moved to it's target pool, after that the resources are allocated.

Juergen

Signature · 5 lines
Juergen Gross                 Principal Developer Operating Systems
TSP ES&S SWE OS6                       Telephone: +49 (0) 89 3222 2967
Fujitsu Technology Solutions              e-mail: [email protected]
Domagkstr. 28                           Internet: ts.fujitsu.com
D-80807 Muenchen                 Company details: ts.fujitsu.com/imprint.html
Applied
#3 lore raw
In reply to Juergen Gross
Quoted 6 lines · Juergen Gross

Round 2 for cpupools patches.

Changes from 1st version:
- create all domains in Pool-0, move to specific pool afterwards
- don't use cpupool_lock for cpu add/remove. Races with hot swapping cpus are avoided by locking cpus to Pool-0 if necessary

Applied. Thanks.

-- Keir