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

[Xen-changelog] Clean up PIT-thru-ioapic setup. We don't need the legacy missed-tick



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 8aa45d7713e3c81cdd2305df125b82c9fe7bb202
# Parent  a0c07e32000a7bfe3a1dbb71b0adad3451f285e2
Clean up PIT-thru-ioapic setup. We don't need the legacy missed-tick
logic and so do not need to keep the PIT enabled thru the 8259 PIC.

Todo: arguable we should sync with x86/64 platform files, assuming they
do not throw out 'recent legacy' stuff (e.g., 32-bit only platforms
like P6). Getting rid of all the 82489DX and 486-era SMP stuff would be
great.

Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r a0c07e32000a -r 8aa45d7713e3 xen/arch/x86/io_apic.c
--- a/xen/arch/x86/io_apic.c    Fri Mar  3 10:17:09 2006
+++ b/xen/arch/x86/io_apic.c    Fri Mar  3 13:10:35 2006
@@ -1548,8 +1548,9 @@
      */
     apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT);
     init_8259A(1);
-    timer_ack = 1;
-    enable_8259A_irq(0);
+    /* XEN: Ripped out the legacy missed-tick logic, so below is not needed. */
+    /*timer_ack = 1;*/
+    /*enable_8259A_irq(0);*/
 
     pin1  = find_isa_irq_pin(0, mp_INT);
     apic1 = find_isa_irq_apic(0, mp_INT);
@@ -1617,7 +1618,7 @@
 
     printk(KERN_INFO "...trying to set up timer as ExtINT IRQ...");
 
-    timer_ack = 0;
+    /*timer_ack = 0;*/
     init_8259A(0);
     make_8259A_irq(0);
     apic_write_around(APIC_LVT0, APIC_DM_EXTINT);
diff -r a0c07e32000a -r 8aa45d7713e3 xen/arch/x86/time.c
--- a/xen/arch/x86/time.c       Fri Mar  3 10:17:09 2006
+++ b/xen/arch/x86/time.c       Fri Mar  3 13:10:35 2006
@@ -41,7 +41,6 @@
 unsigned long cpu_khz;  /* CPU clock frequency in kHz. */
 unsigned long hpet_address;
 spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
-int timer_ack = 0;
 unsigned long volatile jiffies;
 static u32 wc_sec, wc_nsec; /* UTC time at last 'time update'. */
 static spinlock_t wc_lock = SPIN_LOCK_UNLOCKED;
@@ -148,16 +147,6 @@
 {
     ASSERT(local_irq_is_enabled());
 
-    if ( timer_ack ) 
-    {
-        extern spinlock_t i8259A_lock;
-        spin_lock_irq(&i8259A_lock);
-        outb(0x0c, 0x20);
-        /* Ack the IRQ; AEOI will end it automatically. */
-        inb(0x20);
-        spin_unlock_irq(&i8259A_lock);
-    }
-    
     /* Update jiffies counter. */
     (*(unsigned long *)&jiffies)++;
 
diff -r a0c07e32000a -r 8aa45d7713e3 xen/include/asm-x86/time.h
--- a/xen/include/asm-x86/time.h        Fri Mar  3 10:17:09 2006
+++ b/xen/include/asm-x86/time.h        Fri Mar  3 13:10:35 2006
@@ -3,8 +3,6 @@
 #define __X86_TIME_H__
 
 #include <asm/msr.h>
-
-extern int timer_ack;
 
 extern void calibrate_tsc_bp(void);
 extern void calibrate_tsc_ap(void);

_______________________________________________
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®.