I may not have framed my question rightly. The driver is for our network 
interface card (I don't know whether to call it network driver or not).

The driver receives interrupt from the device, then it does some top half 
processing. And rest of the work should be done in bottom half.  What I receive 
from device is only an interrupt. There is no data packet (or frame buffer) 
that needs to be processed. The work I am doing in bottom half is actually 
transferring some data to the device. So if there is heavy interrupt load such 
that bottom halves may queue up, is there any way to know and control this kind 
of scenario.

Mitul Modi <[EMAIL PROTECTED]> wrote: hi jasjit,

No need to thanks,

network driver i have studied using task lets in the packet receive interrupt. 
whether it is wifi driver or giga bit network driver.

so the task lets will copy the frame buffer from dma and pass it to application.
 
thanks,
mitul modi

On Tue, Sep 16, 2008 at 5:30 PM, jasjit singh <[EMAIL PROTECTED]> wrote:
 Thanks Himanshu, Michael and Mitul for you replies. Most of the things are now 
clear to me. I think work queue is best option for me to use.

As my driver is a network driver, I am expecting heavy interrupt load on the 
system. This means new interrupt may (or will) come before the bottom half 
corresponding to previous one has been processed. This can result in queuing up 
of bottom halves. My question is - Like ksoftirqd handles the situation when 
too much work is pending in softirq context, is there a similar entity which 
does the same when too much work is pending with the work queues. 


Himanshu Chauhan <[EMAIL PROTECTED]> wrote:  Michael Blizek wrote:
> On 06:29 Mon 15 Sep     , Himanshu Chauhan wrote:
>   
>> I would Workqueues. For creating a thread and making it sleep *properly* 
>> needs a lot  of work. Workqueue's infrastructure has already done it for 
>> you. You can create your own work queue if you dont' want to use the 
>> default provided by the kernel.
>>     
>
 > Do you have to do more than use waitqueues to make a kernel thread sleep
> properly?
>   
You don't. But when you are using workqueues don't have to worry 
anything else than the function that would be doing the work. Why take 
 unnecessary work?

                                                  -Himanshu

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [EMAIL PROTECTED]
 Please read the FAQ at http://kernelnewbies.org/FAQ


            





 

       

Reply via email to