[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: [rtl] BETA11: crashes and spurious interrupts.



> 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 majordomo@rtlinux.cs.nmt.edu OR
echo "unsubscribe rtl <Your_email>" | mail majordomo@rtlinux.cs.nmt.edu
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/