SMP possible with AMD CPUs?
A Linux user in a local Linux club asked me whether Linux support SMP with AMD (rather than Intel Pentium) CPUs. She said that a year ago she was told Linux 2.2 couldn't, and that she was wondering whether the new Linux 2.4 can. I didn't know the answer, so I started digging.
I tried looking with various search search engines, but found nothing about this subject. Looking through the source code, it appears that SMP with AMDs *might* be supported, but I couldn't find any comment confirming that. The relevant FAQs, READMEs, and so on that I found are all from the 2.2 kernel era.
So, does Linux support SMP on AMD CPUs?
By the way, here's a fragment from the outdated (1999) SMP-HOWTO at
http://www.phy.duke.edu/brahma/smp-faq/smp-howto-3.html explaining why SMP wasn't possible in kernel 2.2 and contemporary AMD processors:
1. Can I use my Cyrix/AMD/non-Intel CPU in SMP?
Short answer: no.
Long answer: Intel claims ownership to the APIC SMP scheme, and unless a company licenses it from Intel they may not use it. There are currently no companies that have done so. (This of course can change in the future) FYI - Both Cyrix and AMD support the non- proprietary OpenPIC SMP standard but currently there are no motherboards that use it.
Thanks.
Signature · 4 lines
Nadav Har'El | Wednesday, Aug 1 2001, 13 Av 5761 [email protected] |----------------------------------------- Phone: +972-53-245868, ICQ 13349191 |The socks in my drawer are like http://nadav.harel.org.il |snowflakes: No two are alike.
Quoted 5 lines · Nadav Har'El
A Linux user in a local Linux club asked me whether Linux support SMP with AMD (rather than Intel Pentium) CPUs. She said that a year ago she was told Linux 2.2 couldn't, and that she was wondering whether the new Linux 2.4 can. I didn't know the answer, so I started digging.
Quoted 7 lines
I tried looking with various search search engines, but found nothing about this subject. Looking through the source code, it appears that SMP with AMDs *might* be supported, but I couldn't find any comment confirming that. The relevant FAQs, READMEs, and so on that I found are all from the 2.2 kernel era.
So, does Linux support SMP on AMD CPUs?
Yes. In fact, recent 2.2 kernels (2.2.20 pre patches I believe) and all 2.4 kernels support SMP AMD systems.
Quoted 6 lines
By the way, here's a fragment from the outdated (1999) SMP-HOWTO at
http://www.phy.duke.edu/brahma/smp-faq/smp-howto-3.html explaining why SMP wasn't possible in kernel 2.2 and contemporary AMD processors:1. Can I use my Cyrix/AMD/non-Intel CPU in SMP?
Quoted 8 lines
Short answer: no.
Long answer: Intel claims ownership to the APIC SMP scheme, and unless a company licenses it from Intel they may not use it. There are currently no companies that have done so. (This of course can change in the future) FYI - Both Cyrix and AMD support the non- proprietary OpenPIC SMP standard but currently there are no motherboards that use it.
I don't know if this was true to begin with, but I know that SMP AMD systems use the APIC SMP scheme Intel defined and uses.
JE
Quoted 2 lines · Johannes Erdfelt
I don't know if this was true to begin with, but I know that SMP AMD systems use the APIC SMP scheme Intel defined and uses.
Is this really true? I seem to remember that there was very little difference between OPIC and APIC in the first place, but AMD could not use APIC because of licensing problems.
Since Athlons cannot use the same motherboards as Intel (unlike the K6-2) and AMD makes the SMP chipsets for Athlon, why would they possibly want to use APIC when they could more easily and cheaply use OPIC?
Quoted 5 lines · William T Wilson
Quoted 2 lines · Johannes Erdfelt
I don't know if this was true to begin with, but I know that SMP AMD systems use the APIC SMP scheme Intel defined and uses.
Quoted 7 lines
Is this really true? I seem to remember that there was very little difference between OPIC and APIC in the first place, but AMD could not use APIC because of licensing problems.
Since Athlons cannot use the same motherboards as Intel (unlike the K6-2) and AMD makes the SMP chipsets for Athlon, why would they possibly want to use APIC when they could more easily and cheaply use OPIC?
I'm pretty sure it's not identical since the APIC bus on GTL+ is most likely different than the EV6 bus.
However, from a software point of view, they are pretty much identical give or take a few implementation details (as seen in 2.2)
I don't know anything about OpenAPIC, so I can't say anything about the similarities.
JE
before the althon amd k6's would have used pic design called the open pic to do smp... but since nobody implemented the openpic it's kinda hard to use it...
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...
joelja
Quoted 31 lines · Nadav Har'El
A Linux user in a local Linux club asked me whether Linux support SMP with AMD (rather than Intel Pentium) CPUs. She said that a year ago she was told Linux 2.2 couldn't, and that she was wondering whether the new Linux 2.4 can. I didn't know the answer, so I started digging.
I tried looking with various search search engines, but found nothing about this subject. Looking through the source code, it appears that SMP with AMDs *might* be supported, but I couldn't find any comment confirming that. The relevant FAQs, READMEs, and so on that I found are all from the 2.2 kernel era.
So, does Linux support SMP on AMD CPUs?
By the way, here's a fragment from the outdated (1999) SMP-HOWTO at
http://www.phy.duke.edu/brahma/smp-faq/smp-howto-3.html explaining why SMP wasn't possible in kernel 2.2 and contemporary AMD processors:1. Can I use my Cyrix/AMD/non-Intel CPU in SMP?
Short answer: no.
Long answer: Intel claims ownership to the APIC SMP scheme, and unless a company licenses it from Intel they may not use it. There are currently no companies that have done so. (This of course can change in the future) FYI - Both Cyrix and AMD support the non- proprietary OpenPIC SMP standard but currently there are no motherboards that use it.
Thanks.
Signature · 8 lines
-------------------------------------------------------------------------- Joel Jaeggli [email protected] Academic User Services [email protected] PGP Key Fingerprint: 1DE9 8FCA 51FB 4195 B42A 9C32 A30D 121E -------------------------------------------------------------------------- It is clear that the arm of criticism cannot replace the criticism of arms. Karl Marx -- Introduction to the critique of Hegel's Philosophy of the right, 1843.
Quoted 3 lines
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 have a Tyan K7 Thunder running dual 1.4GHz Thunderbird CPUs (Straight Athlon CPU, *NOT* Athlon MP). I installed Red Hat 7.1 out of the box (2.4.2-2 kernel). It works fine, but here are some issues you might want to be aware of:
1. The AMD-760 MP chipset is NOT a drop-in replacment for the AMD-760 chipset. Both the Northbridge and Southbridge have been changed. The Northbrige has a new ID as does the Southbridge. This means that none of the onboard devices EXCEPT for the NICs and SCSI will work to full capability without some kernel/configuration tweaking. So far this seems to be true with newer kernels. This is what I've found so far (info. dues to change as I progress):
a. The IDE is no longer a 7409 PCI ID but 7411 so it operates as a generic IDE (slow as hell).
b. The AGP is now ID 700C and is not detected unless the agpgart driver is loaded with agp_try_unsupported=1.
c. The ISA bridge ID is now 7410 (I think, not sure on this one and can't look righ now) and operates in a generic mode.
1) This makes the Winbond hardware monitor undetectable due to the fact that the SMBus can't be detected, even though lm_sensors does support the Winbond
chip.
d. The PCI bridge ID is different and (again) operates in a generic mode
e. The Host bridge ID is now 700C and operates in a generic mode.
2. The Athlon uses PPro APIC and is detected properly, no probelms here.
3. The BIOS (apparently) doesn't setup the MTRR properly on both CPUs making mtrr bitch about a mismatch.
4. To get the better performance from the kernel (over the "stock" RH 7.1 SMP kernel), re-compile using the Athlon SMP configuration from /usr/src/linuc/configs.
5. The Southbridge is the same AMD-766 that is used in the AMD-760 chipset, but is a newer rev with a different ID.
6. The Northbridge is similar to the AMD-761 but has some new registers that were previously reserved. The new chip is an AMD-762 and has a few new IDs, the newest one being 700C rev 11. Note that rev 11 is the only one (as per the most recent rev document I've been able to get) with full AGP support. Previous revs had broken AGP.
Hmmm, that's all that comes to mind so far.
The system is stable, extremely fast (it's helping my SETI@Home count and average times nicely ;-), and I'm very happy I bought it. Now I'll be even happier once I get full support for the chipset going (If I didn't have to do my UNIX admin gig here at work, maybe I'd have it by now ;-).
PGA
Signature · 6 lines
Paul G. Allen UNIX Admin II/Programmer Akamai Technologies, Inc. www.akamai.com Work: (858)909-3630 Cell: (858)395-5043
Are the AMD CPUs really geared at the silicon level for true SMP? Some friend of mine says that just because you can pull the state pin by a chipset to remove the CPU and start another doesn't say the CPU is really made for SMP. It just says that they have made it work through the chipset. I am not sure if the Intel family are really true SMP or not.
I would apprecite some feedback on this.
Stephen
Quoted 16 lines · Alan Cox
Quoted 3 lines
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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Quoted 9 lines · Stephen Torri
Are the AMD CPUs really geared at the silicon level for true SMP? Some friend of mine says that just because you can pull the state pin by a chipset to remove the CPU and start another doesn't say the CPU is really made for SMP. It just says that they have made it work through the chipset. I am not sure if the Intel family are really true SMP or not.
I would apprecite some feedback on this.
The Athlon Thunderbird as well as the Athlon MP (which uses the new Palamino [sp?]) core) both have true SMP support. All the Athlon's have a bus that is based upon the Alpha EV6 bus, which supports multiple processors (greater than just 2) running and a bus speed up to 400MHz (too bad the systems themselves can't support this kind of speed). The MP chips have a faster core and some additional logic that gives them a 10 - 20% boost in performance over a straight Athlon. Part of this logic is a feature such that, in the case of a cache miss, the CPU will check the cache on the other CPU to see if it has the data it needs. If it does, it loads from that CPU, avoiding a memory access.
In addition, the EV6 bus has a separate bus for each CPU, as compared to the Intel SMP bus architecture which shares the bus. An Intel SMP machine will share the available host bus bandwidth between the two CPUs, where the Athlon has a separate bus for each one.
PGA
Signature · 6 lines
Paul G. Allen UNIX Admin II/Programmer Akamai Technologies, Inc. www.akamai.com Work: (858)909-3630 Cell: (858)395-5043
Quoted 5 lines
Are the AMD CPUs really geared at the silicon level for true SMP? Some friend of mine says that just because you can pull the state pin by a chipset to remove the CPU and start another doesn't say the CPU is really made for SMP. It just says that they have made it work through the chipset. I am not sure if the Intel family are really true SMP or not.
Both the Athlon and Intel chips are definitely designed to do SMP well.
Quoted 9 lines · Alan Cox
Quoted 3 lines
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
Index: linux/arch/i386/kernel/io_apic.c
arch/i386/kernel/io_apic.c renamed from arch/i386/kernel/io_apic.c:1.2.12.2 +4 -9
@@ -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 )
Index: linux/arch/i386/kernel/io_apic.c
arch/i386/kernel/io_apic.c renamed from arch/i386/kernel/io_apic.c:1.2.12.3 +4 -2
@@ -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 ) {
Quoted 2 lines
I sent you a new patch which fixes the problem.
Here's the original with the new patch as well.
Looks like I missed that first time around - thanks will apply
Quoted 3 lines · Joel Jaeggli
before the althon amd k6's would have used pic design called the open pic to do smp... but since nobody implemented the openpic it's kinda hard to use it...
grep for openpic in the kernel source. SMP hardware implementing OpenPIC exists and linux supports it. no-one ever made an /x86/ OpenPIC board.
Also, I'm not sure, but IIRC OpenPIC is pretty much CPU-independent.
Quoted 1 line
joelja
--paulj
Runs stable and fast on a dual Athlon 1.2 Ghz, amd chipset. tested with kernel 2.4.6 and 2.4.7
Luigi
Quoted 41 lines · Nadav Har'El
A Linux user in a local Linux club asked me whether Linux support SMP with AMD (rather than Intel Pentium) CPUs. She said that a year ago she was told Linux 2.2 couldn't, and that she was wondering whether the new Linux 2.4 can. I didn't know the answer, so I started digging.
I tried looking with various search search engines, but found nothing about this subject. Looking through the source code, it appears that SMP with AMDs *might* be supported, but I couldn't find any comment confirming that. The relevant FAQs, READMEs, and so on that I found are all from the 2.2 kernel era.
So, does Linux support SMP on AMD CPUs?
By the way, here's a fragment from the outdated (1999) SMP-HOWTO at
http://www.phy.duke.edu/brahma/smp-faq/smp-howto-3.html explaining why SMP wasn't possible in kernel 2.2 and contemporary AMD processors:1. Can I use my Cyrix/AMD/non-Intel CPU in SMP?
Short answer: no.
Long answer: Intel claims ownership to the APIC SMP scheme, and unless a company licenses it from Intel they may not use it. There are currently no companies that have done so. (This of course can change in the future) FYI - Both Cyrix and AMD support the non- proprietary OpenPIC SMP standard but currently there are no motherboards that use it.
Thanks.
--
Nadav Har'El | Wednesday, Aug 1 2001, 13 Av 5761 [email protected] |----------------------------------------- Phone: +972-53-245868, ICQ 13349191 |The socks in my drawer are like http://nadav.harel.org.il |snowflakes: No two are alike.-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
On Wed, Aug 01, 2001 at 11:04:41PM +0300, Nadav Har'El wrote:
[snip]
Quoted 6 lines
By the way, here's a fragment from the outdated (1999) SMP-HOWTO at
http://www.phy.duke.edu/brahma/smp-faq/smp-howto-3.html explaining why SMP wasn't possible in kernel 2.2 and contemporary AMD processors:1. Can I use my Cyrix/AMD/non-Intel CPU in SMP?
Quoted 8 lines
Short answer: no.
Long answer: Intel claims ownership to the APIC SMP scheme, and unless a company licenses it from Intel they may not use it. There are currently no companies that have done so. (This of course can change in the future) FYI - Both Cyrix and AMD support the non- proprietary OpenPIC SMP standard but currently there are no motherboards that use it.
Hmmm.. I seem to recall Tyan once built a board that did OpenPIC, and I think Fry's (funky computer/consumer electronics store in Western US) carried it for a month or two. Just rumour?
Signature · 8 lines
Ferret I will be switching my email addresses from @ferret.dyndns.org to @mail.aom.geek on or after September 1, 2001, but not until after Debian's servers include support. 'geek' is an OpenNIC TLD. See http://www.opennic.unrated.net for details about adding OpenNIC support to your computer, or ask your provider to add support to their name servers.
Quoted 6 lines · Nadav Har'El
A Linux user in a local Linux club asked me whether Linux support SMP with AMD (rather than Intel Pentium) CPUs. She said that a year ago she was told Linux 2.2 couldn't, and that she was wondering whether the new Linux 2.4 can. I didn't know the answer, so I started digging.
Quoted 7 lines
I tried looking with various search search engines, but found nothing about this subject. Looking through the source code, it appears that SMP with AMDs *might* be supported, but I couldn't find any comment confirming that. The relevant FAQs, READMEs, and so on that I found are all from the 2.2 kernel era.
So, does Linux support SMP on AMD CPUs?
http://heroinewarrior.com/athlon.php3
Quoted 1 line
From their
/proc/cpuinfooutput I say it is kernel 2.4.x...
They got large pictures & some timing comparison
against dual Alpha & dual PIII.
Signature · 4 lines
+-R-| Netscape Communicator 4.x |-H-| Powered by Linux 2.4.x |-7-+ |/v\ Agus Budy Wuysang MIS Department | | | Phone: +62-21-344-1316 ext 317 GSM: +62-816-1972-051 | +--------| http://www.rad.net.id/users/personal/s/supes |--------+
Quoted 1 line · Agus Budy Wuysang
[SNIP]
Quoted 4 lines
They got large pictures & some timing comparison
against dual Alpha & dual PIII.
A note about the pictures. It's no wonder the AMD-762 gets hot: They have no heatsink on it. Possibly a pre-production board or they removed it or...?
Mine has a decent size heatsink and does not get very hot (although I have 12 fans in my case :)
PGA
Signature · 4 lines
Paul G. Allen UNIX Admin II/Network Security Akamai Technologies, Inc. www.akamai.com
Saw this thread, and I just wondered if there is support in 2.4.x kernels for cpu's off different stepping and model to be run on SMP systems? Apparently the design AMD did choose allows say a 750MHZ Duron to be run together with a 1.2GHZ Athlon MP due to the separate buses to the chipset. Anyone tried this?
Regards
Roger A
Quoted 1 line · Agus Budy Wuysang
[SNIP]
Quoted 8 lines
http://heroinewarrior.com/athlon.php3
Quoted 1 line
From their
/proc/cpuinfooutput I say it is kernel 2.4.x...They got large pictures & some timing comparison
against dual Alpha & dual PIII.
One more note here (I was reminded of this as I was looking through the PCI fixup code). They mention DMA hanging the system. Early versions of the MP chipset had a DMA problem that caused crashes (hangs). This has been fixed in the more recent version of the AMD-762.
PGA
Signature · 4 lines
Paul G. Allen UNIX Admin II/Network Security Akamai Technologies, Inc. www.akamai.com