| To: | balbi@ti.com |
|---|---|
| Subject: | Re: [PATCH] usb: gadget: bcm63xx UDC driver |
| From: | Kevin Cernekee <cernekee@gmail.com> |
| Date: | Tue, 21 Aug 2012 08:20:43 -0700 |
| Cc: | ralf@linux-mips.org, linux-mips@linux-mips.org, linux-usb@vger.kernel.org |
| Dkim-signature: | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=xsFcsyq6UYpLfeIqmBZsDj4SxSvK4QL5aRNPpkQvz6o=; b=d4Xg7b6L1OLaarsJpIpFzbKnIIzgq6ElQlOAdcjaL0PlCUurCWedRS18RKWUFoYtjR D53PTGC3pwKj2GLAlp3BfjH6MjQ1FFCj7/HoEBWxo9agX9tPtw98AhW0lyDCIIjn/zwD tBPjP3BrHc6h86/kRNkPMAlruC50H/sRGQTkbyR6Ionf0uCY+L8nLdNMA2AxDWKWkoIf 80AjjVV573aP+0/bQblH8KtwiLIcK9tZpanKpsRo5LaPonBdgmoCJ90GlJYCmDFdhZ0y vQP+OzIfY3AlE55RWBO6oWGXRJzxr8CQbF+6Ck+QLfDI20x0gCHtiqYQtFmza0CIlxBg MCmw== |
| In-reply-to: | <20120821120418.GE10347@arwen.pp.htv.fi> |
| List-archive: | <http://www.linux-mips.org/archives/linux-mips/> |
| List-help: | <mailto:ecartis@linux-mips.org?Subject=help> |
| List-id: | linux-mips <linux-mips.eddie.linux-mips.org> |
| List-owner: | <mailto:ralf@linux-mips.org> |
| List-post: | <mailto:linux-mips@linux-mips.org> |
| List-software: | Ecartis version 1.0.0 |
| List-subscribe: | <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips> |
| List-unsubscribe: | <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips> |
| References: | <97cb21b8063a02a9664baf8b749ae200@localhost> <20120820074041.GH17455@arwen.pp.htv.fi> <CAJiQ=7CB2w=aNwtU4f3di6c31tD-EWO9YLejESY5HsUaHY6s1A@mail.gmail.com> <20120821120418.GE10347@arwen.pp.htv.fi> |
| Sender: | linux-mips-bounce@linux-mips.org |
On Tue, Aug 21, 2012 at 5:04 AM, Felipe Balbi <balbi@ti.com> wrote: > 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@ti.com> 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 ? The deadlocks involve ep0 processing that is triggered through bcm63xx_udc_queue(). e.g. gadget driver queues a new request, it's a reply to a spoofed SET_CONFIGURATION / SET_INTERFACE transaction, and the UDC driver calls the completion immediately. So, not all of the ep0 work is being done in response to an IRQ from the controller HW, and I think that is where this driver diverges from most of the others. Would it be OK to use a workqueue, or maybe a tasklet, given these circumstances? Thanks. |
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: PCI Section mismatch error in linux-next., Geert Uytterhoeven |
|---|---|
| Next by Date: | Re: PCI Section mismatch error in linux-next., Ralf Baechle |
| Previous by Thread: | Re: [PATCH] usb: gadget: bcm63xx UDC driver, Felipe Balbi |
| Next by Thread: | Re: [PATCH] usb: gadget: bcm63xx UDC driver, Felipe Balbi |
| Indexes: | [Date] [Thread] [Top] [All Lists] |