All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
To: Pavel Dovgalyuk <dovgaluk@ispras.ru>
Cc: pbonzini@redhat.com, qemu-devel@nongnu.org, pavel.dovgaluk@ispras.ru
Subject: Re: [Qemu-devel] [for 4.2 PATCH 3/3] timer: last, remove last bits of last
Date: Wed, 24 Jul 2019 12:20:08 +0100	[thread overview]
Message-ID: <20190724112008.GE2717@work-vm> (raw)
In-Reply-To: <000901d5411b$1b7e1d70$527a5850$@ru>

* Pavel Dovgalyuk (dovgaluk@ispras.ru) wrote:
> Hello!
> 
> > From: Dr. David Alan Gilbert (git) [mailto:dgilbert@redhat.com]
> > 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.

OK, I'll cook a v2 that removes it and bumps the version.

Dave

> > 
> > Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> > ---
> >  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
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK


  reply	other threads:[~2019-07-24 11:20 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-22 15:07 [Qemu-devel] [for 4.2 PATCH 0/3] Remove time reset notifications Dr. David Alan Gilbert (git)
2019-07-22 15:07 ` [Qemu-devel] [for 4.2 PATCH 1/3] mc146818rtc: Remove reset notifiers Dr. David Alan Gilbert (git)
2019-07-22 15:07 ` [Qemu-devel] [for 4.2 PATCH 2/3] timer: " Dr. David Alan Gilbert (git)
2019-07-22 15:07 ` [Qemu-devel] [for 4.2 PATCH 3/3] timer: last, remove last bits of last Dr. David Alan Gilbert (git)
2019-07-23  5:54   ` Pavel Dovgalyuk
2019-07-24 11:20     ` Dr. David Alan Gilbert [this message]
2019-07-22 16:46 ` [Qemu-devel] [for 4.2 PATCH 0/3] Remove time reset notifications Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190724112008.GE2717@work-vm \
    --to=dgilbert@redhat.com \
    --cc=dovgaluk@ispras.ru \
    --cc=pavel.dovgaluk@ispras.ru \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.