mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Johannes Erdfelt <johannes@erdfelt.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Joel Jaeggli <joelja@darkwing.uoregon.edu>,
	"Nadav Har'El" <nyh@math.technion.ac.il>,
	linux-kernel@vger.kernel.org, agmon@techunix.technion.ac.il
Subject: Re: SMP possible with AMD CPUs?
Date: Wed, 1 Aug 2001 22:16:41 -0400	[thread overview]
Message-ID: <20010801221640.H784@sventech.com> (raw)
In-Reply-To: <Pine.LNX.4.33.0108011318120.19875-100000@twin.uoregon.edu> <E15S6NY-00086O-00@the-village.bc.nu>
In-Reply-To: <E15S6NY-00086O-00@the-village.bc.nu>; from alan@lxorguk.ukuu.org.uk on Thu, Aug 02, 2001 at 01:30:19AM +0100

[-- Attachment #1: Type: text/plain, Size: 586 bytes --]

On Thu, Aug 02, 2001, Alan Cox <alan@lxorguk.ukuu.org.uk> wrote:
> > the combination of the athlon mp and the amd 761 chipset will do
> > multiprocessor support without trouble... you will want to use 2.4 becuase
> > lots of devices on the boards  aren't supported by 2.2...
> 
> Athlon SMP will actually not always work with 2.2. Quite a few folks
> reported problems and patches for 2.2.20pre fixes that and broke other
> stuff so got reverted.
> 
> 2.4 seems to do the job nicely

I sent you a new patch which fixes the problem.

Here's the original with the new patch as well.

JE


[-- Attachment #2: athlon-smp-1.patch --]
[-- Type: text/plain, Size: 1608 bytes --]

Index: linux/arch/i386/kernel/io_apic.c
diff -u linux/arch/i386/kernel/io_apic.c:1.2.12.2 linux/arch/i386/kernel/io_apic.c:1.2.12.3
--- linux/arch/i386/kernel/io_apic.c:1.2.12.2	Thu Sep 28 01:20:08 2000
+++ linux/arch/i386/kernel/io_apic.c	Tue Apr  3 15:37:29 2001
@@ -205,8 +205,6 @@
  * We disable IO-APIC IRQs by setting their 'destination CPU mask' to
  * zero. Trick by Ramesh Nalluri.
  */
-DO_ACTION( disable, 1, &= 0x00ffffff, io_apic_sync(entry->apic))/* destination = 0x00 */
-DO_ACTION( enable,  1, |= 0xff000000, )				/* destination = 0xff */
 DO_ACTION( mask,    0, |= 0x00010000, io_apic_sync(entry->apic))/* mask = 1 */
 DO_ACTION( unmask,  0, &= 0xfffeffff, )				/* mask = 0 */
 
@@ -649,7 +647,7 @@
 		entry.delivery_mode = dest_LowestPrio;
 		entry.dest_mode = 1;			/* logical delivery */
 		entry.mask = 0;				/* enable IRQ */
-		entry.dest.logical.logical_dest = 0;	/* but no route */
+		entry.dest.logical.logical_dest = 0xff;	/* but no route */
 
 		idx = find_irq_entry(apic,pin,mp_INT);
 		if (idx == -1) {
@@ -1066,13 +1064,10 @@
 static void enable_edge_ioapic_irq(unsigned int irq)
 {
 	self_IPI(irq);
-	enable_IO_APIC_irq(irq);
+	unmask_IO_APIC_irq(irq);
 }
 
-static void disable_edge_ioapic_irq(unsigned int irq)
-{
-	disable_IO_APIC_irq(irq);
-}
+static void disable_edge_ioapic_irq(unsigned int irq) { /* nothing */ }
 
 /*
  * Starting up a edge-triggered IO-APIC interrupt is
@@ -1298,7 +1293,7 @@
 #endif
 	pin1 = find_timer_pin(mp_INT);
 	pin2 = find_timer_pin(mp_ExtINT);
-	enable_IO_APIC_irq(0);
+	unmask_IO_APIC_irq(0);
 	if (!timer_irq_works()) {
 
 		if (pin1 != -1)

[-- Attachment #3: athlon-smp-2.patch --]
[-- Type: text/plain, Size: 1052 bytes --]

Index: linux/arch/i386/kernel/io_apic.c
diff -u linux/arch/i386/kernel/io_apic.c:1.2.12.3 linux/arch/i386/kernel/io_apic.c:1.2.12.4
--- linux/arch/i386/kernel/io_apic.c:1.2.12.3	Tue Apr  3 15:37:29 2001
+++ linux/arch/i386/kernel/io_apic.c	Thu May 17 10:30:20 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) {

  parent reply	other threads:[~2001-08-02  2:16 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-08-01 20:04 Nadav Har'El
2001-08-01 20:10 ` Johannes Erdfelt
2001-08-02  4:34   ` William T Wilson
2001-08-02  4:47     ` Johannes Erdfelt
2001-08-01 20:22 ` Joel Jaeggli
2001-08-02  0:30   ` Alan Cox
2001-08-02  1:55     ` Paul G. Allen
2001-08-02  2:16     ` Johannes Erdfelt [this message]
2001-08-02 12:18       ` Alan Cox
2001-08-02 14:11     ` Stephen Torri
2001-08-02  2:45       ` Paul G. Allen
2001-08-02 14:48       ` Alan Cox
2001-08-02 13:48   ` Paul Jakma
2001-08-02  1:11 ` Luigi Genoni
2001-08-02  3:37 ` idalton
2001-08-02  8:08 ` Agus Budy Wuysang
2001-08-02  9:38   ` Paul G. Allen
2001-08-02 10:54   ` Paul G. Allen
2001-08-02 11:50   ` Roger Abrahamsson
     [not found] <no.id>
2001-08-02 12:24 ` Alan Cox
2001-08-03  7:07   ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010801221640.H784@sventech.com \
    --to=johannes@erdfelt.com \
    --cc=agmon@techunix.technion.ac.il \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=joelja@darkwing.uoregon.edu \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nyh@math.technion.ac.il \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome