[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [for 4.2 PATCH 3/3] timer: last, remove last bits of la
From: |
Pavel Dovgalyuk |
Subject: |
Re: [Qemu-devel] [for 4.2 PATCH 3/3] timer: last, remove last bits of last |
Date: |
Tue, 23 Jul 2019 08:54:35 +0300 |
Hello!
> From: Dr. David Alan Gilbert (git) [mailto:address@hidden]
> The reset notifiers kept a 'last' counter to notice jumps;
> now that we've remove the notifier we don't need to keep 'last'.
> replay used to save/restore 'last' (presumably to avoid triggering
> the notifier); make it store the current time instead which avoids
> changing it's migration format.
If you are removing 'last' field, you also should drop 'host_clock_last'
from ReplayState, because it is used only for restoring host clock
'last' field. And that was useful only in record/replay mode.
>
> Signed-off-by: Dr. David Alan Gilbert <address@hidden>
> ---
> include/qemu/timer.h | 13 -------------
> replay/replay-snapshot.c | 3 +--
> util/qemu-timer.c | 22 +---------------------
> 3 files changed, 2 insertions(+), 36 deletions(-)
>
> diff --git a/include/qemu/timer.h b/include/qemu/timer.h
> index 6817c78ef4..5bcab935f6 100644
> --- a/include/qemu/timer.h
> +++ b/include/qemu/timer.h
> @@ -248,19 +248,6 @@ bool qemu_clock_run_timers(QEMUClockType type);
> */
> bool qemu_clock_run_all_timers(void);
>
> -/**
> - * qemu_clock_get_last:
> - *
> - * Returns last clock query time.
> - */
> -uint64_t qemu_clock_get_last(QEMUClockType type);
> -/**
> - * qemu_clock_set_last:
> - *
> - * Sets last clock query time.
> - */
> -void qemu_clock_set_last(QEMUClockType type, uint64_t last);
> -
>
> /*
> * QEMUTimerList
> diff --git a/replay/replay-snapshot.c b/replay/replay-snapshot.c
> index 756f48bc02..ca6d4adcc0 100644
> --- a/replay/replay-snapshot.c
> +++ b/replay/replay-snapshot.c
> @@ -24,7 +24,7 @@ static int replay_pre_save(void *opaque)
> {
> ReplayState *state = opaque;
> state->file_offset = ftell(replay_file);
> - state->host_clock_last = qemu_clock_get_last(QEMU_CLOCK_HOST);
> + state->host_clock_last = get_clock_realtime();
>
> return 0;
> }
> @@ -34,7 +34,6 @@ static int replay_post_load(void *opaque, int version_id)
> ReplayState *state = opaque;
> if (replay_mode == REPLAY_MODE_PLAY) {
> fseek(replay_file, state->file_offset, SEEK_SET);
> - qemu_clock_set_last(QEMU_CLOCK_HOST, state->host_clock_last);
> /* If this was a vmstate, saved in recording mode,
> we need to initialize replay data fields. */
> replay_fetch_data_kind();
> diff --git a/util/qemu-timer.c b/util/qemu-timer.c
> index 2faaaf9926..b73041df4e 100644
> --- a/util/qemu-timer.c
> +++ b/util/qemu-timer.c
> @@ -48,8 +48,6 @@ typedef struct QEMUClock {
> /* We rely on BQL to protect the timerlists */
> QLIST_HEAD(, QEMUTimerList) timerlists;
>
> - int64_t last;
> -
> QEMUClockType type;
> bool enabled;
> } QEMUClock;
> @@ -130,7 +128,6 @@ static void qemu_clock_init(QEMUClockType type,
> QEMUTimerListNotifyCB
> *notify_cb
>
> clock->type = type;
> clock->enabled = (type == QEMU_CLOCK_VIRTUAL ? false : true);
> - clock->last = INT64_MIN;
> QLIST_INIT(&clock->timerlists);
> main_loop_tlg.tl[type] = timerlist_new(type, notify_cb, NULL);
> }
> @@ -628,9 +625,6 @@ int64_t timerlistgroup_deadline_ns(QEMUTimerListGroup
> *tlg)
>
> int64_t qemu_clock_get_ns(QEMUClockType type)
> {
> - int64_t now;
> - QEMUClock *clock = qemu_clock_ptr(type);
> -
> switch (type) {
> case QEMU_CLOCK_REALTIME:
> return get_clock();
> @@ -642,26 +636,12 @@ int64_t qemu_clock_get_ns(QEMUClockType type)
> return cpu_get_clock();
> }
> case QEMU_CLOCK_HOST:
> - now = REPLAY_CLOCK(REPLAY_CLOCK_HOST, get_clock_realtime());
> - clock->last = now;
> - return now;
> + return REPLAY_CLOCK(REPLAY_CLOCK_HOST, get_clock_realtime());
> case QEMU_CLOCK_VIRTUAL_RT:
> return REPLAY_CLOCK(REPLAY_CLOCK_VIRTUAL_RT, cpu_get_clock());
> }
> }
>
> -uint64_t qemu_clock_get_last(QEMUClockType type)
> -{
> - QEMUClock *clock = qemu_clock_ptr(type);
> - return clock->last;
> -}
> -
> -void qemu_clock_set_last(QEMUClockType type, uint64_t last)
> -{
> - QEMUClock *clock = qemu_clock_ptr(type);
> - clock->last = last;
> -}
> -
> void init_clocks(QEMUTimerListNotifyCB *notify_cb)
> {
> QEMUClockType type;
> --
> 2.21.0
Pavel Dovgalyuk
- [Qemu-devel] [for 4.2 PATCH 0/3] Remove time reset notifications, Dr. David Alan Gilbert (git), 2019/07/22
- [Qemu-devel] [for 4.2 PATCH 1/3] mc146818rtc: Remove reset notifiers, Dr. David Alan Gilbert (git), 2019/07/22
- [Qemu-devel] [for 4.2 PATCH 2/3] timer: Remove reset notifiers, Dr. David Alan Gilbert (git), 2019/07/22
- [Qemu-devel] [for 4.2 PATCH 3/3] timer: last, remove last bits of last, Dr. David Alan Gilbert (git), 2019/07/22
- Re: [Qemu-devel] [for 4.2 PATCH 3/3] timer: last, remove last bits of last,
Pavel Dovgalyuk <=
- Re: [Qemu-devel] [for 4.2 PATCH 0/3] Remove time reset notifications, Paolo Bonzini, 2019/07/22