On 3/2/20 7:19 PM, Alex Bennée wrote:
> From: Robert Foley <robert.foley@linaro.org>
>
> Add change to increase timeout waiting for VM to boot.
> Needed for some emulation cases where it can take longer
> than 5 minutes to boot.
>
> Signed-off-by: Robert Foley <robert.foley@linaro.org>
> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
> Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
> Message-Id: <20200219163537.22098-4-robert.foley@linaro.org>
> ---
> tests/vm/basevm.py | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index c99725b8c0d..5ca445e29af 100644
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -57,6 +57,10 @@ class BaseVM(object):
> poweroff = "poweroff"
> # enable IPv6 networking
> ipv6 = True
> + # Scale up some timeouts under TCG.
> + # 4 is arbitrary, but greater than 2,
> + # since we found we need to wait more than twice as long.
> + tcg_ssh_timeout_multiplier = 4
> def __init__(self, debug=False, vcpus=None):
> self._guest = None
> self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
> @@ -309,6 +313,9 @@ class BaseVM(object):
> sys.stderr.write("### %s ...\n" % text)
>
> def wait_ssh(self, seconds=300):
> + # Allow more time for VM to boot under TCG.
> + if not kvm_available(self.arch):
> + seconds *= self.tcg_ssh_timeout_multiplier
> starttime = datetime.datetime.now()
> endtime = starttime + datetime.timedelta(seconds=seconds)
> guest_up = False
>
A clean way might be to use a QMP socket and poll for networking events,
then start counting when the network is up.