Re: kthread or tasklet in driver

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

 



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 <mituld.modi@xxxxxxxxx> 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 <singh.jasjit@xxxxxxxxxxx> 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 <chauhan.jpr@xxxxxxxxx> 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 ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ





[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux