Re: 2.2.20pre1: Problems with SMP

Johannes Erdfelt (jerdfelt@valinux.com)
Wed, 16 May 2001 12:56:55 -0700


On Mon, May 07, 2001, Shane Wegner <shane@cm.nu> wrote:
> On Mon, May 07, 2001 at 11:02:50AM -0700, Johannes Erdfelt wrote:
> > On Mon, May 07, 2001, Shane Wegner <shane@cm.nu> wrote:
> > >
> > > That does indeed correct the problem. 2.2.20pre1 now works
> > > as expected.
> >
> > Hmm, that uses a VIA based chipset. I didn't know they did SMP yet. Does
> > 2.4 work on this system?
>
> The last 2.4 kernel I tried was 2.4.3 I believe and it
> worked fine more or less. I haven't tried any later 2.4
> kernels yet.

Could you try this patch? It applies on top of 2.2.20pre1

It also cleans up a couple of comments

JE

--- arch/i386/kernel/io_apic.c.old Wed May 16 12:48:03 2001
+++ arch/i386/kernel/io_apic.c Wed May 16 12:55:30 2001
@@ -204,6 +204,8 @@
/*
* We disable IO-APIC IRQs by setting their 'destination CPU mask' to
* zero. Trick by Ramesh Nalluri.
+ * Not anymore. This causes problems on some IO-APIC's, notably AMD 760MP's
+ * So we do it a more 2.4 kind of way now which should be safer -jerdfelt
*/
DO_ACTION( mask, 0, |= 0x00010000, io_apic_sync(entry->apic))/* mask = 1 */
DO_ACTION( unmask, 0, &= 0xfffeffff, ) /* mask = 0 */
@@ -646,8 +648,8 @@

entry.delivery_mode = dest_LowestPrio;
entry.dest_mode = 1; /* logical delivery */
- entry.mask = 0; /* enable IRQ */
- entry.dest.logical.logical_dest = 0xff; /* but no route */
+ entry.mask = 1; /* disable IRQ */
+ entry.dest.logical.logical_dest = 0xff;

idx = find_irq_entry(apic,pin,mp_INT);
if (idx == -1) {
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/