Mihai Chelaru wrote: > Daca stau si mai bine sa ma gandesc oricum zonele astea cu 15 msec ar tb. > executate cu un lock sa nu faci context-switchig in ele. Si nu mi se pare ca > devine totul mai simplu. Deja tb. sa-ti pui intrebari de genul cat mai > dureaza secventa asta ? Mai mult sau mai putin decat schedulerul ? Daca mai > mult cu cat ? Schedulerul cum se activeaza ? Dupa o intrerupere de ceas ?
Stai, ca sunt doua probleme: 1) In ce conditii iti trage schedulerul presul, err, procesorul de sub picioare: fie pe intreruperea de ceas, fie dupa executarea altor intreruperi care au executat un tasklet (I/O completion, etc), fie (faza nasoala) cand vrea el (pe sisteme SMP, cand ajunge unul dintre celelalte procesoare in kernel mode dintr-un motiv sau altul, si se decide sa faca reschedule). Partea buna e ca ti se garanteaza ca nu vei fi preemptat atata vreme cat tii un spinlock, deci daca oricum zonele de 15 msec ar trebui executate cu un lock, care e problema? :) 2) Intreruperi. Nu sunt sigur cum functioneaza in combinatie cu preempt, dar ma gandesc ca in momentul in care soseste una hardware schedulerul nu are prea multe de zis si trebuie executata "the top half" (sau cum ii zice). Banuiesc ca daca esti intr-o sectiune din aia critica de initializare, poti pur si simplu sa te folosesti de clasicele cli()/sti() :), dar in orice caz nu e o problema noua introdusa de preemtivitate. Petru --- Pentru dezabonare, trimiteti mail la [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'. REGULI, arhive si alte informatii: http://www.lug.ro/mlist/
