On 04/30/2012 05:19 PM, Geert Jansen wrote:
On 04/30/2012 02:43 PM, Dor Laor wrote:
>> I would go for 4 or 2
>> Current CPU topology for the hosts is a new commit, thus it may be
>> allowed to change it now since no one is using it yet. This works in
>> favour of 2. In any case only 3 discloses all the information in all
>> possible cases.
> If you touch any of this, please be prepared for the future:
> - Use hyperthreads (exists in kvm today)
> - Add numa topology for guest and the hosts
> - Add Cache info (for VMs too)
> - Add number of DIMMs, especially for VMs, for the upcoming memory hot
> plug feature.
> - BE ready for cpu/cpu/memory hotplug for the hosts and the guests.
Maybe there will be a time where we need this, but for now we just need
the total number of cores. This is important for capacity planning. For
Other products and kvm (w/ the exception of memory hotplug which is not
yet upstream) do support all of the above. If someone changes the api,
it's time to add the missing features or at least add a place holder for
CPU, these capacity planning tools simply add up all the fractional
usages for all VMs in a cluster, and then it has to be smaller than the
number of total cores in the cluster. So it's important to know the
total number of cores per host.
For a VM, the number of cores is sockets*cores. For a host, it is just
"cores". If you would use socket*cores for a host, you'll get too many.
This isn't obvious and in my view it's a bug.
Simon, I don't really see this as an API breaker by the way. The number
of cores for a host was always cores*sockets even on 3.0, just that
sockets was always equal to 1 (implicitly).