diff --git a/src/conf/numa_conf.c b/src/conf/numa_conf.c index 57da215aed..5c123b96b7 100644 --- a/src/conf/numa_conf.c +++ b/src/conf/numa_conf.c @@ -847,6 +847,23 @@ virDomainNumaGetCPUCountTotal(virDomainNumaPtr numa) return ret; } +unsigned int +virDomainNumaGetMaxCPUID(virDomainNumaPtr numa) +{ + size_t i; + unsigned int ret = 0; + + for (i = 0; i < numa->nmem_nodes; i++) { + int bit; + + bit = virBitmapLastSetBit(virDomainNumaGetNodeCpumask(numa, i)); + if (bit > ret) + ret = bit; + } + + return ret; +} + virDomainNumaPtr virDomainNumaNew(void) diff --git a/src/conf/numa_conf.h b/src/conf/numa_conf.h index 6739065339..90deacbd34 100644 --- a/src/conf/numa_conf.h +++ b/src/conf/numa_conf.h @@ -99,6 +99,9 @@ unsigned long long virDomainNumaGetNodeMemorySize(virDomainNumaPtr numa, unsigned long long virDomainNumaGetMemorySize(virDomainNumaPtr numa) ATTRIBUTE_NONNULL(1); +unsigned int +virDomainNumaGetMaxCPUID(virDomainNumaPtr numa); + /* * Formatters */ diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 5d320b7306..e5d8437adf 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -679,6 +679,7 @@ virNodeDeviceObjUnlock; virDomainNumaCheckABIStability; virDomainNumaEquals; virDomainNumaFree; +virDomainNumaGetMaxCPUID; virDomainNumaGetMemorySize; virDomainNumaGetNodeCount; virDomainNumaGetNodeCpumask;