doubt on schedule_work() - work task getting scheduled lately
From: Muni Sekhar <hidden>
Date: 2016-08-01 10:32:24
On Fri, Jul 29, 2016 at 9:05 PM, Daniel. [off-list ref] wrote:
Nice tool @Ricardo! 2016-07-29 10:48 GMT-03:00 Ricardo Ribalda Delgado [off-list ref]:quoted
you can use http://lttng.org/ for analyzing this
Thanks Ricardo, I will use this.
quoted
Regards! On Fri, Jul 29, 2016 at 12:44 PM, Pranay Srivastava [off-list ref] wrote:quoted
On Fri, Jul 29, 2016 at 4:02 PM, Muni Sekhar [off-list ref] wrote:quoted
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...quoted
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.
I have not tried this. First I will analyze with lttng and then attempts this. Does using our own workqueue reduces the latency?
quoted
quoted
quoted
return IRQ_HANDLED; } -- Thanks, Sekhar _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies-- ---P.K.S _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies-- Ricardo Ribalda _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies-- "Do or do not. There is no try" Yoda Master _______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Thanks, Sekhar