On Mon, Aug 20, 2012 at 08:48:11PM -0700, Kevin Cernekee wrote: > On Mon, Aug 20, 2012 at 12:40 AM, Felipe Balbi <balbi@xxxxxx> wrote: > > no workqueues, please either handle the IRQ here or use threaded_irqs. > > > > again, no workqueues. > > Felipe, > > I am seeing all sorts of deadlocks now, after removing the workqueue > (patch V2). Some have easy fixes, but for others it is not as > obvious. The code was much simpler when I could just trigger a > deferred worker function. > > Workqueues are used in at91_udc, lpc32xx_udc, mv_udc_core, and > pch_udc. Could you please clarify why it is not OK to use one in > bcm63xx_udc? Because threaded_irqs were added in order to drop such workqueues. threaded_irqs also have the highest priority possible (only lower than hardirq handlers), so you'll get scheduled much sooner. Could it be that most of your deadlocks is because you're not setting IRQF_ONESHOT ? -- balbi
Attachment:
signature.asc
Description: Digital signature