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
>


Reply via email to