Frage zu Schedulerquellcode

Johannes Nicolai 99jonico at asgspez.ef.th.schule.de
Don Mai 25 22:19:06 CEST 2000


Hi, ich habe seit einiger Zeit damit begonnen, mich ernsthaft mit den
Kernelsourcecode zu beschäftigen. Dabei bin ich nach meiner Meinung auf  2
kleine Fehler im Schedulersourcecode gestoßen (Version 2.2.14)

Nach meiner Erkenntnis setzt der Scheduler task->priority bei einem Task mit
der Priorität SCHED_FIFO (Realtimeprozess, der nur Kontrolle abgibt, wenn es
einen Prozess mit höherer Realtimepriorität gibt) nicht wieder auf
task->rt_priority (wie z.B. bei Taks der Klasse SCHED__RR), sondern lässt es
auf 0. Nach meiner Meinung führt dass zu kleinen Performanceeinbußen, da der
Task spätestens nach 10 ms (Timerinterrupt, der dann task->need_resched setzt)
in den Scheduler zurückkommt, nur um dann wieder ausgewählt zu werden.

2. Ein Task der Schedulingpriorität SCHED_RR (Realtimetask
mit POSIX-Round-Robin-Verfahren (gibt auch an Tasks mit derselben
Realtimepriorität ab und reiht sich hinten an)) verhält sich so, wie ein
SCHED_RR Prozess (er gibt einfach durch einen kleinen Bug die Kontrolle an
gleichwertige Tasks nicht ab).

Warum bringe ich mein Anliegen wohl in diese Mailinglist? 
Der Grund ist folgender: An meiner Schule kann ich nur den http und den mail
Dienst nutzen, news- oder newsgroups sind nicht supported (warum auch immer).

Zu hause habe ich keinen Internetanschluss, die Schule ist also meine einzige
Möglichkeit zum Kontakt mit der Außenwelt 8-). 

So kann ich diese Mail nicht an eine Usegroup posten, wie die allgemeine
Vorgehensweise eigentlich sein sollte.

Deshalb schrieb ich eine englische Mail mit der Beschreibung des Systems und an
einen Patch an torvalds at transmeta.com (ja, ich wusste halt nicht, an wen ich
mich wenden sollte, und Torvalds betreut ja immer noch den Scheduler).

Auf diese Mail bekam ich (verständlicher Weise ? ) keine Antwort. 

Nun ist meine Frage an euch, wie ich nun weiter vorgehen soll. Eventuell ist
das oben geschilderte Verhalten ja so gewollt. Meine Änderung brachte
allerdings bei mir zu Hause minimale Performance Vorteile (natürlich nur, wenn
man diese Spezialfälle konstruierte, aber Linux will doch POSIXkonform sein,
und das Verhalten der SCHED_RR-tasks ist eindeutig gegen die Spezifikationen.)

PS: Den Patch kann natürlich bei Bedarf jeder bekommen und testen (ob man
allerdings die Unterschiede merkt, ist die Frage). Ich kann auf diese Mail
höchstwahrscheinlich erst nächsten Montag antworten, da ich bis dahin nur
daheim sein werde.  

Dankeschön für alle konstruktiven Vorschläge

--
Johannes Nicolai
<johannes at tlug.de>

Linux - a little byte more.