WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] x86: reprogram LAPIC timer in pit_broadca

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: reprogram LAPIC timer in pit_broadcast_exit
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 29 Jul 2008 11:30:13 -0700
Delivery-date: Tue, 29 Jul 2008 11:30:09 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1217324550 -3600
# Node ID 9454fae58cb83ad678492879e82ecef2eab08705
# Parent  507045f254e91bd19251c7b327be8f0540561c0d
x86: reprogram LAPIC timer in pit_broadcast_exit

Thus to remove possible timer expiring delay caused by deep C state
LAPIC timer stopping.

Signed-off-by: Wei Gang <gang.wei@xxxxxxxxx>
---
 xen/arch/x86/time.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletion(-)

diff -r 507045f254e9 -r 9454fae58cb8 xen/arch/x86/time.c
--- a/xen/arch/x86/time.c       Tue Jul 29 10:41:41 2008 +0100
+++ b/xen/arch/x86/time.c       Tue Jul 29 10:42:30 2008 +0100
@@ -1135,7 +1135,10 @@ void pit_broadcast_enter(void)
 
 void pit_broadcast_exit(void)
 {
-    cpu_clear(smp_processor_id(), pit_broadcast_mask);
+    int cpu = smp_processor_id();
+
+    if ( cpu_test_and_clear(cpu, pit_broadcast_mask) )
+        reprogram_timer(per_cpu(timer_deadline, cpu));
 }
 
 int pit_broadcast_is_available(void)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86: reprogram LAPIC timer in pit_broadcast_exit, Xen patchbot-unstable <=