[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