On 30/04/2021 15:02, Max Reitz wrote:
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.
As said in patch 5, I will check again which timeout is essential to
avoid and which not.
Emanuele
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)