From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=60369 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PmSaw-0006rY-L0 for qemu-devel@nongnu.org; Mon, 07 Feb 2011 10:01:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PmSau-0008UA-Tj for qemu-devel@nongnu.org; Mon, 07 Feb 2011 10:01:38 -0500 Received: from david.siemens.de ([192.35.17.14]:31644) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PmSau-0008TY-LE for qemu-devel@nongnu.org; Mon, 07 Feb 2011 10:01:36 -0500 Message-ID: <4D50094D.1040003@siemens.com> Date: Mon, 07 Feb 2011 16:01:33 +0100 From: Jan Kiszka MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [RFC: 0/2] patch for QEMU HPET periodic timer emulation to alleviate time drift References: <480481933.225059.1296734409954.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com> <1375835067.226263.1296740625327.JavaMail.root@zmail07.collab.prod.int.phx2.redhat.com> <4D4AC99A.2070803@siemens.com> <4D4B0B07.2040904@codemonkey.ws> <4D4B1CF8.8040800@web.de> <4D4B5F23.7040801@codemonkey.ws> <4D4BBF55.9060000@web.de> <4D4FE6BF.5080502@redhat.com> <4D4FEF81.1040603@codemonkey.ws> <4D4FF02F.2030309@redhat.com> <4D4FF24A.7000004@codemonkey.ws> <4D4FFD3B.2030903@siemens.com> <4D5001A0.8020503@codemonkey.ws> <4D5004FC.80000@siemens.com> <4D5007B9.7060806@codemonkey.ws> <4D5008B3.90505@redhat.com> In-Reply-To: <4D5008B3.90505@redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Avi Kivity Cc: qemu-devel , Glauber Costa , Ulrich Obergfell , kvm On 2011-02-07 15:58, Avi Kivity wrote: > On 02/07/2011 04:54 PM, Anthony Liguori wrote: >> >>> Why the accumulated_ticks argument? >> >> Then the missing ticks is stored in the PeriodicTimer instead of >> storing it in the device state. That means we won't forget to save it >> in vmstate. >> >> It's convenient because then if we lose ticks in the PeriodicTimer >> layer, the devices have instance access to that info. When you do a >> read() from timerfd, it returns the number of coalesced events. >> That's the interface I had in my mind. >> >> We could just add a getter for PeriodicTimer and it would serve the >> same purpose. > > If a drift compensation policy is in effect, you don't need the missed > ticks, since you will get one callback for each (delayed) tick. If > there is no drift compensation policy, presumably you aren't interested > in lost ticks. So the ticks argument isn't very useful. Exactly. > > On the other hand, we need a way to inject lost ticks into a > PeriodicTimer. If interrupt injection detects that an interrupt was > coalesced, we want the timer to schedule a new tick for us. Isn't absence of corresponding call to periodic_timer_ack() sufficient? Jan -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux