[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