[libvirt] [PATCH 1/2] tests: Create full host NUMA topology by default

Peter Krempa pkrempa at redhat.com
Thu Apr 19 12:06:14 UTC 2018


On Thu, Apr 12, 2018 at 08:47:57 +0200, Andrea Bolognani wrote:
> vircapstest has code to add a full host NUMA topology, that
> is, one that includes all information about nodes and CPUs
> including IDs; the function used to create a mock virCapsPtr
> by most of the test suite, however, just fakes it by setting
> nnumaCell_max to some number.
> 
> While the latter approach has served us well so far, we're
> going to need all the information to be filled in soon. In
> order to do that, we can just move the existing code from
> vircapstest to testutilsqemu and, with some renaming and
> trivial tweaking, use it as-is.
> 
> Interestingly, the NUMA topology generated by the function
> is rigged up so that the NUMA nodes aren't (necessarily)
> numbered starting from 0, which is a nice way to spot
> mistaken assumptions in our codebase.
> 
> Signed-off-by: Andrea Bolognani <abologna at redhat.com>
> ---
>  tests/testutilsqemu.c | 57 +++++++++++++++++++++++++++++++++++++++++++++-
>  tests/vircapstest.c   | 62 +--------------------------------------------------
>  2 files changed, 57 insertions(+), 62 deletions(-)
> 
> diff --git a/tests/testutilsqemu.c b/tests/testutilsqemu.c
> index f8182033fc..ec32c4e106 100644
> --- a/tests/testutilsqemu.c
> +++ b/tests/testutilsqemu.c
> @@ -375,6 +375,56 @@ static int testQemuAddAARCH64Guest(virCapsPtr caps)
>      return -1;
>  }
>  
> +#define MAX_CELLS 4
> +#define MAX_CPUS_IN_CELL 2
> +#define MAX_MEM_IN_CELL 2097152

Syntax-check is not happy about indentation of these. You probably
missed that this whole function is wrapped inside #ifdef WITH_QEMU.

> +
> +/*
> + * Build NUMA topology with cell id starting from (0 + seq)
> + * for testing
> + */
> +static int
> +testQemuBuildNUMATopology(virCapsPtr caps,
> +                          int seq)

Moving of the code looks sane.

[...]

> diff --git a/tests/vircapstest.c b/tests/vircapstest.c
> index 664b7da143..e9d5e12158 100644
> --- a/tests/vircapstest.c
> +++ b/tests/vircapstest.c

[...]

> @@ -96,11 +40,7 @@ test_virCapabilitiesGetCpusForNodemask(const void *data ATTRIBUTE_UNUSED)
>      int mask_size = 8;
>      int ret = -1;
>  
> -    /*
> -     * Build a NUMA topology with cell_id (NUMA node id
> -     * being 3(0 + 3),4(1 + 3), 5 and 6
> -     */
> -    if (!(caps = buildNUMATopology(3)))
> +    if (!(caps = testQemuCapsInit()))

Since this function is now declared within #ifdef WITH_QEMU but
test_virCapabilitiesGetCpusForNodemask isn't you'll get a build failure
with --without-qemu

Since there are multiple solutions, v2 will be required.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20180419/172b0edd/attachment-0001.sig>


More information about the libvir-list mailing list