[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Unlike x86 and apparently ia64, PowerPC delivers timer interrupts as a



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 5618b13ac97fa7db290922c47f46cfb431632917
# Parent  be669c4b1e6b34f1de52137cd86108a821df90e3
Unlike x86 and apparently ia64, PowerPC delivers timer interrupts as a 
different exception than device interrupts. For PowerPC Xen, we emulate this 
exception rather than delivering timer events as virtual IRQs. This patch 
introduces no functional changes for x86 and ia64, but is a required change 
for xen/arch/ppc.

Signed-off-by: Hollis Blanchard <hollisb@xxxxxxxxxx>

diff -r be669c4b1e6b -r 5618b13ac97f xen/arch/ia64/xen/xentime.c
--- a/xen/arch/ia64/xen/xentime.c       Wed Mar 15 09:32:34 2006
+++ b/xen/arch/ia64/xen/xentime.c       Wed Mar 15 10:06:45 2006
@@ -258,4 +258,8 @@
        return 1;
 }
 
-
+void send_timer_event(struct vcpu *v)
+{
+       send_guest_virq(v, VIRQ_TIMER);
+}
+
diff -r be669c4b1e6b -r 5618b13ac97f xen/arch/x86/time.c
--- a/xen/arch/x86/time.c       Wed Mar 15 09:32:34 2006
+++ b/xen/arch/x86/time.c       Wed Mar 15 10:06:45 2006
@@ -923,6 +923,11 @@
     setup_irq(0, &irq0);
 }
 
+void send_timer_event(struct vcpu *v)
+{
+    send_guest_virq(v, VIRQ_TIMER);
+}
+
 /*
  * Local variables:
  * mode: C
diff -r be669c4b1e6b -r 5618b13ac97f xen/common/schedule.c
--- a/xen/common/schedule.c     Wed Mar 15 09:32:34 2006
+++ b/xen/common/schedule.c     Wed Mar 15 10:06:45 2006
@@ -574,7 +574,7 @@
     {
         update_dom_time(next);
         if ( next->sleep_tick != schedule_data[cpu].tick )
-            send_guest_virq(next, VIRQ_TIMER);
+            send_timer_event(next);
     }
 
     TRACE_4D(TRC_SCHED_SWITCH,
@@ -610,7 +610,7 @@
     if ( !is_idle_vcpu(v) )
     {
         update_dom_time(v);
-        send_guest_virq(v, VIRQ_TIMER);
+        send_timer_event(v);
     }
 
     page_scrub_schedule_work();
@@ -624,7 +624,7 @@
     struct vcpu *v = data;
 
     update_dom_time(v);
-    send_guest_virq(v, VIRQ_TIMER);
+    send_timer_event(v);
 }
 
 /* SCHEDOP_poll timeout callback. */
diff -r be669c4b1e6b -r 5618b13ac97f xen/include/xen/time.h
--- a/xen/include/xen/time.h    Wed Mar 15 09:32:34 2006
+++ b/xen/include/xen/time.h    Wed Mar 15 10:06:45 2006
@@ -59,6 +59,8 @@
 extern void do_settime(
     unsigned long secs, unsigned long nsecs, u64 system_time_base);
 
+extern void send_timer_event(struct vcpu *v);
+
 #endif /* __XEN_TIME_H__ */
 
 /*

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.