[libvirt] CPU topology 'sockets' handling guest vs host

Jiri Denemark jdenemar at redhat.com
Mon Mar 26 15:08:05 UTC 2012


On Mon, Mar 26, 2012 at 15:42:58 +0100, Daniel P. Berrange wrote:
> On my x86_64 host I have a pair of Quad core CPUs, each in a separate
> NUMA node. The virsh capabilities
> topology data reports this:
> 
>   # virsh capabilities | xmllint  --xpath /capabilities/host/cpu -
>   <cpu>
>       <arch>x86_64</arch>
>       <model>Opteron_G3</model>
>       <vendor>AMD</vendor>
>       <topology sockets="1" cores="4" threads="1"/>
>       <feature name="osvw"/>
>       <feature name="3dnowprefetch"/>
>       <feature name="cr8legacy"/>
>       <feature name="extapic"/>
>       <feature name="cmp_legacy"/>
>       <feature name="3dnow"/>
>       <feature name="3dnowext"/>
>       <feature name="pdpe1gb"/>
>       <feature name="fxsr_opt"/>
>       <feature name="mmxext"/>
>       <feature name="ht"/>
>       <feature name="vme"/>
>     </cpu>
>   # virsh capabilities | xmllint  --xpath /capabilities/host/topology -
>   <topology>
>       <cells num="2">
>         <cell id="0">
>           <cpus num="4">
>             <cpu id="0"/>
>             <cpu id="1"/>
>             <cpu id="2"/>
>             <cpu id="3"/>
>           </cpus>
>         </cell>
>         <cell id="1">
>           <cpus num="4">
>             <cpu id="4"/>
>             <cpu id="5"/>
>             <cpu id="6"/>
>             <cpu id="7"/>
>           </cpus>
>         </cell>
>       </cells>
>   </topology>
> 
> Note, it is reporting sockets=1, because sockets is the number of sockets
> *per* NUMA node.
> 
> 
> Now I try to figure the guest to match the host using:
> 
>   <cpu>
>     <topology sockets='1' cores='4' threads='1'/>
>     <numa>
>       <cell cpus='0-3' memory='512000'/>
>       <cell cpus='4-7' memory='512000'/>
>     </numa>
>   </cpu>
> 
> And I get:
> 
>   error: Maximum CPUs greater than topology limit
> 
> So, the XML checker is mistaking 'sockets' as the total number of sockets,
> rather than the per-node socket count. We need to fix this bogus check

I guess what we actually want to do is to report total number of sockets in
host cpu xml. Sockets per NUMA node has been proven to be a bad decision and
we should not let it infect other areas.

Jirka




More information about the libvir-list mailing list