gemeinsam zwiften | youtube | forum heute
2026: Mehr Dampf
Triathlon Coaching
Individueller Trainingsplan vom persönlichen Coach
Wissenschaftliches Training
Doppeltes Radtraining: Straße und Rolle mit separaten Programmen
Persönlich: Regelmäßige Video-Termine
Mehr erfahren: Jetzt unverbindlichen Video-Talk buchen!
triathlon-szene.de | Europas aktivstes Triathlon Forum - Einzelnen Beitrag anzeigen - Apple-User bitte meldet euch
Einzelnen Beitrag anzeigen
Alt 09.04.2010, 14:12   #46
Helmut S
Szenekenner
 
Registriert seit: 30.10.2006
Beiträge: 9.739
Das hier

Zitat:
/* List of modules, protected by module_mutex or preempt_disable
* (delete uses stop_machine/add uses RCU list operations). */
ist ein Kommentar aus dem aktuellen Linux Kernel 2.6.34 rc4 (module.c). Dieses Beispiel sagt schlicht alles: preempt_disable - das ist das Kernproblem. Das ganze Modul Handling wimmelt von preempt_disable(). Und die Treiber selber wimmeln von spin_lock() Primitiven.

Versteh mich nicht falsch: Das ist saubere Arbeit und absolut UNIX Standard. Nur ist es halt nach wie vor monolithisch.

Monolithisch bedeutet im Kern des Konzeptes auch auch nicht, dass man den Kern neu linken muss wenn man nen neuen Treiber einbinden will. Bei vielen Unixen hat man das früher so gemacht bevor es BTLD (boottime loadable drivers) gab aber das ist nicht der Grund für monolithisch oder nicht. BTLD ist ein anderes Konzept.

Wobei ich bzgl. spin_lock() nicht mal sicher bin wie gut oder schlecht spin_lock() implementiert ist. Ich erinnere mich noch gut als ich mir das Threading im Linux Kernel mal vor zich Jahren angesehen habe, da war dann pthread_create() mit nem fork() implementiert .... jetzt ist das wohl (hoffentlich) anders.

Helmut

Geändert von Helmut S (09.04.2010 um 14:20 Uhr).
Helmut S ist offline   Mit Zitat antworten