|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [IA64] Followup to xen time cleanup
# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 29dfadcc5029738ad0c2a8934a51afcc834ecae5
# Parent 2e81aba147ebdb2a2dc7e39565ecd1faa7117eea
[IA64] Followup to xen time cleanup
Clean up to xen time handler. Tristan #if 0 some code because it seems
redundant, which however is actually problematic logic as a reason for
an intermittent timer oops issue of dom0. So delete it now.
Also remove vcpu_wake, since wakeup current has nothing meaningful and
simply waste cpu cycle.
Signed-off-by: Kevin Tian <kevin.tian@xxxxxxxxx>
diff -r 2e81aba147eb -r 29dfadcc5029 xen/arch/ia64/xen/xentime.c
--- a/xen/arch/ia64/xen/xentime.c Fri Mar 24 11:36:22 2006 -0700
+++ b/xen/arch/ia64/xen/xentime.c Mon Mar 27 15:32:08 2006 -0700
@@ -118,41 +118,17 @@ xen_timer_interrupt (int irq, void *dev_
#endif
#endif
-#if 0
- /* Nobody seems to be able to explain this code.
- It seems to be accumulated tricks, which are not required anymore.
- Also I have made many tests, I'd like to get confirmation from
- other site (TG). */
- if (current->domain == dom0) {
- // FIXME: there's gotta be a better way of doing this...
- // We have to ensure that domain0 is launched before we
- // call vcpu_timer_expired on it
- //domain0_ready = 1; // moved to xensetup.c
- VCPU(current,pending_interruption) = 1;
- }
- if (domain0_ready && current->domain != dom0) {
- if(vcpu_timer_expired(dom0->vcpu[0])) {
- vcpu_pend_timer(dom0->vcpu[0]);
- //vcpu_set_next_timer(dom0->vcpu[0]);
- vcpu_wake(dom0->vcpu[0]);
- }
- }
-#endif
- if (!is_idle_domain(current->domain)) {
+ if (!is_idle_domain(current->domain))
if (vcpu_timer_expired(current)) {
vcpu_pend_timer(current);
// ensure another timer interrupt happens even if
domain doesn't
vcpu_set_next_timer(current);
- vcpu_wake(current);
}
- }
+
new_itm = local_cpu_data->itm_next;
if (!VMX_DOMAIN(current) && !time_after(ia64_get_itc(), new_itm))
return IRQ_HANDLED;
-
- if (VMX_DOMAIN(current))
- vcpu_wake(current);
while (1) {
new_itm += local_cpu_data->itm_delta;
@@ -199,12 +175,7 @@ xen_timer_interrupt (int irq, void *dev_
*/
while (!time_after(new_itm, ia64_get_itc() +
local_cpu_data->itm_delta/2))
new_itm += local_cpu_data->itm_delta;
-//#ifdef XEN
-// vcpu_set_next_timer(current);
-//#else
-//printf("***** timer_interrupt: Setting itm to %lx\n",new_itm);
ia64_set_itm(new_itm);
-//#endif
/* double check, in case we got hit by a (slow) PMI: */
} while (time_after_eq(ia64_get_itc(), new_itm));
raise_softirq(TIMER_SOFTIRQ);
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [IA64] Followup to xen time cleanup,
Xen patchbot -unstable <=
|
|
|
|
|