Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1452353

doubt on schedule_work() - work task getting scheduled lately

From Muni Sekhar <munisekharrms@gmail.com>
Newsgroups linux.kernel
Subject doubt on schedule_work() - work task getting scheduled lately
Date 2016-07-29 11:40 +0200
Message-ID <s0cqR-2Ol-5@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


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__);

    mutex_lock(&rx_bh_mutex);

    //Do something here

    mutex_lock(&rx_bh_mutex);
}


static irqreturn_t my_irq_handler(int irq, void *dev)
{
        ……;

        if(Rx Interrupt)
             schedule_work(&rx_work);

return IRQ_HANDLED;
}




-- 
Thanks,
Sekhar

Back to linux.kernel | Previous | Next | Find similar | Unroll thread


Thread

doubt on schedule_work() - work task getting scheduled lately Muni Sekhar <munisekharrms@gmail.com> - 2016-07-29 11:40 +0200

csiph-web