you can use http://lttng.org/ for analyzing this Regards! On Fri, Jul 29, 2016 at 12:44 PM, Pranay Srivastava <pranjas@xxxxxxxxx> wrote: > On Fri, Jul 29, 2016 at 4:02 PM, Muni Sekhar <munisekharrms@xxxxxxxxx> wrote: >> Hi All, >> >> I have a doubt regarding the workqueue scheduling. >> >> I am using the workqueue for processing the Rx Interrupt data. I am >> calling schedule_work() on receiving the Rx interrupt from hardware. >> >> I calculated the time between calling the schedule_work() and >> workqueue task actually getting executed, Here I see many cases of >> less than 100 us(It is fairly good). >> >> But sometimes I see 10’s of ms and a lot in the 100’s of ms. I have >> seen over 0.5 secs too. I would like to know why does sometimes kernel >> takes longer time(in milli seconds) to schedule it? Is there any way >> to reduce this time gap? >> >> >> My code: >> >> static void my_workqueuetask(struct work_struct *work) >> { >> printk("In %s() \n",__func__); >> > You probably don't need this if it's just for your work_fn, yeah but > if there's race between this and something else... >> mutex_lock(&bh_mutex); >> >> //Do something here >> >> mutex_unlock(&bh_mutex); >> } >> >> >> static irqreturn_t my_irq_handler(int irq, void *dev) >> { >> ……; >> >> if(Rx Interrupt) >> schedule_work(&rx_work); > > Maybe system_wq has too much already on it's plate? > Have you tried the same with completion and a kthread? or > with your own workqueue, overkill but you can give it a shot. >> >> return IRQ_HANDLED; >> } >> >> -- >> Thanks, >> Sekhar >> >> _______________________________________________ >> Kernelnewbies mailing list >> Kernelnewbies@xxxxxxxxxxxxxxxxx >> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies > > > > -- > ---P.K.S > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@xxxxxxxxxxxxxxxxx > https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies -- Ricardo Ribalda _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies