Return value of qemu_timedate_diff(), used for calculation offset in QAPI 'RTC_CHANGE' event restored to keep compatibility, although it isn't documented that difference is relative to host clock advancement.
Added important note to 'RTC_CHANGE' event description to highlight established implementation specifics.
Signed-off-by: Artem Pisarenko <artem.k.pisarenko@gmail.com>
---
qapi/misc.json | 3 ++-
vl.c | 10 +++++-----
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/qapi/misc.json b/qapi/misc.json
index ada9af5..ed866f2 100644
--- a/qapi/misc.json
+++ b/qapi/misc.json
@@ -3070,7 +3070,8 @@
# Emitted when the guest changes the RTC time.
#
# @offset: offset between base RTC clock (as specified by -rtc base), and
-# new RTC clock value
+# new RTC clock value. Note that value will be different depending
+# on clock choosen to drive RTC (specified by -rtc clock).
#
# Note: This event is rate-limited.
#
diff --git a/vl.c b/vl.c
index 78a8a68..c350aba 100644
--- a/vl.c
+++ b/vl.c
@@ -788,10 +788,10 @@ void qemu_system_vmstop_request(RunState state)
/***********************************************************/
/* RTC reference time/date access */
-static time_t qemu_ref_timedate(void)
+static time_t qemu_ref_timedate(QEMUClockType clock)
{
- time_t value = qemu_clock_get_ms(rtc_clock) / 1000;
- switch (rtc_clock) {
+ time_t value = qemu_clock_get_ms(clock) / 1000;
+ switch (clock) {
case QEMU_CLOCK_REALTIME:
value -= rtc_realtime_clock_offset;
/* no break */
@@ -811,7 +811,7 @@ static time_t qemu_ref_timedate(void)
void qemu_get_timedate(struct tm *tm, int offset)
{
- time_t ti = qemu_ref_timedate();
+ time_t ti = qemu_ref_timedate(rtc_clock);
ti += offset;
@@ -849,7 +849,7 @@ int qemu_timedate_diff(struct tm *tm)
break;
}
- return seconds - qemu_ref_timedate();
+ return seconds - qemu_ref_timedate(QEMU_CLOCK_HOST);
}
static void configure_rtc_base_datetime(const char *startdate)
--
2.7.4
On 10/17/18 7:23 AM, Artem Pisarenko wrote: > Return value of qemu_timedate_diff(), used for calculation offset in QAPI 'RTC_CHANGE' event restored to keep compatibility, although it isn't documented that difference is relative to host clock advancement. > Added important note to 'RTC_CHANGE' event description to highlight established implementation specifics. > Hmm, I just replied to v1 before seeing that you sent v2; my comments about long lines and a typo still apply. > Signed-off-by: Artem Pisarenko <artem.k.pisarenko@gmail.com> > --- > qapi/misc.json | 3 ++- > vl.c | 10 +++++----- > 2 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/qapi/misc.json b/qapi/misc.json > index ada9af5..ed866f2 100644 > --- a/qapi/misc.json > +++ b/qapi/misc.json > @@ -3070,7 +3070,8 @@ > # Emitted when the guest changes the RTC time. > # > # @offset: offset between base RTC clock (as specified by -rtc base), and > -# new RTC clock value > +# new RTC clock value. Note that value will be different depending > +# on clock choosen to drive RTC (specified by -rtc clock). -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
I fixed them and ready to submit v3. Anything else ? ср, 17 окт. 2018 г. в 20:01, Eric Blake <eblake@redhat.com>: > On 10/17/18 7:23 AM, Artem Pisarenko wrote: > > Return value of qemu_timedate_diff(), used for calculation offset in > QAPI 'RTC_CHANGE' event restored to keep compatibility, although it isn't > documented that difference is relative to host clock advancement. > > Added important note to 'RTC_CHANGE' event description to highlight > established implementation specifics. > > > > Hmm, I just replied to v1 before seeing that you sent v2; my comments > about long lines and a typo still apply. > > > Signed-off-by: Artem Pisarenko <artem.k.pisarenko@gmail.com> > > --- > > qapi/misc.json | 3 ++- > > vl.c | 10 +++++----- > > 2 files changed, 7 insertions(+), 6 deletions(-) > > > > diff --git a/qapi/misc.json b/qapi/misc.json > > index ada9af5..ed866f2 100644 > > --- a/qapi/misc.json > > +++ b/qapi/misc.json > > @@ -3070,7 +3070,8 @@ > > # Emitted when the guest changes the RTC time. > > # > > # @offset: offset between base RTC clock (as specified by -rtc base), > and > > -# new RTC clock value > > +# new RTC clock value. Note that value will be different > depending > > +# on clock choosen to drive RTC (specified by -rtc clock). > -- > Eric Blake, Principal Software Engineer > Red Hat, Inc. +1-919-301-3266 <(919)%20301-3266> > Virtualization: qemu.org | libvirt.org > -- С уважением, Артем Писаренко
© 2016 - 2025 Red Hat, Inc.