summary refs log tree commit diff stats
path: root/tests/vm/basevm.py
diff options
context:
space:
mode:
authorJohn Snow <jsnow@redhat.com>2022-07-08 11:34:59 -0400
committerThomas Huth <thuth@redhat.com>2022-07-18 20:24:36 +0200
commiteaf46a65ab41b120a07204bedccadf1844c73009 (patch)
tree854442191ea53da34de1cf72ad3521faf4a90c77 /tests/vm/basevm.py
parentb967bf134581214280540b2aec1161cee6543f83 (diff)
downloadfocaccia-qemu-eaf46a65ab41b120a07204bedccadf1844c73009.tar.gz
focaccia-qemu-eaf46a65ab41b120a07204bedccadf1844c73009.zip
tests/vm: add 1GB extra memory per core
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>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-9-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/vm/basevm.py')
-rw-r--r--tests/vm/basevm.py5
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index d7d0413df3..4fd9af10b7 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -99,6 +99,11 @@ class BaseVM(object):
         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()