[so2] Work queue
Vlad Dogaru
ddvlad at herebedragons.ro
Tue Jul 15 10:35:08 EEST 2014
On Tue, Jul 15, 2014 at 10:12:00AM +0300, Catalin Vasile wrote:
> Salut,
>
> Din ce am inteles un work queue este o metoda de implementare a bottom half
> pentru tratarea unei interuperi, folosind thread-uri care pot fi preemptate.
> Acestea vor fi planificate de scheduler-ul obisnuit al kernel-ului sau au
> un scheduler special care se ocupa de ele?
Salut,
Există un singur scheduler, el planifică și procesele "normale", și
kernel thread-urile. Te poți convinge că un kernel thread e doar un
task mai special urmărind funcția kthread_create_on_node(). Și poți
vedea cum se decide ce task e următorul în pick_next_task(). Deși codul
e mai greu de urmărit.
Ar fi dificil ca workqueue-urile să aibă propriul scheduler, pentru că
atunci ar trebui ca o entitate să decidă când rulează schedulerul
"normal" și când cel pentru workqueues sau kthreads. Metascheduler? :)
Hope this helps,
Vlad
More information about the so2
mailing list