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 <[email protected]>wrote: > On Thu, Oct 4, 2012 at 1:50 PM, Mulyadi Santosa > <[email protected]> wrote: > > Hi... > > > > On Thu, Oct 4, 2012 at 7:03 PM, devendra.aaru <[email protected]> > 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 > [email protected] > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies >
_______________________________________________ Kernelnewbies mailing list [email protected] http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
