Fix CPUManager algo to calculate min NUMA nodes needed for distribution
Fix CPUManager algo to calculate min NUMA nodes needed for distribution

Previously the algorithm was too restrictive because it tried to calculate the
minimum based on the number of *available* NUMA nodes and the number of
*available* CPUs on those NUMA nodes. Since there was no (easy) way to tell how
many CPUs an individual NUMA node happened to have, the average across them was
used. Using this value however, could result in thinking you need more NUMA
nodes to possibly satisfy a request than you actually do.

By using the *total* number of NUMA nodes and CPUs per NUMA node, we can get
the true minimum number of nodes required to satisfy a request. For a given
"current" allocation this may not be the true minimum, but its better to start
with fewer and move up than to start with too many and miss out on a better
option.

Signed-off-by: Kevin Klues <10df813f1921eff993d42337701788897067f836@nvidia.com>

openshift/kubernetes,bparees/kubernetes,csrwng/kubernetes,openshift/kubernetes,bparees/kubernetes,csrwng/kubernetes,openshift/kubernetes,bparees/kubernetes,openshift/kubernetes,openshift/kubernetes,csrwng/kubernetes,bparees/kubernetes,csrwng/kubernetes,bparees/kubernetes,csrwng/kubernetes