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

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

 




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@xxxxxxxxxxxxx> 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@xxxxxxxxx> wrote:
On Thu, Oct 4, 2012 at 1:50 PM, Mulyadi Santosa
<mulyadi.santosa@xxxxxxxxx> wrote:
> Hi...
>
> On Thu, Oct 4, 2012 at 7:03 PM, devendra.aaru <devendra.aaru@xxxxxxxxx> 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@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[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