On Tue, Feb 10, 2015 at 1:50 AM, Roshan A <roshan.len@xxxxxxxxx> wrote: > hi all, > > My question is regarding the correct use of workqueues. I have a > driver which queues a work item in the interrupt handler. The bottom > half function ( the workitem -function ) does have proper locking ( > mutex ) in place for atomicity. > > With this setup, since the interrupts are enabled, it's possible to > have a scenario where, when one workitem is being executed, another > can be queued up, which results in the workitems being executed in > parallel, however since there is a mutex, one thread will sleep. > You gain when most work items execute without contention. So perhaps you can redesign that your work handlers would execute most of the time without needing to lock. Perhaps you can send data to handler func exclusively from top-half. If you've anything global to maintain see if you can minimize the contention code. > is this particular scenario considered bad or discouraged ? > > Thank you, > -Roshan > > _______________________________________________ > Kernelnewbies mailing list > Kernelnewbies@xxxxxxxxxxxxxxxxx > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies -- ---P.K.S _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies