Enable interrupt throtling on one of the two queue interrupts used in the multiple_transfers test, to improve coverage. The number of interrupts for the e1000e test is reduced because it has a long minimum throttling delay so without reducing iterations throttling adds about 40s to the test runtime.
Signed-off-by: Nicholas Piggin <npig...@gmail.com> --- tests/qtest/e1000e-test.c | 6 +++--- tests/qtest/igb-test.c | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tests/qtest/e1000e-test.c b/tests/qtest/e1000e-test.c index a538c72cc84..645b31127f0 100644 --- a/tests/qtest/e1000e-test.c +++ b/tests/qtest/e1000e-test.c @@ -181,7 +181,7 @@ static void test_e1000e_rx(void *obj, void *data, QGuestAllocator * alloc) static void test_e1000e_multiple_transfers(void *obj, void *data, QGuestAllocator *alloc) { - static const long iterations = 4 * 1024; + static const long iterations = 1 * 1024; long i; QE1000E_PCI *e1000e = obj; @@ -194,8 +194,8 @@ static void test_e1000e_multiple_transfers(void *obj, void *data, return; } - /* Clear EITR because buggy QEMU throttle timer causes superfluous irqs */ - e1000e_macreg_write(d, E1000_EITR + E1000E_RX0_MSG_ID * 4, 0); + /* Use EITR for one irq and disable it for the other, for testing */ + e1000e_macreg_write(d, E1000_EITR + E1000E_RX0_MSG_ID * 4, 500); e1000e_macreg_write(d, E1000_EITR + E1000E_TX0_MSG_ID * 4, 0); for (i = 0; i < iterations; i++) { diff --git a/tests/qtest/igb-test.c b/tests/qtest/igb-test.c index 12cdd8b498a..c1877a77be4 100644 --- a/tests/qtest/igb-test.c +++ b/tests/qtest/igb-test.c @@ -198,6 +198,10 @@ static void test_igb_multiple_transfers(void *obj, void *data, return; } + /* Use EITR for one irq and disable it for the other, for testing */ + e1000e_macreg_write(d, E1000_EITR(E1000E_RX0_MSG_ID), 0); + e1000e_macreg_write(d, E1000_EITR(E1000E_TX0_MSG_ID), 10 << 2); /* 10us */ + for (i = 0; i < iterations; i++) { igb_send_verify(d, data, alloc); igb_receive_verify(d, data, alloc); -- 2.47.1