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) {
next prev 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