Re: Sleeping in Work_queue threads

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> I understand that there is a default worker thread ("event") to which
> most of the drivers submit work (for bottom half processing).
>
> Now since this thread is catering to all of the drivers; if a driver's
> code sleeps, then aren't the rest of the drivers penalised?

Yes...

> I mean the rest of the drivers want to do their work but the thread is
> now sleeping since one of the driver has issued a sleeping call?
>
> Wouldn't a seperate worker thread for each driver be a better design?

I think the worker thread is there to make driver writer's job easier. Say you 
need a bottom half but it is not sleep for a long time. Using a centralised 
worker thread is the most convenient one. But as you say if you need to sleep 
longer then you start to disrupt other driver's worker jobs. It's time to 
create a seperate worker thread. 

Another point of view -> you categorize worker threads: shorter sleep times 
and longer sleep times. You dont need to create a worker thread for each of 
the work jobs. Instead you use one for shorter sleep times and one for each 
of longer sleep times. So you use system resources more efficiently. I think 
most of worker thread jobs is fit into shorter sleep times category.

--
Bora SAHIN
-
To unsubscribe from this list: send the line "unsubscribe linux-newbie" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.linux-learn.org/faqs

[Index of Archives]     [Audio]     [Hams]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Fedora Users]

  Powered by Linux