On Fri, May 17, 2024 at 12:21 AM Pierrick Bouvier <pierrick.bouv...@linaro.org> wrote: > > From: Alex Bennée <alex.ben...@linaro.org> > > This generalises the qtest_clock_warp code to use the AccelOps > handlers for updating its own sense of time. This will make the next > patch which moves the warp code closer to pure code motion. > > From: Alex Bennée <alex.ben...@linaro.org> > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > Acked-by: Thomas Huth <th...@redhat.com> > --- > include/sysemu/qtest.h | 1 + > accel/qtest/qtest.c | 1 + > system/qtest.c | 6 +++--- > 3 files changed, 5 insertions(+), 3 deletions(-) > > diff --git a/include/sysemu/qtest.h b/include/sysemu/qtest.h > index b5d5fd34637..45f3b7e1df5 100644 > --- a/include/sysemu/qtest.h > +++ b/include/sysemu/qtest.h > @@ -36,6 +36,7 @@ void qtest_server_set_send_handler(void (*send)(void *, > const char *), > void qtest_server_inproc_recv(void *opaque, const char *buf); > > int64_t qtest_get_virtual_clock(void); > +void qtest_set_virtual_clock(int64_t count);
You can move qtest_get_virtual_clock/qtest_set_virtual_clock to accel/qtest/qtest.c instead, and make them static. They are not used anymore in system/qtest.c, and it actually makes a lot more sense that they aren't. Paolo > #endif > > #endif > diff --git a/accel/qtest/qtest.c b/accel/qtest/qtest.c > index f6056ac8361..53182e6c2ae 100644 > --- a/accel/qtest/qtest.c > +++ b/accel/qtest/qtest.c > @@ -52,6 +52,7 @@ static void qtest_accel_ops_class_init(ObjectClass *oc, > void *data) > > ops->create_vcpu_thread = dummy_start_vcpu_thread; > ops->get_virtual_clock = qtest_get_virtual_clock; > + ops->set_virtual_clock = qtest_set_virtual_clock; > }; > > static const TypeInfo qtest_accel_ops_type = { > diff --git a/system/qtest.c b/system/qtest.c > index 6da58b3874e..ee8b139e982 100644 > --- a/system/qtest.c > +++ b/system/qtest.c > @@ -332,14 +332,14 @@ int64_t qtest_get_virtual_clock(void) > return qatomic_read_i64(&qtest_clock_counter); > } > > -static void qtest_set_virtual_clock(int64_t count) > +void qtest_set_virtual_clock(int64_t count) > { > qatomic_set_i64(&qtest_clock_counter, count); > } > > static void qtest_clock_warp(int64_t dest) > { > - int64_t clock = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); > + int64_t clock = cpus_get_virtual_clock(); > AioContext *aio_context; > assert(qtest_enabled()); > aio_context = qemu_get_aio_context(); > @@ -348,7 +348,7 @@ static void qtest_clock_warp(int64_t dest) > QEMU_TIMER_ATTR_ALL); > int64_t warp = qemu_soonest_timeout(dest - clock, deadline); > > - qtest_set_virtual_clock(qtest_get_virtual_clock() + warp); > + cpus_set_virtual_clock(cpus_get_virtual_clock() + warp); > > qemu_clock_run_timers(QEMU_CLOCK_VIRTUAL); > timerlist_run_timers(aio_context->tlg.tl[QEMU_CLOCK_VIRTUAL]); > -- > 2.39.2 >