qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Zhang, Yang Z" <yang.z.zhang@intel.com>
Cc: "aliguori@us.ibm.com" <aliguori@us.ibm.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"Shan, Haitao" <haitao.shan@intel.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"avi@redhat.com" <avi@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 3/3] stop the periodic RTC update timer
Date: Tue, 10 Jan 2012 10:24:32 +0100	[thread overview]
Message-ID: <4F0C03D0.1010801@redhat.com> (raw)
In-Reply-To: <A9667DDFB95DB7438FA9D7D576C3D87E023263@SHSMSX102.ccr.corp.intel.com>

On 01/10/2012 07:37 AM, Zhang, Yang Z wrote:
>> Also, I'm not sure if the update in progress flag still works.
>> Clients are supposed to wait for UIP=0 before reading the RTC,
>> and an update is supposed to be at least 220 microseconds away
>> when UIP=0.
>
> Hardware need a period time to update clock and it would not provide
> the right value during the update. So it uses UIP to notify the
> software doesn't believe the value if the UIP is set. For emulation,
> you can read RTC at any time and it always gives you the right value.
> So there is no need to emulate UIP.

This is incorrect, for two reasons.  First, the UIP is in the spec, and 
we have to implement it.  Second, reading the clock is not atomic, and 
waiting for UIP=0 gives you 220 microseconds during which you know that 
the read will appear atomic.

>> Also, it would be nice if you could based these patches on the
>> 4-patch series I sent recently that fixes some bugs with
>> interrupts and 12-hour emulation.
>
> When it will be check in?

I don't know. :)

>> There is another aspect of RTC emulation that is missing in the
>> current code; after setting the clock, the next second tick will
>> occur in exactly 500 ms.  I have patches to fix this, but it
>> looks like it could be incorporated in your series, too.
>
> I do not quite understand it. What does "setting the clock" mean? And
> what is the next second tick?

It means that the (not externally visible) millisecond value is set to 
500 when you modify the current time of the RTC.  The next update of the 
clock will happen exactly 500 ms after you reset bit 7 of register B.

Paolo

  reply	other threads:[~2012-01-10  9:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-06  7:37 [Qemu-devel] [PATCH 3/3] stop the periodic RTC update timer Zhang, Yang Z
2012-01-06 17:26 ` Jan Kiszka
2012-01-09  7:10   ` Zhang, Yang Z
2012-01-09  8:19 ` Paolo Bonzini
2012-01-10  6:37   ` Zhang, Yang Z
2012-01-10  9:24     ` Paolo Bonzini [this message]
2012-01-11  0:56       ` Zhang, Yang Z
2012-01-11  7:24         ` Paolo Bonzini
2012-01-12  0:51           ` Zhang, Yang Z
2012-01-11  7:25         ` Philipp Hahn
2012-01-11 13:10 ` Marcelo Tosatti
2012-01-12  0:00   ` Zhang, Yang Z
2012-01-12  9:26     ` Paolo Bonzini
2012-01-12 10:20       ` Marcelo Tosatti
2012-01-12 10:43         ` Paolo Bonzini
2012-01-12  9:59     ` Marcelo Tosatti
2012-01-12 10:03       ` Marcelo Tosatti
2012-01-12 10:12         ` Zhang, Yang Z

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=4F0C03D0.1010801@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=aliguori@us.ibm.com \
    --cc=avi@redhat.com \
    --cc=haitao.shan@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.org \
    --cc=yang.z.zhang@intel.com \
    /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).