qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] libqos: use microseconds instead of iterations


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH] libqos: use microseconds instead of iterations for virtio timeout
Date: Mon, 29 Sep 2014 12:25:57 +0100

On 26 September 2014 17:35, Stefan Hajnoczi <address@hidden> wrote:
> Some hosts are slow or overloaded so test execution takes a long time.
> Test cases use timeouts to protect against an infinite loop stalling the
> test forever (especially important in automated test setups).
>
> Commit 6cd14054b67774cc58a51fca6660cfa1d3c08059 ("libqos virtio:
> Increase ISR timeout") increased the clock_step() value in an attempt to
> lengthen the virtio interrupt wait timeout, but timeout failures are
> still occuring on the Travis automated testing platform.
>
> This is because clock_step() only affects the guest's virtual time.
> Virtio requests can be bottlenecked on host disk I/O latency - which
> cannot be improved by stepping the clock, so the fix was ineffective.
>
> This patch changes the qvirtio_wait_queue_isr() and
> qvirtio_wait_config_isr() timeout mechanism from loop iterations to
> microseconds.  This way the test case can specify an absolute 30 second
> timeout.  Number of loop iterations is not a reliable timeout mechanism
> since the speed depends on many factors including host performance.
>
> Tests should no longer timeout on overloaded Travis instances.
>
> Note that I dropped an assertion that waits for the full timeout
> duration to assert that no interrupt was raised.  I think this is not a
> huge loss because it makes the test case non-deterministic (it cannot
> really prove the no interrupt will ever be raised).

As per IRC conversation, this patch causes 'make check'
to fail on some (slower?) systems with:

ERROR:/home/petmay01/linaro/qemu-for-merges/tests/virtio-blk-test.c:596:pci_idx:
assertion failed (status == 0): (255 == 0)

Stefan has diagnosed this as a failure to poll for the
zero status code, and is working on a patch.

-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]