sniket schrieb:
Nur mal so als Hinweis: Der FreeBSD-Treiber existierte VOR dem Solaris-Treiber. In dem Interview auf BSDTalk meinten die Leute von Nvidia sogar, dass der FreeBSD-Treiber hilfreich für die spätere Entwicklung des Solaris-Treibers war. Unter Solaris ist ein 64-Bit Treiber aber kein Problem.
Ähm... Sun hat nVidia eine Menge Geld dafür in den Allerwertesten geschoben, damit der Blob auf ihr System portiert wird. Sprich, sie haben für die Entwicklung des Treiber gezahlt, woraufhin nVidia natürlich liebend gern in die Tasten gehauen hat. Und das es einen 64Bit Treiber für Solaris gibt, liegt nicht zuletzt auch daran, dass es sicher ebenfalls ein Teil des Deals war, das Sun gewisse Anpassungen am Kernel vornimmt.
Was die berüchtigten fünf Forderungen von nVidia betrifft, die sind längst erfüllt oder treffen den Punkt nicht. Zwei davon sind durch Superpages erfüllt. Device Cloning gibt es bereits ewig. Und vmap(). Man kann im Kernel inzwischen Speicher sicher unterhalb der 4GB Grenze zuweisen. Wenn man mal davon absieht, dass nVidia hier selbst Schuld hat. Wieso bauen sie im Jahr 2008 noch Hardware mit 32Bit DMA? Wenn die neueren inzwischen 64Bit haben sollten, wieso den alten Kack überhaupt noch unterstützen? Die Zeit bleibt schließlich nicht stehen.
Dann kamen da ja gewisse Details darüber ans Licht, dass sich der Blob unter Linux wie ein besseres Rootkit verhält. Ich sage nur das Rumfummeln an irgendwelchen sehr grundlegenden Speicherstrukturen zur Laufzeit. MIR kommt das Ding nicht mehr ins System, da es sicherlich ein ähnliches Verhalten unter FreeBSD an den Tag legt, was die Stabilitätsprobleme mit dem Dingens erklären würden. Panic hier, Deadlock da.
So, und wenn nVidia wirklich noch Interesse an FreeBSD hätte, wieso ist der Blob immer noch auf dem Stand von RELENG_5? Aufgrund der Rückkompatiblität? Sicher nicht. Das Ding hängt im GIANT und zwar vollständig. Es ist ein sehr intensiv arbeitendes Modul, welches nicht vernachlässigbare Mengen CPU-Zeit konsumiert. Das völlig überholte Locking bremmst das ganze System aus, führt wunderbaren Races um GIANT und mehr. Leistungsverlust allein durch das Laden von nvidia.ko unter einem FreeBSD 7.0 etwa zwischen 30% und 45%. Es wäre in ihrem ureigenen Interesse da zu aktualisieren, sie machen es aber einfach nicht. Im Gegenteil. Wo die Linuxer mit jeder Kerneländerung innerhlab weniger Tage eine neue Version bekommen, dürfen wir FreeBSDdler den Opensource-Teil des Treiber - übrigens nur einen Wrapper um den generischen Teil - grundsätzlich erstmal selbst patchen. Patches die dann irgendwann(tm) mal Teil des offiziellen Paketes werden.
Nein, nVidia war vor 2 Jahren noch erste Wahl. Gezwungenermaßen. AMD hat aber nicht gechlafen, die propitären Treiben für Linux und Windows stehen inzwischen nVidia in nichts mehr nach. Für uns FreeBSDler haben sie etwas viel schöneres als einen dreckigen Blob, Dokumentation. Die Radeons werden noch in 15 Jahren mit X.org einwandfrei laufen, wenn radeonhd erst einmal fertig ist. mVidia-Karten dank Blob sicher nicht. Es ist ja heute schon eine Katastrophe eine 5er Geforce zum Laufen zu bekommen. ATI-Karten verheizen einen Bruchteil des Stroms großer Gerforces. Von dem Abgrund der Chipsätze, berüchtigt für ihre Hardwarefehler und mieserable Unterstützung aufgrund mangelnder Doku, sprechen wir hier erst lieber gar nicht.