Ping...
and
Reviewed-by: Boris Fiuczynski <fiuczy(a)linux.vnet.ibm.com>
On 10/09/2017 02:57 PM, Boris Fiuczynski wrote:
Looks good to me.
On 09/22/2017 04:12 PM, Viktor Mihajlovski wrote:
> libvirt reports a fake NUMA topology in virConnectGetCapabilities
> even if built without numactl support. The fake NUMA topology consists
> of a single cell representing the host's cpu and memory resources.
> Currently this is the case for ARM and s390[x] RPM builds.
>
> A client iterating over NUMA cells obtained via virConnectGetCapabilities
> and invoking virNodeGetMemoryStats on them will see an internal failure
> "NUMA isn't available on this host". An example for such a client is
> VDSM.
>
> Since the intention seems to be that libvirt always reports at least
> a single cell it is necessary to return "fake" node memory statistics
> matching the previously reported fake cell in case NUMA isn't supported
> on the system.
>
> Signed-off-by: Viktor Mihajlovski <mihajlov(a)linux.vnet.ibm.com>
> ---
> src/util/virhostmem.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/src/util/virhostmem.c b/src/util/virhostmem.c
> index a9ba278..fa04a37 100644
> --- a/src/util/virhostmem.c
> +++ b/src/util/virhostmem.c
> @@ -267,6 +267,14 @@ virHostMemGetStats(int cellNum ATTRIBUTE_UNUSED,
> FILE *meminfo;
> int max_node;
>
> + /*
> + * Even if built without numactl, libvirt claims
> + * to have a one-cells NUMA topology. In such a
> + * case return the statistics for the entire host.
> + */
> + if (!virNumaIsAvailable() && cellNum == 0)
> + cellNum = VIR_NODE_MEMORY_STATS_ALL_CELLS;
> +
> if (cellNum == VIR_NODE_MEMORY_STATS_ALL_CELLS) {
> if (VIR_STRDUP(meminfo_path, MEMINFO_PATH) < 0)
> return -1;
>
--
Mit freundlichen Grüßen/Kind regards
Boris Fiuczynski
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294