From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:34573) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJKUm-0000uJ-PV for qemu-devel@nongnu.org; Mon, 09 May 2011 03:03:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QJKUl-0003zo-8y for qemu-devel@nongnu.org; Mon, 09 May 2011 03:03:08 -0400 Received: from mx1.redhat.com ([209.132.183.28]:63078) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QJKUl-0003zW-28 for qemu-devel@nongnu.org; Mon, 09 May 2011 03:03:07 -0400 From: Ulrich Obergfell Date: Mon, 9 May 2011 09:03:16 +0200 Message-Id: <1304924601-3848-1-git-send-email-uobergfe@redhat.com> Subject: [Qemu-devel] [PATCH v4 0/5] hpet 'driftfix': alleviate time drift with HPET periodic timers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: aliguori@us.ibm.com, kvm@vger.kernel.org, jan.kiszka@siemens.com, mtosatti@redhat.com, uobergfe@redhat.com, gcosta@redhat.com, avi@redhat.com Hi, This is version 4 of a series of patches that I originally posted in: http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01989.html http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01992.html http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01991.html http://lists.gnu.org/archive/html/qemu-devel/2011-03/msg01990.html http://article.gmane.org/gmane.comp.emulators.kvm.devel/69325 http://article.gmane.org/gmane.comp.emulators.kvm.devel/69326 http://article.gmane.org/gmane.comp.emulators.kvm.devel/69327 http://article.gmane.org/gmane.comp.emulators.kvm.devel/69328 Changes since version 3: in patch part 1/5 and part 4/5 - Added stub functions for 'target_reset_irq_delivered' and 'target_get_irq_delivered'. Added registration functions that are used by apic code to replace the stubs. - Removed NULL pointer checks from update_irq(). in patch part 5/5 - A minor modification in hpet_timer_has_tick_backlog(). - Renamed the local variable 'irq_count' in hpet_timer() to 'period_count'. - Driftfix-related fields in struct 'HPETTimer' are no longer being initialized/reset in hpet_reset(). Added the function hpet_timer_driftfix_reset() which is called when the guest . sets the 'CFG_ENABLE' bit (overall enable) in the General Configuration Register. . sets the 'TN_ENABLE' bit (timer N interrupt enable) in the Timer N Configuration and Capabilities Register. Please review and please comment. Regards, Uli Ulrich Obergfell (5): hpet 'driftfix': add hooks required to detect coalesced interrupts (x86 apic only) hpet 'driftfix': add driftfix property to HPETState and DeviceInfo hpet 'driftfix': add fields to HPETTimer and VMStateDescription hpet 'driftfix': add code in update_irq() to detect coalesced interrupts (x86 apic only) hpet 'driftfix': add code in hpet_timer() to compensate delayed callbacks and coalesced interrupts hw/apic.c | 4 ++ hw/hpet.c | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- hw/pc.h | 13 +++++++ vl.c | 13 +++++++ 4 files changed, 145 insertions(+), 4 deletions(-)