work_struct not getting scheduled

Michael Blizek michi1 at michaelblizek.twilightparadox.com
Thu Apr 21 11:32:52 EDT 2011


Hi!

On 17:44 Thu 21 Apr     , Pankaj B wrote:
...
> INIT_WORK(&event->work, do_handling_work);
> schedule_work(&event->work);
> flush_scheduled_work();
> 
> But the work never gets scheduled. I have put some printks in the
> do_handling_work() function. Creating workqueue and queueing
> the work to that workqueue doen't work either. I find this a
> very strange problem. Does anybody knows about this?
> 
> FYI: my system has heavy IO load when I schedule the work.

1) Why call flush_scheduled_work? This function will wait until
do_handling_work is finished. You could just call do_handling_work directly...

2) If you have heavy IO load, it might will up the workqueues. It should not
cause total starvation. But if (1) did not solve your problem, try reproducing
it while the system is idle.

	-Michi
-- 
programing a layer 3+4 network protocol for mesh networks
see http://michaelblizek.twilightparadox.com




More information about the Kernelnewbies mailing list