[PATCH v3 08/13] tests/vm: add 1GB extra memory per core

John Snow posted 13 patches 3 years, 7 months ago
Maintainers: Michael Roth <michael.roth@amd.com>, Kevin Wolf <kwolf@redhat.com>, Hanna Reitz <hreitz@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Thomas Huth <thuth@redhat.com>, Wainer dos Santos Moschetta <wainersm@redhat.com>, Beraldo Leal <bleal@redhat.com>
There is a newer version of this series
[PATCH v3 08/13] tests/vm: add 1GB extra memory per core
Posted by John Snow 3 years, 7 months ago
If you try to run a 16 or 32 threaded test, you're going to run out of
memory very quickly with qom-test and a few others. Bump the memory
limit to try to scale with larger-core machines.

Granted, this means that a 16 core processor is going to ask for 16GB,
but you *probably* meet that requirement if you have such a machine.

512MB per core didn't seem to be enough to avoid ENOMEM and SIGABRTs in
the test cases in practice on a six core machine; so I bumped it up to
1GB which seemed to help.

Add this magic in early to the configuration process so that the
config file, if provided, can still override it.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 tests/vm/basevm.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index d7d0413df35..4fd9af10b7f 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -99,6 +99,11 @@ def __init__(self, args, config=None):
         self._source_path = args.source_path
         # Allow input config to override defaults.
         self._config = DEFAULT_CONFIG.copy()
+
+        # 1GB per core, minimum of 4. This is only a default.
+        mem = max(4, args.jobs)
+        self._config['memory'] = f"{mem}G"
+
         if config != None:
             self._config.update(config)
         self.validate_ssh_keys()
-- 
2.34.3
Re: [PATCH v3 08/13] tests/vm: add 1GB extra memory per core
Posted by Daniel P. Berrangé 3 years, 7 months ago
On Thu, Jul 07, 2022 at 12:03:05AM -0400, John Snow wrote:
> If you try to run a 16 or 32 threaded test, you're going to run out of
> memory very quickly with qom-test and a few others. Bump the memory
> limit to try to scale with larger-core machines.
> 
> Granted, this means that a 16 core processor is going to ask for 16GB,
> but you *probably* meet that requirement if you have such a machine.
> 
> 512MB per core didn't seem to be enough to avoid ENOMEM and SIGABRTs in
> the test cases in practice on a six core machine; so I bumped it up to
> 1GB which seemed to help.

RHEL recommends 1.5 GB per virtual CPU, so yeah, allowing only 512 MB
was unreasonably small by typical standards.

> 
> Add this magic in early to the configuration process so that the
> config file, if provided, can still override it.
> 
> Signed-off-by: John Snow <jsnow@redhat.com>
> ---
>  tests/vm/basevm.py | 5 +++++
>  1 file changed, 5 insertions(+)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|