doubt on schedule_work() - work task getting scheduled lately
Ricardo Ribalda Delgado
ricardo.ribalda at gmail.com
Fri Jul 29 09:48:24 EDT 2016
you can use http://lttng.org/ for analyzing this
Regards!
On Fri, Jul 29, 2016 at 12:44 PM, Pranay Srivastava <pranjas at gmail.com> wrote:
> On Fri, Jul 29, 2016 at 4:02 PM, Muni Sekhar <munisekharrms at gmail.com> 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 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
More information about the Kernelnewbies
mailing list