diff mbox

qemu-ga-win: Document 'guest-set-time' limitation

Message ID 8c78bfbfd63d505ce4f5e8949fb118c02febac0f.1421742507.git.mprivozn@redhat.com
State New
Headers show

Commit Message

Michal Prívozník Jan. 20, 2015, 8:30 a.m. UTC
The command implementation for Windows guest has this limitation. If
no time to set has been provided the documentation for the command
states that time should be read from RTC. However, on Windows bare
GetSystemTime() is used, which does not read anything from RTC rather
than return system time. Yeah, that system time which is wrong (after
stop & cont) and which we want to set.

However, there's no simple way to read RTC on windows yet [1], so
until the time somebody comes with bright implementation, we should at
least document the command implementation limitation.

1: http://msdn.microsoft.com/en-us/library/aa908981.aspx

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 qga/qapi-schema.json | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Eric Blake Jan. 20, 2015, 5:11 p.m. UTC | #1
On 01/20/2015 01:30 AM, Michal Privoznik wrote:
> The command implementation for Windows guest has this limitation. If
> no time to set has been provided the documentation for the command
> states that time should be read from RTC. However, on Windows bare
> GetSystemTime() is used, which does not read anything from RTC rather
> than return system time. Yeah, that system time which is wrong (after
> stop & cont) and which we want to set.
> 
> However, there's no simple way to read RTC on windows yet [1], so
> until the time somebody comes with bright implementation, we should at
> least document the command implementation limitation.

I think it would be wiser to update the Windows guest-agent code to
explicitly fail instead of calling a useless GetSystemTime(), if we
can't meet the documented semantics of calling the function without a
timestamp.

> 
> 1: http://msdn.microsoft.com/en-us/library/aa908981.aspx
> 
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
>  qga/qapi-schema.json | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json
> index 376e79f..91821ef 100644
> --- a/qga/qapi-schema.json
> +++ b/qga/qapi-schema.json
> @@ -121,7 +121,10 @@
>  # given value, then sets the Hardware Clock (RTC) to the
>  # current System Time. This will make it easier for a guest
>  # to resynchronize without waiting for NTP. If no @time is
> -# specified, then the time to set is read from RTC.
> +# specified, then the time to set is read from RTC. On Windows
> +# guests there's implementation limitation that does not read the
> +# time from RTC if no time has been provided. Users are advised
> +# to allways pass a value for Windows guests.

Grammar is awkward, and there's a typo in 'allways'.  If we are okay
with just a doc change (although I argued above that we really should
have a code change), then I'd go with something more like:

In the current implementation, Windows guests are unable to read time
from the RTC, so users are advised to always pass a value.
diff mbox

Patch

diff --git a/qga/qapi-schema.json b/qga/qapi-schema.json
index 376e79f..91821ef 100644
--- a/qga/qapi-schema.json
+++ b/qga/qapi-schema.json
@@ -121,7 +121,10 @@ 
 # given value, then sets the Hardware Clock (RTC) to the
 # current System Time. This will make it easier for a guest
 # to resynchronize without waiting for NTP. If no @time is
-# specified, then the time to set is read from RTC.
+# specified, then the time to set is read from RTC. On Windows
+# guests there's implementation limitation that does not read the
+# time from RTC if no time has been provided. Users are advised
+# to allways pass a value for Windows guests.
 #
 # @time: #optional time of nanoseconds, relative to the Epoch
 #        of 1970-01-01 in UTC.