From: Liran Alon <liran.alon@oracle.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: ehabkost@redhat.com, qemu-devel@nongnu.org,
Nikita Leshenko <nikita.leshchenko@oracle.com>,
pbonzini@redhat.com, rth@twiddle.net
Subject: Re: [PATCH v3 10/16] hw/i386/vmport: Add support for CMD_GETTIME
Date: Tue, 31 Mar 2020 15:35:50 +0300 [thread overview]
Message-ID: <a849e7e6-8dda-921a-4cac-a2ca770bc61d@oracle.com> (raw)
In-Reply-To: <94a0992f-e163-9664-d9e6-89a35259b73a@oracle.com>
On 22/03/2020 13:22, Liran Alon wrote:
>
> On 15/03/2020 13:56, Liran Alon wrote:
>>
>> On 14/03/2020 22:56, Michael S. Tsirkin wrote:
>>> On Sat, Mar 14, 2020 at 10:05:20PM +0200, Liran Alon wrote:
>>>> Michael, you can also refer to this VMware time-keeping whitepaper:
>>>> https://urldefense.com/v3/__https://www.vmware.com/pdf/vmware_timekeeping.pdf__;!!GqivPVa7Brio!K8sfnfvVgKwrQ4SMwX-K6-S5yR4ln9_qZ6o4GzIpQkohfWtinlplNhXzFlyUgks$
>>>> .
>>>> According to section "Initializing and Correcting Wall-Clock Time":
>>>> """
>>>> VMware Tools can also optionally be used to correct long‐term drift
>>>> and
>>>> errors by periodically
>>>> resynchronizing the virtual machine’s clock to the host’s clock,
>>>> but the
>>>> current version at this writing is limited.
>>>> In particular, in guest operating systems other than NetWare, it
>>>> does not
>>>> correct errors in which the guest clock
>>>> is ahead of real time, only those in which the guest clock is behind.
>>>>
>>>> """
>>> This talks about guest time.
>>> What this does not mention is whether hosts need to employ any
>>> mechanisms
>>> to synchronise wall clock between hosts.
>> The above mentioned whitepaper also discuss how VMware maintains the
>> wallclock time across migrations (vMotion).
>> See section "Using VMware Tools Clock Synchronization" in whitepaper.
>>
>> Specifically, there is an option in .vmx file named
>> "time.synchronize.resume.disk" which:
>> """
>> If set to TRUE, the clock syncs after resuming from suspend and after
>> migrating to a new host using the VMware VMotion feature.
>> """
>>
>> The matching functionality in open-vm-tools can can be seen in
>> services/plugins/timeSync/timeSync.c where ToolsOnLoad()
>> registers the "Time_Synchronize" RpcCallback, which is
>> TimeSyncTcloHandler(), that is possibly allowed to sync time
>> backwards (Note the "backwardSync" var).
>>
>> The current patch-series I have submitted doesn't implement this
>> RpcCallback functionality.
>> That work can be delayed to a future patch-series that will add this
>> extra functionality as-well.
>>
>>>> If I understand correctly, this seems to validate my assumption
>>>> that current
>>>> implementation for CMD_GETTIME is sufficient.
>>> So I am concerned this does not interact well with other time sources
>>> in QEMU. For example, it's very useful to set guest time with -rtc base
>>> flag.
>>>
>>> Can you use qemu_get_timedate?
>>>
>> This is a very good point.
>> VMware also have the ability that allows user to explicitly set guest
>> time with .vmx "rtc.startTime" option.
>> (The time-zone can also be set by specifying an offset from UTC with
>> "rtc.diffFromUTC" option)
>>
>> However, if you will read section "Using VMware Tools Clock
>> Synchronization -> Disabling All Synchronization" in above mentioned
>> whitepaper,
>> you will notice that in VMware's design, VMPort CMD_GETTIME command
>> is intentionally not synced with virtual CMOS TOD. i.e. The section
>> explicitly
>> documents that if a user wants to set guest time to fictitious time,
>> user must disable VMware Tools time sync functionality by manipulating
>> "tools.syncTime" and "time.synchronize.*" configuration options as
>> desired.
>>
>> Therefore, I think current patch VMPort CMD_GETTIME command
>> implementation is correct.
>> What do you think?
>>
>> -Liran
>>
> Gentle ping.
>
> I would like to send the next version of the patch-series.
> But before I do, I would like to know what we have agreed upon
> regarding this patch.
>
> Thanks,
> -Liran
>
Another gentle ping before I send v4 of patch-series.
Thanks,
-Liran
next prev parent reply other threads:[~2020-03-31 12:36 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-12 16:54 [PATCH v3 00/16]: hw/i386/vmport: Bug fixes and improvements Liran Alon
2020-03-12 16:54 ` [PATCH v3 01/16] hw/i386/vmport: Add reference to VMware open-vm-tools Liran Alon
2020-03-12 16:54 ` [PATCH v3 02/16] hw/i386/vmport: Add device properties Liran Alon
2020-03-13 19:53 ` Philippe Mathieu-Daudé
2020-03-12 16:54 ` [PATCH v3 03/16] hw/i386/vmport: Propagate IOPort read to vCPU EAX register Liran Alon
2020-03-12 16:54 ` [PATCH v3 04/16] hw/i386/vmport: Set EAX to -1 on failed and unsupported commands Liran Alon
2020-03-12 16:54 ` [PATCH v3 05/16] hw/i386/vmport: Introduce vmware-vmx-version property Liran Alon
2020-03-13 19:55 ` Philippe Mathieu-Daudé
2020-03-12 16:54 ` [PATCH v3 06/16] hw/i386/vmport: Report vmware-vmx-type in CMD_GETVERSION Liran Alon
2020-03-12 16:54 ` [PATCH v3 07/16] hw/i386/vmport: Introduce vmport.h Liran Alon
2020-03-13 19:57 ` Philippe Mathieu-Daudé
2020-03-13 22:38 ` Liran Alon
2020-03-14 8:31 ` Philippe Mathieu-Daudé
2020-03-14 12:13 ` Liran Alon
2020-03-14 18:25 ` Michael S. Tsirkin
2020-03-14 19:08 ` Liran Alon
2020-03-12 16:54 ` [PATCH v3 08/16] hw/i386/vmport: Define enum for all commands Liran Alon
2020-03-13 19:59 ` Philippe Mathieu-Daudé
2020-03-13 20:05 ` Philippe Mathieu-Daudé
2020-03-13 22:42 ` Liran Alon
2020-03-13 22:40 ` Liran Alon
2020-03-12 16:54 ` [PATCH v3 09/16] hw/i386/vmport: Add support for CMD_GETBIOSUUID Liran Alon
2020-03-12 16:54 ` [PATCH v3 10/16] hw/i386/vmport: Add support for CMD_GETTIME Liran Alon
2020-03-13 0:04 ` Michael S. Tsirkin
2020-03-13 15:25 ` Liran Alon
2020-03-13 15:47 ` Michael S. Tsirkin
2020-03-13 16:26 ` Liran Alon
2020-03-14 18:18 ` Michael S. Tsirkin
2020-03-14 19:04 ` Liran Alon
2020-03-14 19:14 ` Michael S. Tsirkin
2020-03-14 19:17 ` Liran Alon
2020-03-14 19:26 ` Michael S. Tsirkin
2020-03-14 19:58 ` Nikita Leshenko
2020-03-14 20:05 ` Liran Alon
2020-03-14 20:56 ` Michael S. Tsirkin
2020-03-15 11:56 ` Liran Alon
2020-03-22 11:22 ` Liran Alon
2020-03-31 12:35 ` Liran Alon [this message]
2020-03-14 20:48 ` Michael S. Tsirkin
2020-03-14 19:04 ` Liran Alon
2020-03-12 16:54 ` [PATCH v3 11/16] hw/i386/vmport: Add support for CMD_GETTIMEFULL Liran Alon
2020-03-13 0:06 ` Michael S. Tsirkin
2020-03-13 15:26 ` Liran Alon
2020-03-12 16:54 ` [PATCH v3 12/16] hw/i386/vmport: Add support for CMD_GET_VCPU_INFO Liran Alon
2020-03-13 0:09 ` Michael S. Tsirkin
2020-03-13 0:11 ` Liran Alon
2020-03-12 16:54 ` [PATCH v3 13/16] hw/i386/vmport: Allow x2apic without IR Liran Alon
2020-03-12 16:54 ` [PATCH v3 14/16] i386/cpu: Store LAPIC bus frequency in CPU structure Liran Alon
2020-03-12 16:54 ` [PATCH v3 15/16] hw/i386/vmport: Add support for CMD_GETHZ Liran Alon
2020-03-13 20:07 ` Philippe Mathieu-Daudé
2020-03-13 22:44 ` Liran Alon
2020-03-14 8:27 ` Philippe Mathieu-Daudé
2020-03-14 21:52 ` Michael S. Tsirkin
2020-03-15 0:10 ` Liran Alon
2020-03-12 16:54 ` [PATCH v3 16/16] hw/i386/vmport: Assert vmport initialized before registering commands Liran Alon
2020-05-21 16:15 ` [PATCH v3 00/16]: hw/i386/vmport: Bug fixes and improvements 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=a849e7e6-8dda-921a-4cac-a2ca770bc61d@oracle.com \
--to=liran.alon@oracle.com \
--cc=ehabkost@redhat.com \
--cc=mst@redhat.com \
--cc=nikita.leshchenko@oracle.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).