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