Vorgestern haben wir über den Athlon LargePages-Issue mit dem neuen Linux-Kernel 2.4 berichtet und meldeten, der Fehler würde bei der gesamten K7-Reihe inklusive Duron und Athlon XP/MP/4 auftreten. Das wurde gestern von der US-Seite AMDZone ("Athlon AGP Bug Eliminated") erstmal dementiert:
It is not in the Palomino core. I wish before people spread word about these kinds of bugs they would look into which revisions of the CPUs are effected.
In der Tat weist der Revision Guide des Athlon Model 6 (Palomino) ein Erratum namens "INVLPG Instruction Does Not Flush Entire Four-Megabyte Page Properly with Certain Linear Addresses" (Erratum 16) auf. Der Fehler ist wie folgt beschrieben:
Non-conformance: When the logical address designated by the INVLPG instruction is mapped by a 4-MB page mapping and LA[21] is equal to one it is possible that the TLB will still retain translations after the instruction has finished executing. Potential Effect on System: The residual data in the TLB can result in unexpected data access to stale or invalid pages of memory.
Der Fehlerbeschreibung nach könnte man meinen, daß dies der Bug in der Verwaltung der Extended Pages sei. In der Tat wird dieser mit der Revision A5 (Stepping 662) des Athlon Model 6 (Palomino) als gefixt angegeben. Damit hätte AMDZone recht. Aber dieses Erratum hat nach unserer Nachfrage bei AMD nichts mit der Win2k-LargePages-Geschichte zu tun:
The INVLPG erratum in the revision guide has nothing to do with Win2k patch issue
Bestätigt wird das durch die Beschreibung des LargePages-Bugs bei AMD ("Microsoft Windows® 2000 Patch for AGP Applications"):
An issue has been identified that could result in the corruption of video data shared between AGP graphics adapters and AMD Athlon™ or AMD Duron™ processors, including the AMD Athlon™ MP processor when running Microsoft Windows®2000 Professional, Windows®2000 Server, or Windows®2000 Advanced Server. This issue is independent of system chipset and has been observed when running Ziff-Davis 3D Winbench™ 2000 and Mad Onion 3DMark™ 2000 in benchmarking mode.
Wie auch immer. Wir hatten die Spekulationen satt und haben daher bei AMD nachgefragt. Public Relations Manager Jan Gütter war so freundlich unsere Fragen zu beantworten. Das ist die offizielle Stellungnahme dazu:
Um eines vorweg zu nehmen: Wir gehen nicht davon aus, dass die Ursache des Phänomens in der CPU selbst begründet liegt. Wäre dem so, wäre Windows XP auch betroffen, da Windows XP auch Large Pages benutzt. In Windows XP tritt dieses Phänomen aber nicht auf.
Der Large Pages Issue unter Win2k tritt bei allen K7 CPUs auf. Inklusive Athlon XP
Was Linux angeht: Wir wissen noch nicht, was die Ursache ist, warum Linux ähnliche Phänomene zeigt wie Windows 2000. Wir konnten das Phänomen intern noch nicht reproduzieren. Bevor wir dies nicht tun können, wäre jede Aussage, was die Ursache ist, reine Spekulation. Insofern können wir auch (noch) nicht sagen, welche Prozessoren betroffen sind, wenn überhaupt einer betroffen ist.
Die Nutzung von Large Pages abzuschalten, hat offensichtlich bei einigen Usern das Problem behoben. Doch das Abschalten der Large Pages ist bekannt dafür, viele andere Dinge auch zu maskieren. Es mag im Moment helfen, stellt jedoch keine dauerhafte Lösung dar.
Wir nehmen die Angelegenheit jedoch sehr ernst und arbeiten angestrengt daran, das Phänomen intern nachzustellen, um eine Lösung anzubieten.
Sollte jemand ähnliche Phänomene mit seiner CPU haben, sollte er die technische Hotline kontaktieren.
Danke erstmal an Jan Gütter für die schnelle Stellungnahme. Die erwähnte technische Hotline von AMD erreicht Ihr im Falle eines Falles unter 089/450-53199. Wie man sieht sind die Schäfchen in Sachen LargePages noch nicht im Trockenen. Also abwarten und Tee trinken. Wir bleiben auf jeden Fall dran...
Update: Mittlerweile hatten wir auch die Gelegenheit mit Daniel Robbins, Chief Architect/President von Gentoo Technologies Inc. zu sprechen, welche die Extended Pages Geschichte veröffentlicht hatten. Wie es scheint ist hier mittlerweile ein Umschwenk in Gange, der die AMD Prozessoren in der Linux-Geschichte entlastet:
The issue we are talking about is a subtle interaction between speculative writes, extended paging and the GART (not a CPU bug, this was a misunderstanding). This quirk results in corruption of AGP and system memory, and it's really the responsibility of the Linux kernel and drivers to make sure that this issue doesn't happen. See my post at GeoCrawler which contains an update including an official explantion from AMD of a problem that can happen and may be happening to Linux people. Follow the thread and you'll see that it's a real issue. It is a very interesting problem.
The Linux kernel developers are currently investigating this speculative write/GART interaction to see if it could affect Linux users. So far, the consensus seems to be that it *does* affect Linux AGP users and developers are currently trying to find a solution that doesn't not hurt performance as "mem=nopentium" (turning off extended translation) does.
Diesen Artikel bookmarken oder senden an ...
