run_test() arms the next device reset with
while (completed > next_reset)
next_reset += completed;
next_reset starts at reset_n, but each rearm advances the threshold by
the absolute completion count instead of the configured interval, so
the reset cadence stretches after every reset: with reset_n == 16 the
resets fire at completions 17, 34, 68, 136, ... instead of every 16
completions, and only a handful of resets happen over the whole run.
Advance next_reset by reset_n so resets stay evenly spaced, matching
the --reset=<n> option meaning.
Fixes: 264ee5aa81ec ("tools/virtio: Add --reset")
Signed-off-by: Gu Bin <[email protected]>
---
tools/virtio/virtio_test.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/virtio/virtio_test.c b/tools/virtio/virtio_test.c
index 028f54e6854a..b8deca893f12 100644
--- a/tools/virtio/virtio_test.c
+++ b/tools/virtio/virtio_test.c
@@ -250,7 +250,7 @@ static void run_test(struct vdev_info *dev, struct vq_info
*vq,
started = completed;
while (completed > next_reset)
- next_reset += completed;
+ next_reset += reset_n;
}
} while (r == 0);
if (completed == completed_before && started == started_before)
--
2.55.0.windows.3