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