[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/2] block/throttle-groups: use QEMU_CLOCK_REALTIME for qtest
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
Re: [PATCH 1/2] block/throttle-groups: use QEMU_CLOCK_REALTIME for qtest too |
Date: |
Thu, 7 Apr 2022 13:45:15 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
Thanks for explanation!
07.04.2022 09:42, Hanna Reitz wrote:
On 06.04.22 17:32, Vladimir Sementsov-Ogievskiy wrote:
Virtual clock just doesn't tick for iotests, and throttling just not
work. Let's use realtime clock.
It does tick when you make it take, specifically with the clock_step qtest
command. 093 does this, and so with this patch, it fails, because it is no
longer deterministic.
So far, if I needed realtime throttling, I simply switched the accelerator to
tcg (e.g. in stream-error-on-reset).
Hm, I tried but it doesn't help (Add vm.add_args('-accel', 'tcg') before vm.launch() in
the test), as " -accel qtest" is kept anyway, and therefore
do_configure_accelerator is called for qtest and finally qtest_allowed is set to true.
But using QEMUMachine class instead of VM helps.
I’m not really opposed to this, but it does break 093, and without looking too
closely into it, I would guess that it’d be difficult to rewrite 093 in a
deterministic way without it relying on throttling using the virtual clock. (A
runtime option for the throttle-group object to choose the clock type might be
an option.)
OK, I don't think we need these patches now.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@openvz.org>
---
block/throttle-groups.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/block/throttle-groups.c b/block/throttle-groups.c
index fb203c3ced..029158d797 100644
--- a/block/throttle-groups.c
+++ b/block/throttle-groups.c
@@ -753,10 +753,6 @@ static void throttle_group_obj_init(Object *obj)
ThrottleGroup *tg = THROTTLE_GROUP(obj);
tg->clock_type = QEMU_CLOCK_REALTIME;
- if (qtest_enabled()) {
- /* For testing block IO throttling only */
- tg->clock_type = QEMU_CLOCK_VIRTUAL;
- }
tg->is_initialized = false;
qemu_mutex_init(&tg->lock);
throttle_init(&tg->ts);
--
Best regards,
Vladimir