On 14.04.21 19:03, Emanuele Giuseppe Esposito wrote:
As with gdbserver, valgrind delays the test execution, so
the default QMP socket timeout timeout too soon.
I’m curious: The default timeouts should be long enough for slow
systems, too, though (e.g. heavily-loaded CI systems). I would expect
that valgrind is used on developer systems where there is more leeway,
so the timeouts should still work.
But in practice, thinking about that doesn’t matter. If valgrind leads
to a timeout being hit, that wouldn’t be nice. OTOH, if you run
valgrind to debug a test/qemu, you don’t particularly care about the
timeouts anyway.
So in principle, this patch sounds good to me, it’s just that it’s based
on patch 5, which I don’t fully agree with.
Max
Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com>
---
python/qemu/machine.py | 2 +-
tests/qemu-iotests/iotests.py | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/python/qemu/machine.py b/python/qemu/machine.py
index d6142271c2..dce96e1858 100644
--- a/python/qemu/machine.py
+++ b/python/qemu/machine.py
@@ -410,7 +410,7 @@ def _launch(self) -> None:
shell=False,
close_fds=False)
- if 'gdbserver' in self._wrapper:
+ if 'gdbserver' in self._wrapper or 'valgrind' in self._wrapper:
self._qmp_timer = None
self._post_launch()
diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
index a2e8604674..94597433fa 100644
--- a/tests/qemu-iotests/iotests.py
+++ b/tests/qemu-iotests/iotests.py
@@ -489,7 +489,7 @@ def log(msg: Msg,
class Timeout:
def __init__(self, seconds, errmsg="Timeout"):
- if qemu_gdb:
+ if qemu_gdb or qemu_valgrind:
self.seconds = 3000
else:
self.seconds = seconds
@@ -700,7 +700,7 @@ def qmp_to_opts(self, obj):
return ','.join(output_list)
def get_qmp_events(self, wait: bool = False) -> List[QMPMessage]:
- if qemu_gdb:
+ if qemu_gdb or qemu_valgrind:
wait = 0.0
return super().get_qmp_events(wait=wait)