how to process data recvd from a device that wont give interrupts

Kshemendra KP kshemendra at suphalaam.com
Fri Oct 5 02:32:24 EDT 2012


Hi Devendra,

     In the kernel thread if you continuously in a loop read a register it
will increase
the CPU usage. After every register read if data is not ready call a
schedule() (or related
call). This may help to reduce CPU utilization

Regards

Kshemendra



On Fri, Oct 5, 2012 at 11:45 AM, Kshemendra KP <kshemendra at suphalaam.com>wrote:

>
> softirqs and tasklets run in interrupt context and must not sleep.
> One cannot use copy_from_user() and copy_to_user() in both of them.
>
>
> Regards
>
> Kshemendra
>
>
>
> On Fri, Oct 5, 2012 at 10:24 AM, devendra.aaru <devendra.aaru at gmail.com>wrote:
>
>> On Thu, Oct 4, 2012 at 1:50 PM, Mulyadi Santosa
>> <mulyadi.santosa at gmail.com> wrote:
>> > Hi...
>> >
>> > On Thu, Oct 4, 2012 at 7:03 PM, devendra.aaru <devendra.aaru at gmail.com>
>> wrote:
>> >> Hi all,
>> >>
>> >> I found that you can use a kernel timer and poll for the hardware
>> >> interrupt registers whether the interrupt flag is set or not,
>> >>
>> >> but this will take atleast some good amount of CPU.
>> >
>> > yeah, thing is, as you know, timer fires interrupt and CPU will
>> > certainly have to service it. So, it's impossible to work around it
>> > IMHO
>> >
>> >> are there any ways other than using the kernel timer?
>> >
>> > perhaps something less intrusive like creating kernel thread and its
>> > function is solely checking register state?
>> >
>>
>> yes, more or less similar to what the kernel timer does, :)
>>
>> I think actually when i get the data , i am just copying it to my
>> local structures,
>>
>> This job is done in the kernel timer itself, with this itself its
>> taking a 10% of cpu
>> which is actually too much.
>>
>> let me try with softirqs, i am going to use tasklets, what do you think ?
>> :)
>> > --
>> > regards,
>> >
>> > Mulyadi Santosa
>> > Freelance Linux trainer and consultant
>> >
>> > blog: the-hydra.blogspot.com
>> > training: mulyaditraining.blogspot.com
>>
>> _______________________________________________
>> Kernelnewbies mailing list
>> Kernelnewbies at kernelnewbies.org
>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20121005/cab98310/attachment.html 


More information about the Kernelnewbies mailing list