> Less important, but very odd is that my timer interrupt is now handled by
> the XT_PIC, not the IO-APIC. I assumed this was standard behavior. Also,
> I have a dual CPU machine, and I noticed that interrupts were no longer
> even remotely balanced between the two CPUs.
Please try the attached patch.
Michael.
diff -ru -x *.o /igphome/baraban/tmp/linux22smp/arch/i386/kernel/io_apic.c
linux/arch/i386/kernel/io_apic.c
--- /igphome/baraban/tmp/linux22smp/arch/i386/kernel/io_apic.c Thu Aug 12 16:09:15
1999
+++ linux/arch/i386/kernel/io_apic.c Thu Aug 12 16:10:27 1999
@@ -1260,11 +1260,7 @@
pin1 = find_timer_pin(mp_INT);
pin2 = find_timer_pin(mp_ExtINT);
-#ifndef __RTL__
enable_IO_APIC_irq(0);
-#else
- enableOne_IO_APIC_irq(0);
-#endif
if (!timer_irq_works()) {
if (pin1 != -1)
diff -ru -x *.o /igphome/baraban/tmp/linux22smp/arch/i386/kernel/irq.c
linux/arch/i386/kernel/irq.c
--- /igphome/baraban/tmp/linux22smp/arch/i386/kernel/irq.c Thu Aug 12 16:09:15
1999
+++ linux/arch/i386/kernel/irq.c Thu Aug 12 16:15:57 1999
@@ -118,7 +118,7 @@
unsigned int rtirq[IRQ_ARRAY_SIZE];
unsigned int pended_since_sti;
};
-struct rtl_global rtl_global ={ {0},1,IRQ_ZINIT,IRQ_NZINIT,1,IRQ_ZINIT,0} ;
+struct rtl_global rtl_global ={
+SPIN_LOCK_UNLOCKED,1,IRQ_ZINIT,IRQ_NZINIT,1,IRQ_ZINIT,0} ;
/* macros for touching the global structure */
#define test_g(ix,y) test_bit(irq_to_pos(ix),&y[irq_to_index(ix)])
@@ -1740,8 +1740,8 @@
}
-extern void rtl_time_init(void);
-__initfunc( void rtl_init(void)){
+void rtl_init(void)
+{
DeclareAndInit(cpu_id);
#ifdef CONFIG_RTL
printk("RTL start");
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/